第一門編程語言選什麼好?

做者 謝恩銘 轉載請註明出處
微信公衆號「程序員聯盟」ProgrammerLeague
原文:www.jianshu.com/p/c2b85495c…程序員

內容簡介


  1. 前言
  2. 建議
  3. 入門推薦
  4. 分析
  5. 總結

1. 前言


如今 IT 行業愈來愈火爆,許多朋友都願意入門「挨踢」,噢,不,當程序員。算法

那麼問題來了,對剛接觸這個領域的新人來講,選什麼語言做爲第一門語言呢?這是很關鍵的問題,由於這決定了這位新人是「從入門到繼續」仍是「從入門到放棄」。編程

2. 建議


我推薦:或者從 C 語言入門,或者從 Python 入門。設計模式

這裏又得分狀況來講:微信

  1. 若是你只是想用編程來完成一些簡單的任務,目標不是深刻技術,那麼選 Python。有不少好處,入門快,成就感來得快,高效好用。
  2. 若是你要深刻編程,想成爲技術專家,特別是作嵌入式這樣對技術要求比較高的行業,那麼選 C 語言。
  3. 若是你還不清楚本身的將來發展方向,那請先弄清本身想要作什麼再來學編程。若是實在是前路迷茫,懵懂未知,那麼從 C 語言入門。由於你把 C 語言學了,你會發現 Python 入門太簡單了;反之否則。

3. 入門推薦


  • 若是你選 Python 做爲第一門編程語言,請看個人 最近迫切應學的編程語言 這篇文章,說的就是 Python 的好處和入門建議。數據結構

  • 若是你選 C 語言做爲第一門入門語言,雖然開始會有些「疼痛」,可是至久必成爲你的幫助。請看個人 《C語言探索之旅》 來入門。架構

4. 分析


當年我大學時才接觸編程,但一直沒入門(能夠參看個人經歷:關於我)。數據結構和算法

總結一下 C 語言做爲第一門編程語言的好處:編程語言

  1. 基礎深厚

如今你看到的大部分編程語言都是借鑑了 C 語言或者用 C 語言寫成的,好比 Java,C++,C#,Python,Go,JavaScript,Objective-C,Swift,PHP,Perl,等等。學習

可見 C 語言在被設計出來時是多麼具備劃時代意義。大部分如今所用的操做系統也用到了 C 語言,好比 Unix,Linux,Windows,Mac OS X,iOS,Android,等等。

能夠說,C 語言影響了全球的計算機系統,套用指環王的經典臺詞就是「One language to rule them all」(意思是:一門語言統領其餘語言)。

固然了,C 語言最初是用 B 語言寫的,但今天卻幾乎沒有人在用 B 語言了。可見 C 語言的飛躍,其源碼設計之精良。

當時的程序員(如 C 語言之父 Dennis Ritchie)真的是超級厲害,我這種程度實在連遠眺都看不到他們的項背啊。


  1. 難度適中

C 語言確定比 Python,Java 之類難入門,可是比 C++ 簡單不少。

我以爲 C++ 不適合做第一門編程語言,太複雜,東西太多,基本就是「入門到放棄」,要學 C++ 最好等入門編程以後。固然你要學我也沒資格反對。

相比之下,C 語言的難度適中,也沒有那麼可怕。最讓人懼怕的指針,位移(嵌入式裏面比較多左移右移,須要數學功底還能夠,否則那些十六進制,二進制會讓人頭暈的),自定義數據結構,內存分配什麼的其實也還好,熟能生巧。


  1. 嵌入式的主要語言

C 語言在嵌入式領域算是舉足輕重了,特別是涉及到比較底層的嵌入式,固然你說 Python 也能夠用於樹莓派這樣的開發板,可是你不會 C 語言的話,通常去應聘嵌入式的工做仍是比較困難的。

如今這個時代,隨着可穿戴設備和其餘設備日益普及,嵌入式的前景確定不錯。

我我的認爲:人工智能和嵌入式是以後比較火熱的領域。

要入門和提升嵌入式,能夠參看個人這篇文章:什麼是嵌入式編程?如何入門和提升?


  1. 理解計算機

做爲程序員,若是你想要進階爲高級甚至偉大乃至史詩級別的程序員,必定得對計算機原理,編譯原理等等有所瞭解。

C 語言雖然也算是高層語言,但相對於 Python,Java 等,C 語言更接近底層。

入門了 C 語言,你會對計算機的內存、寄存器等原理有必定了解(推薦以後閱讀《深刻理解計算機系統》這本書,裏面的示例代碼是用 C 語言寫的)。

若是有時間,最好也入門一下彙編語言,能夠參看我寫的文章:學習彙編對編程有什麼幫助?如何學習

我那時就是先學了 C 語言,而後跟着清華大學王爽老師的《彙編語言》(那時是第二冊,如今好像已是第三冊了吧)學了彙編,超級淺顯易懂,寫得很棒。學完以後,發現對內存,位移,寄存器等等操做都有了撥雲見霧的認識,會感受本身慢慢地領悟了編程。


  1. 學完 C 語言後學其餘語言會很快

這點我深有體會,我自從借 C 語言入門了編程以後,後面再學習 Java,PHP,C++(仍是有點疼痛的,誰讓 C++ 這麼龐雜),Python,Kotlin 等等就很容易了。

由於通過 C 語言的磨礪,你的編程思惟能力已經比較不錯,關於數據結構和算法等能夠經過作練習和我的項目來進行。

當年我一開始接觸 C 語言,感到比較難,就退避了去學 Java,結果也不得要領,直到我後來轉而去用 C 語言入門編程,學會了 C 語言以後,學 Java 變得順風順水。

以後你若是要進階 C 語言,推薦看看《C專家編程》,C 語言之父寫的《C程序設計語言》(不是譚浩強那本《C語言程序設計》),國人寫的《C語言深度解剖》《C陷阱和缺陷》。讀完這些,作完裏面的練習,你的 C 語言的水平就已經很不錯了。

若是你不是作嵌入式等對 C 語言水平要求比較高的領域,那不必把 C 語言學那麼深。

藉助 C 語音入門編程以後能夠學學 Java,Python,Kotlin,Go 語言(Go 語言被稱爲 21 世紀的 C 語言)等最近比較被看好的語言。

固然,PHP 這樣「世界上最好的語言」也是比較簡單的,PHP 的語法和 C 語言比較相似。

5. 總結


有一點須要注意,就是學習編程語言,千萬不要貪多而不精。應該先學精一門語言,以後再去涉獵其餘的。

畢竟編程語言之間,基本的邏輯,條件語句,循環語句,類或結構體,都是互通的。通常來講,一通則百通。

有些朋友可能一門還沒入門或精通呢,就想要走馬觀花般去學新的語言,這樣最後什麼也不能精通。

祝你們還沒入門編程的能夠早日入門,已經入門的技術日益精進(須要學學面向對象思惟,架構,設計模式,算法等)。

要知道如今 IT 行業但是薪資很不錯的,並且將來前景絕對不堪憂,畢竟人工智能還要咱們來編寫和操控。

好了,我去繼續學習了,下次見。

才疏學淺,文章中如有錯繆或漏說的,歡迎留言指正補充,我也會更新文章,不勝感激。謝謝!


微信公衆號「程序員聯盟」ProgrammerLeague
我是 謝恩銘,在巴黎奮鬥的軟件工程師。
我建立了程序員聯盟的 知識星球,歡迎加入。
關於我熱愛生活,喜歡游泳,略懂烹飪。人生格言:「向着標杆直跑」

相關文章
相關標籤/搜索