導論
什么是計算機
今天,計算機正在以驚人的速度發展變化着,變得越來越復雜,而這期間產生了許多技術,各種編程語言、各種框架工具,我們以為自己掌握了這些技術,但很可能我們並不了解。
我們在享受這些技術帶給我們方便的同時也付出了代價,雖然擁有一定的編程能力,卻無法進一步提高自身技能,知識應用能力的不足導致無法編寫出源程序。“照這樣的規則寫代碼,就可以得出一個那樣的程序效果”,作為一名程序員,如果對程序的了解僅僅停留在這一表層是不行的,我們還應該了解更深層的機制,了解了更深層的運行機制之后,就能找到編寫源程序的方法。
如果僅僅把技術當做一個黑盒子,只把時間花在學習其表面上,而並沒有探索到其本質,就絕不應該認為自己已經懂了。不懂的話,做起來就會感到沒意思,也就更不會產生想要深入學習的欲望了。若每日使用的都是些不知其所以然的技術,就會漸漸不安起來。
其實,計算機的基礎知識,即使到了今天也幾乎沒有任何變化,因此,即便面對的是復雜的最新技術,一旦把它們回歸到計算機的本質上,就變得可以輕松理解了。
現在的計算機看起來好像是種高度復雜的機器,可其基本的構造卻極其簡單。在認識計算機時,需要把握的最基礎的原則只有三個。
原則一:輸入、運算、輸出是硬件的基礎
計算機的硬件由大量的集成電路組成,每塊集成電路上都帶有很多引腳,這些引腳有的用於輸入,有的用於輸出,集成電路會在其內部對外部輸入的信息進行運算,並把運算結果輸出到外部。
原則二:軟件是指令和數據的集合
指令就是控制計算機進行輸入、運算、輸出的命令,在程序設計時,會為一組指令賦予一個名字,可以叫函數、語句、方法、子例程、子程序等等。
數據分為兩類,一類是作為指令執行對象的輸入數據,一類是從指令執行結果得到的輸出數據。在編程時,程序員會為數據賦予名字,稱其為變量。
原則三:計算機的處理方式與人類的思維習慣不同
計算機內部會把所有的信息都當成數字來處理,盡管有些信息本來就不是數字。用於表示字符的數字就是“字符編碼”,用於表示顏色的數字就是“顏色編碼”。
想要順應計算機的處理方法,有時就要違背人們的思維習慣。圍繞計算機的技術正在以狂奔般的速度不斷進化,無論哪一種進化,都是為了使計算機的處理方式更貼近人類。
因此,你需要具備計算機系統的思維方式,什么是計算機系統的思維方式?
“計算機系統”的思維方式是相信,計算機系統是由硬件和軟件組合構建而成的一個系統,硬件和軟件是相輔相成的,硬件是軟件的物質基礎,而軟件是硬件發揮作用的唯一途徑。計算機本身並沒有特定的用途,而是程序賦予了計算機各種各樣的用途,是程序在計算機上實現了現實世界中的業務和娛樂活動。
什么是軟件開發
所謂軟件開發指的是借助編程語言和開發工具來制作軟件的工作。
軟件開發需要借助計算機這個工具, 這個過程就是人機交互。
人機交互有兩種方式,一種是命令行窗口(dos),另一種是圖形化界面。
什么是編程語言
進行軟件開發需要懂得編程語言,那什么是編程語言呢?首先我們需要知道什么是自然語言? 自然語言是人與人溝通的語言。那編程語言的含義就呼之欲出了,編程語言就是指人與計算機溝通的語言。最早的編程語言是匯編語言,隨着編程語言的發展,慢慢經歷了以下幾個階段:機器語言=>匯編語言=>面向過程編程=>面向對象編程=>人工智能語言(其實就是自然語言但目前還達不到)。
程序設計語言有很多種,每種語言都是為了實現某個特定的目的而發明的。你會困惑哪種語言是最好的?
事實上,沒有最好的語言,只有最適合解決某種問題的語言。每種語言都有它的長處和短處,經驗豐富的程序員知道各種語言擅長的應用場景,因此,會盡可能的掌握各種不同的程序設計語言。如果你掌握了一種編程語言,應該會更容易上手其它的編程語言。關鍵是學習如何使用程序設計方法來解決問題。