之前我的知識星球內有人問過這麼一個問題,當時做了一個回答,今天在知乎上也看到一個類似的問題,看到很多人的答案都模稜兩可,給你說一大堆套話,新手如果可以理解的話就不是新手了,對於新手來說,最需要的是直接有效的答案,故怒答一記,也順便把我的看法發在公眾號「googdev」上,希望可以給部分讀者有所參考。
對於很多打算學習程式設計的新手來說,那麼多程式語言著實不知道該如何選擇,也不懂未來到底哪種程式語言最有前景,哪種最好找工作,那麼今天說下我的一些看法。
首先我的觀點是,程式語言只是工具,每種程式語言都有自己的優勢與適用的場景,程式語言是幫你解決實際問題的,而不是用來辯論那種語言是最好的,很多企業都是用不同的語言來解決不同的業務問題,比如有創業公司想快速開發,可能會選擇 Ruby、Rails,有的要解決實際的效能問題,注重高併發、低延遲那也許會選擇 Go,有的企業追求穩定成熟的解決方案,可能會選擇 Java,有的專注在 iOS、Android 平臺的開發,那就會選擇 Objective-C 和 Java 等等等,有些企業甚至會混合不同的程式語言,來解決不同的業務場景。
但是題主說了,題主是新手,那姑且認為你以前沒有 什麼程式設計經驗,那麼現在想要學習一門程式語言的話,其實主要關注三點:
- 未來前景;
- 是否易學;
- 是否好找工作;
其實從 0 自學的話,未來前景很重要,其實也就是所謂的風口,雷軍說過:站在風口,豬都能飛。足以說明風口非常重要,網際網路 PC 時代,PHP、.NET、Java Web 開發網站很火,移動網際網路時代 Android、iOS 是主流平臺,自然 Java 和 Objective-C 比較火。
之前公眾號「googdev」很多讀者問我一些關於程式設計問題的時候,我就說過,我在 11 年自學程式設計的時候,其實剛好是趕上了移動網際網路的風口,雖然那時候我 0 基礎,但是我選擇了移動開發,這個選擇就縮小了跟那些科班生起點的差距,雖說現在混的也不咋的,但是當初我如果選擇了 PHP、.NET 這種方向,我可能遠不如現在混的。所以說,我個人的經歷也證明了,風口非常重要,選擇一個對的方向,趕上了風口,可以讓你快速的前進。
而現在移動網際網路早已不如前幾年那麼大熱,會這個的人很多,很多企業的需求也沒那麼大,要求卻很高,所以說現在如果再想學程式設計我是不建議再學移動開發了。未來雖然無法準確的預測,但是我們可以看到一些大方向:
未來五年甚至十年都將是人工智慧的天下,而人工智慧領域的應用語言 Python 毫無疑問是主流,Go 次之,但是還遠比不了 Python 在人工智慧領域的應用,從 Stack Overflow 的調查報告也可以看到:
stackoverflow.blog/2017/09/06/…
Python 在今年大熱,已經成為今年最火的語言,再加上人工智慧大量依賴資料,Python 在資料分析、資料探勘方面也大有發揮之處,資料相關的崗位也比較稀缺,所以,Python 已經成為未來最火的語言之一了。
當然有人會問了,Python 這麼火熱,以後會不會競爭很大?
Python 之所以這麼火熱,是因為現在大家都對趨勢很敏感了,越來越多的人都在焦慮自己會淘汰,所以很多其他程式語言的從業者都在關注、學習、使用 Python,但是真正敢於放棄本職工作,全職轉行 Python 開發的人跟整個程式設計行業的人相比還是少數的,更何況,在一個新的時代即將到來,相對應的需求本就大,所以,一旦人工智慧技術有所成熟與突破,Python 的需求還會更大。
再說到易學性,其實 Python 相比較大部分語言來說,都算是很容易上手的,語法很清楚,沒有那麼多複雜的概念,適合新手學習。
而除了人工智慧之外,Go 語言的潛力也很大,Go 在處理高併發的分散式系統上應用很廣泛,效能很高,而且未來在區塊鏈技術相關應用中也會有不少發揮,還是 Google 的親兒子,但是 Go 的易學性不如 Python,對新手還是有一定門檻的,而且應用的廣泛性也不如 Python。
最後說下 Java,Java 這種老牌程式語言,雖然一直被詬病語法臃腫,但是其實隨著 Java 版本的更新,已經逐漸支援了很多新語言的特性,並且因為 Java 很成熟,不止語言成熟,很多成熟的解決方案、中介軟體都是基於 Java 的,Java 可用的庫太多了,以至於現在大部分公司都離不開 Java,而且 Java 還可以用來開發 Android 移動應用,所以也許未來 Java 不是最有前景的語言,但是 Java 在未來很長一段時間內都會是不可或缺性的語言,相關的工作崗位也自然一直有需求,而且 Java 語言的易學性也很高,適合新手,大部分大學甚至早都開設了 Java 課程。
所以,綜上,結合未來的前景,以及對新手的易學性,是否好找工作幾個點,我推薦題主現在如果想要學習一門程式語言的話,首選 Python,Java 次之,最後考慮下 Go。
PS:以上只是針對想要學習程式設計的新手的一些建議,個人觀點,僅做參考。
本文原創釋出於微信公眾號「googdev」,程式設計、職場、思維,關注並回復關鍵字「GitHub」、「Android」、「Python」、「Java」、「AI」等獲取免費學習資料。