先來普及下C的特點(diǎn):
它不作任何封裝,把整個(gè)硬件、整個(gè)操作系統(tǒng)赤裸裸的擺在你的面前;同時(shí)它又是一種高級(jí)語言。使得它的用戶不必關(guān)注太多底層細(xì)節(jié),于是在其上無論是討論算法、還是談?wù)摬僮飨到y(tǒng)、網(wǎng)絡(luò)協(xié)議棧、編譯原理等等,都極為簡(jiǎn)單直觀。
這些特點(diǎn)使得C極具生命力。甚至哪怕到了現(xiàn)在,C仍然是最為流行的編程語言(一直和java、c++聯(lián)手壟斷流行編程語言排行榜前三位——而且C經(jīng)常在榜首;注意C和C++是分開統(tǒng)計(jì)的)。
小編推薦一個(gè)學(xué)C語言/C++的學(xué)習(xí)裙【 六二六,八七一,九一六 ?】邀請(qǐng)碼凌云,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!
尤其是偏底層的系統(tǒng)級(jí)編程,更是C一家獨(dú)大,除了C++別無對(duì)手。
別以為C只能做底層。真正復(fù)雜、高難度、對(duì)性能有苛刻要求的、支柱性的大項(xiàng)目,C仍然當(dāng)仁不讓、不可替代——我不知道那些說C不適合做項(xiàng)目的,究竟有沒聽說過linux,看過幾個(gè)開源項(xiàng)目。
C實(shí)現(xiàn)的任何東西,無論是操作系統(tǒng)還是編譯器,全都會(huì)以赤裸裸的算法+數(shù)據(jù)結(jié)構(gòu)的面目展示在你的面前。想知道什么,只要從一個(gè)API開始跟,很容易就能搞明白——跟一跟某個(gè)硬件相關(guān)API,甚至可以幫助你準(zhǔn)確理解硬件。
徹底學(xué)通之后,任何技術(shù)、任何架構(gòu),都能一目了然。
簡(jiǎn)潔直白、案例眾多、學(xué)習(xí)資源豐富,這是C最為獨(dú)特的優(yōu)勢(shì)。
除了C之外,你到哪里找別的、有豐富的相關(guān)開源源碼及其分析資料的語言?若學(xué)到這等程度了,連計(jì)算機(jī)原理都不會(huì),還學(xué)個(gè)什么鬼?
連個(gè)C指針都覺得難、然而卻還掙扎著想入這個(gè)門的……簡(jiǎn)直不可想象。
這也就是為什么我說要先學(xué)C語言,再考慮C++或Java還是Python還是PHP的原因。
2
很多人就不明白了,既然如此,為什么知乎上大多數(shù)人不推薦C語言入門?
舉個(gè)例子:
就好比學(xué)武功是先練《少林基本功》還是直接練《辟邪劍法》的問題。
這里就出現(xiàn)了分支,如果你只是有興趣,想要做出一些東西來驗(yàn)證你的想法的話,可能《 Python 》《PHP》這樣的編程語言比較適合你。
目的性不是很強(qiáng)的學(xué)習(xí),很容易因?yàn)槲冯y,無法解決問題就選擇放棄,所以建議還是選擇簡(jiǎn)單一些,并且能馬上看到結(jié)果的語言來學(xué)習(xí)比較好。
這類編程語言就類似于編程界的《辟邪劍法》,你可以不懂底層,沒有基本功也能很快讓你上手,做出你印象中程序的樣子,這樣可以更好地提升你的興趣并且解決你的問題。
如果你是出于對(duì)這行的“錢景”,想要未來在這行扎根,并且有不錯(cuò)的發(fā)展的話,應(yīng)該不至于因?yàn)殡y而放棄吧?所以以我覺得想學(xué)習(xí)編程的朋友先從C語言入門還是不錯(cuò)的。