入門編程語言選擇的一個需要考慮的因素是初學者的背景與動機。
不同的編程語言有著不同的抽象層次, 有些偏向硬件的工作原理,有些貼近人類的思維方式。以Python和C為例,Python像英語,基本的思維方式也類似自然語言,而C則類似于計算機硬件本身的工作原理。 對于初學者而言,如果你的背景屬于對計算機底層原理不熟悉的一類的話,學習C會帶來一些困擾。如果與此同時,你的動機是要使用編程語言來解決你的領域知識,而不想了解底層的細節,Python會比C適合。
需要澄清的是,這并不是說Python簡單,我覺得Python遠比C要復雜,C語言本身的所有細節都在K&R一本書中說得清楚,而卻從未見過一本Python的書籍能涵蓋這門語言的所有細節。
我想表達的一個觀點是:
其實主流的語言C/C++, Python, Pascal,Basic, JAVA, C#都可以作為入門的編程語言。因為它們都存在一個具有足夠表達能力的語言子集,的入門書籍,成熟的庫,以及強大的社區的支持。所謂選擇好的入門語言可能是一個偽問題,而真正的問題是當你選擇了其中一門語言后,如何選擇合適的學習方法。
學習一門編程語言,應該是容易的,因為計算機語言本身的特性只是它的語法。而計算機語言的語法無外乎是表達以下幾個方面的概念:
1. 數據的表達
常量的定義
變量的定義
結構體的定義
類的定義
2. 控制流的表達
順序語句
條件語句
循環語句
3. 封裝和抽象
函數的定義和調用
類的定義和調用
庫,模塊,命名空間的定義和調用
而當對這些概念有了基本的印象并學會了用一門計算機語言表達這些概念之后,接下來對于初學者來說為重要的應該就是三件事情,掌握:
編程范式
基本的數據結構,算法
對應語言系統庫常用的API
常見的編程范式有:
面向過程的范式,這個應該是對于初學者而言為容易理解的方式,幾乎所有的主流語言都支持這一范式,初學者應當首先學會這種范式
面向對象的范式,這個應當是為主流的編程范式,從軟件開發的角度看, 它的優點在于能夠用面向對象的方式貫穿軟件開發的整個生命周期,包括軟件的設計、編碼、測試
函數式編程,在并行計算的時代,函數式編程的范式將會成為另一大主流,推薦對其做一些了解。
算法是計算機科學的靈魂,它的意義在于讓你理解計算機的工作方式的本質。對于初學者而言,不需要掌握過于復雜的算法,但是應當熟練地掌握基本的排序、檢索、遍歷的算法。數據結構亦是類似,初期掌握數組,鏈表,棧,隊列,哈希表,棧即可。
系統庫的意義在于可以大幅提高你的開發效率,雖然重造輪子是程序員的一大樂趣。但是在實際工作中,我們可能多地需要追求效率,而系統庫是過去的程序員的經驗的結晶,往往在性能和強壯性上都做了大量的優化,一般來講都會比我們自己的實現要好得多。正因如此,學習和掌握系統庫雖然枯燥(初期要記憶大量的API細節),但是卻是一筆非常值得的投資。
上一篇:如何學習編程?
下一篇:php從入門到精通,php自學要多久
掃碼匿名提建議
直達CEO信箱