去年,我在網絡上讀過這樣一段文字:“代碼其實是存儲在存儲器(內存、硬盤或者閃存等)中有序電壓高低,編譯出的結果還是電腦中存儲的有序電壓高低。從代碼的編輯到最后對電路的控制都是電壓在起作用,只是為了方便而給我們展現的形式不一樣,本質其實一樣的。世界上本沒有軟件,軟件只是對硬件的一種反映,就像意識是對客觀世界的反映一樣的。”
同樣是在去年里,IEEE Spectrum雜志向人們發(fā)布了2017年度編程語言排行榜。并且,IEEE Spectrum是在獲取了Stack Overflow、Twitter、Reddit、IEEE Xplore、GitHub、CareerBuilder等10個重要的數據源之后,再對48種編程語言進行排序的。
不難發(fā)現,單從各語言的應用范圍和流行度來看,C、C++、JavaScript、Java、Python,便是優(yōu)秀的程序員最應該精通的語言。另外,我的建議是,初學者首先就應該從最難的C/C++學起,并學精。每個程序員不可能去學完世界上所有的編程語言,在精通了C/C++、JavaScript、Java、Python等語言后,根據個人的志向以及工作的需要,再選擇性地學會幾門語言,是完全值得肯定的做法。在我看來,一個優(yōu)秀的程序員,應該能完全精通2到5門的語言,同時會個10門左右的語言,都是很正常的。況且,現在很多的公司在外面招程序員時,也更喜歡那種T型人才(一專多能型)。一個程序員會更多門的語言,往往體現著這個人的大腦聰明,以及有著愛鉆研,不怕吃苦,學習能力強等品質。再則,一個程序員在精通了幾門的編程語言這個基礎上,還會更多門的語言,在工作時解決問題的能力往往會更強(思路更開闊),工作起來的效率也更高,當然也更得老板的喜歡。
C語言是一種通用的命令式編程語言,于上個世紀70年代中問世??梢哉f,C既是最老的語言,又是應用范圍最廣的語言。C語言為其他語言如JavaScript、Java、Python、C#等提供了構建模塊,且被人們廣泛地應用于不同的操作系統和應用中。由于C語言為其他語言提供了基礎,所以初學者最好先是從C/C++入手。
C++的應用范圍非常廣,起初是作為C的增強版而問世的。C++是一種靜態(tài)數據類型檢查的,支持多重編程范式的語言。C++支持過程化程序設計、數據抽象、面向對象程序設計和泛型程序設計等多種程序設計風格,C++已被應用在FireFox、Adobe Programs等知名軟件中。C++可被用來開發(fā)系統軟件、應用軟件、客戶端應用程序和視頻游戲等。
JavaScript是一種基于對象和事件驅動并具有相對安全性的客戶端腳本語言,同時也被廣泛用于客戶端Web的開發(fā),常被用來給HTML網頁添加動態(tài)功能。JavaScript還可用于開發(fā)游戲和桌面應用等。
Java是基于類的面向對象的語言,具有跨平臺、面向對象、泛型編程的特點,被廣泛用于企業(yè)級Web應用和移動應用的開發(fā)。最初Java的名字叫Oak。上個世紀90年代,互聯網興起并發(fā)展,Sun公司預見到了Oak在互聯網行業(yè)中的應用前景,便改造了Oak,并于1995年5月正式對外發(fā)布Java。之后,Java一路伴隨著互聯網發(fā)展至今,逐漸成為了重要的網絡編程語言之一。Java是為跨多個軟件平臺而設計,一個在Mac OS X上開發(fā)出來的程序同樣能在Windows上運行。
Python是一種高級的服務器端腳本語言,適用于網站和移動應用的開發(fā)。對初學者而言,Python確實是簡單易學。其他如C#、PHP、SQL、Objective-C、Ruby等語言,這里就不一一介紹了。順便補充一下,去年網絡上有過一篇文章,標題是《2017中國程序員生存報告》。該報告中就有一組數據顯示,C、C++、JavaScript、Java、Python,PHP等語言相對占主流。
聯系客服