1. 程式人生 > 其它 >零基礎學程式設計026:學什麼程式語言最有前途?

零基礎學程式設計026:學什麼程式語言最有前途?

(封面圖來自於網路)

想學習程式設計的朋友可能一直糾結於到底學哪一種程式語言最有前途,我google了一下,在維基百科的下面這個頁面裡大概有500多種程式語言,這些相對來說還是比較知名的程式語言,不包括一些語言的方言以及一些標記性的語言。

https://en.wikipedia.org/wiki/List_of_programming_languages

市場上哪種程式設計師最搶手?我也google了一下,發現了2016年和2017年的兩篇貼子:

http://www.codingdojo.com/blog/9-most-in-demand-programming-languages-of-2016

http://www.codingdojo.com/blog/9-most-in-demand-programming-languages-of-2017

先看2016年的語言熱度排名,SQL、JAVA、JavaScript佔據前三位,後面分別是C#、Python、C++、PHP、iOS、Ruby。

再來看看2017年的情況,SQL、Java、Python佔據前三位,實際上JavaScript與Python差不太多。

另外有一個網站幾乎每個季度都會公佈一次程式語言排名,它是著名的TIOBE,它的排名演算法大概也是根據網上相關文章多少、搜尋關鍵詞的頻度等計算出來的。2017年2月公佈的最新結果是Java、C、C++、C#、Python位居前五。

而關於“哪種語言最好?”這種問題一直在各種論壇上爭吵不休,這種問題實際上是一個偽命題,何為最好?寫的程式碼行最少?執行效率最高?可以並行執行?維護最方便?可以處理海量資料?最接近於自然語言?用不同的評價指標會得出完全不同的結果。

停止糾結

與其在多種程式語言中糾結和爭吵,不如從排名前10的語言中挑一種快速入手,所有的主流程式語言基本上都是相通的。程式設計的基本原理是相同的,背後的演算法沒有變,資料結構也類似,只是語法稍有不同而已。

明白了程式設計的基本原理,換成另外一種語言相對來說比較容易,只是換一種語法結構去重寫而已(當然背後還有龐大的類庫要熟悉,這些都需要時間去熟悉)。對於某種特定的功能,有些語言寫起來囉嗦一些,有些語言寫起來簡捷許多;有些語言執行效率高,有些語言執行稍微慢一點;有些語言可直接適用於多核CPU並行,有些語言的並行化需要做大量工作。

我學過N種程式語言,現在看來語法是最容易學的部分,最麻煩的部分在於要去熟悉大量的模組或類的使用方法,還要學會正確的使用方法。我們以四種基本的流程結構來看看幾種語言的語法有何不同吧,一個程式的執行流程大致可以分為這四種:順序

分支迴圈函式呼叫

1)順序

這種結構太簡單了,所有的語言都是從上至下的執行,沒什麼可說的。

2)分支

Python

if(i % 7 == 0) :
    stamp()
else :
    forward(1)

JAVA、C#、C

if(i % 7 == 0) {
    stamp();
} else {
    forward(1);
}

3)迴圈

Python

for i in range(1,366) :
    print( "hello world" )

JAVA、C#

for(int i=1; i<=365; i++) {
    列印語句;
}

C

int i;
for(i=1; i<=365; i++) {
    列印語句;
}

4)函式呼叫(實際上函式定義的語法差別稍大些)

Python

func( para1, para2 )

JAVA、C#、C

func( para1, para2 );

可以看出,這些不同語言的基本語法是非常相似的。相比語法,更重要的是理解計算機原理、資料結構和演算法。如果你真是零基礎,那就選Python吧,這語言寫起來比較簡練,上手相對容易些。

公眾號後臺發訊息:python,跳轉到“零基礎學程式設計”的所有文章目錄。

--- END ---