1. 前言 現(xiàn)在 IT 行業(yè)越來(lái)越火爆,許多朋友都愿意入門「挨踢」,噢,不,當(dāng)程序員。 那么問(wèn)題來(lái)了,對(duì)剛接觸這個(gè)領(lǐng)域的新人來(lái)說(shuō),選什么語(yǔ)言作為第一門語(yǔ)言呢?這是很關(guān)鍵的問(wèn)題,因?yàn)檫@很可能決定了這位新人是「從入門到繼續(xù)」還是「從入門到放棄」。 2. 建議
這里又得分情況來(lái)說(shuō):
3. 入門推薦
4. 分析 總結(jié)一下 C 語(yǔ)言作為第一門編程語(yǔ)言的好處: 1. 基礎(chǔ)深厚現(xiàn)在你看到的大部分編程語(yǔ)言都是借鑒了 C 語(yǔ)言或者用 C 語(yǔ)言寫成的,比如 Java,C++,C#,Python,Go,JavaScript,Objective-C,Swift,PHP,Perl,等等。 幾乎所有的操作系統(tǒng)都用到了 C 語(yǔ)言,比如 Windows,Unix,Linux,macOS,iOS,Android,等等。 可以說(shuō),C 語(yǔ)言影響了全球的計(jì)算機(jī)系統(tǒng)和網(wǎng)絡(luò)。改編《指環(huán)王》的經(jīng)典臺(tái)詞就是「One language to rule them all」(意思是“一門語(yǔ)言統(tǒng)領(lǐng)其他語(yǔ)言”)(《指環(huán)王》原來(lái)的詩(shī)是「One ring to rule them all」(意思是“一枚戒指統(tǒng)領(lǐng)其他戒指”))。 當(dāng)然了,C 語(yǔ)言最初是用 B 語(yǔ)言寫的,但今天卻幾乎沒(méi)有人在用 B 語(yǔ)言了。可見 C 語(yǔ)言的飛躍,其源碼設(shè)計(jì)之精良。 當(dāng)時(shí)的程序員(如 C 語(yǔ)言之父 Dennis Ritchie 丹尼斯.里奇)真的是超級(jí)厲害,我這種程度實(shí)在連遠(yuǎn)眺都看不到他們的項(xiàng)背啊。 2. 難度適中C 語(yǔ)言比 Python,Java 之類難入門,但是比 C++ 簡(jiǎn)單很多。 我覺(jué)得 C++ 不適合作第一門編程語(yǔ)言,太復(fù)雜,東西太多,基本就是「從入門到放棄」。要學(xué) C++ 最好等入門編程之后。當(dāng)然,如果你一定要用 C++ 作為第一門編程語(yǔ)言,我也沒(méi)資格反對(duì)。 相比之下,C 語(yǔ)言的難度適中,也沒(méi)有那么可怕。最讓人害怕的指針、位運(yùn)算(嵌入式里面比較多左移右移,需要數(shù)學(xué)功底還可以,不然那些十六進(jìn)制,二進(jìn)制會(huì)讓人頭暈的)、自定義數(shù)據(jù)結(jié)構(gòu)、內(nèi)存分配什么的,其實(shí)也還好,熟能生巧。 3. 嵌入式的主要語(yǔ)言C 語(yǔ)言在嵌入式領(lǐng)域算是舉足輕重了,特別是涉及到比較底層的嵌入式,當(dāng)然你說(shuō) Python 也可以用于樹莓派這樣的開發(fā)板,但是你不會(huì) C 語(yǔ)言的話,一般去應(yīng)聘嵌入式的工作還是比較困難的。 現(xiàn)在這個(gè)時(shí)代,隨著可穿戴設(shè)備和其他設(shè)備日益普及,嵌入式的前景肯定不錯(cuò)。 我個(gè)人認(rèn)為:人工智能和嵌入式(物聯(lián)網(wǎng))是之后比較火熱的領(lǐng)域。我有整理視頻教程的哦! 4. 理解計(jì)算機(jī)作為程序員,如果你想要進(jìn)階為高級(jí)甚至偉大乃至史詩(shī)級(jí)別的程序員,一定得對(duì)計(jì)算機(jī)原理,編譯原理等等有所了解。 C 語(yǔ)言雖然也算是高層語(yǔ)言,但相對(duì)于 Python,Java 等,C 語(yǔ)言更接近底層。 入門了 C 語(yǔ)言,你會(huì)對(duì)計(jì)算機(jī)的內(nèi)存、寄存器等原理有一定了解。 我學(xué)生時(shí)代就是先學(xué)了 C 語(yǔ)言,然后學(xué)了匯編。學(xué)完之后,發(fā)現(xiàn)對(duì)內(nèi)存,位移,寄存器等等操作都有了撥云見霧的認(rèn)識(shí),會(huì)感覺(jué)自己慢慢地領(lǐng)悟了編程。 5. 學(xué)完 C 語(yǔ)言后學(xué)其他語(yǔ)言會(huì)很快這點(diǎn)我深有體會(huì),我自從借 C 語(yǔ)言入門了編程之后,后面再學(xué)習(xí) Java,PHP,C++(還是有點(diǎn)疼痛的,誰(shuí)讓 C++ 這么龐雜…),Python,Kotlin,等等就很容易了。 因?yàn)榻?jīng)過(guò) C 語(yǔ)言的磨礪,你的編程思維能力已經(jīng)比較不錯(cuò),關(guān)于數(shù)據(jù)結(jié)構(gòu)和算法等可以通過(guò)做練習(xí)和個(gè)人項(xiàng)目來(lái)進(jìn)行。 當(dāng)年我一開始接觸 C 語(yǔ)言,感到比較難,就退避了,改去學(xué) Java,結(jié)果也不得要領(lǐng)。直到我后來(lái)轉(zhuǎn)而去用 C 語(yǔ)言入門編程,學(xué)會(huì)了 C 語(yǔ)言之后,學(xué) Java 變得順風(fēng)順?biāo)?/p> 之后你如果要進(jìn)階 C 語(yǔ)言,可以找找書看,多做做練習(xí),做完里面的練習(xí),你的 C 語(yǔ)言的水平就已經(jīng)很不錯(cuò)了。 當(dāng)然了,如果你不是做嵌入式等對(duì) C 語(yǔ)言水平要求比較高的領(lǐng)域,那沒(méi)必要把 C 語(yǔ)言學(xué)那么深。 借助 C 語(yǔ)言入門編程之后可以學(xué)學(xué) Java,Python,Kotlin,Go 語(yǔ)言(Go 語(yǔ)言被稱為 21 世紀(jì)的 C 語(yǔ)言)等比較被看好的語(yǔ)言。 當(dāng)然,PHP 這樣「世界上最好的語(yǔ)言」也是比較簡(jiǎn)單的。PHP 的語(yǔ)法和 C 語(yǔ)言比較類似,畢竟 PHP 的解釋器是用 C 來(lái)寫的嘛。 5. 總結(jié) 有一點(diǎn)需要注意,就是學(xué)習(xí)編程語(yǔ)言,千萬(wàn)不要貪多而不精。應(yīng)該先學(xué)精一門語(yǔ)言,之后再去涉獵其他的。 畢竟編程語(yǔ)言之間,基本的邏輯,條件語(yǔ)句,循環(huán)語(yǔ)句,類或結(jié)構(gòu)體,都是互通的。一般來(lái)說(shuō),一通則百通。 有些朋友可能一門編程語(yǔ)言還沒(méi)入門或精通呢,就想要蜻蜓點(diǎn)水般去學(xué)新的語(yǔ)言,這樣最后什么也不能精通。 祝大家還沒(méi)入門編程的可以早日入門,已經(jīng)入門的技術(shù)日益精進(jìn)(需要學(xué)學(xué)面向?qū)ο笏季S,架構(gòu),設(shè)計(jì)模式,數(shù)據(jù)結(jié)構(gòu)和算法,等)。 要知道現(xiàn)在 IT 行業(yè)可是薪資很不錯(cuò)的,而且未來(lái)前景絕對(duì)不堪憂,畢竟人工智能還要我們來(lái)編寫和操控。 有獨(dú)到見解的朋友,歡迎來(lái)交流! |
|