他說他想學(xué)編程,問我第一門編程語言應(yīng)該學(xué) C 語言還是 Python 。 我都有點(diǎn)驚呆了,初中生,此時(shí)已經(jīng)三月底了,這個(gè)時(shí)候不是應(yīng)該備戰(zhàn)中考嗎(如果初三的話)?他自信地跟我講,中考 750 分的試卷,他能考 650 分以上。這個(gè)分?jǐn)?shù),真的是可以稱得上學(xué)霸級的成績,但畢竟隔著屏幕,也沒法確認(rèn)真實(shí)性。所以,在叮囑他初中生還是以學(xué)業(yè)為主的同時(shí),對于他的問題我還是給了一些我自己的看法。
如果是成年人,我肯定是建議大家一定要把 C 語言當(dāng)作入門語言。 為什么呢?其實(shí)很簡單,C 語言是很多編程語言的鼻祖,把 C 語言弄明白了,再去學(xué)習(xí)其它編程語言,就會(huì)非???,畢竟語言都是相通的。另外,C 語言是一門非常貼近底層的語言,學(xué)好 C 語言,你會(huì)對操作系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)、算法,乃至編譯原理等等基礎(chǔ)知識,都會(huì)有更加深刻的理解。別小看計(jì)算機(jī)基礎(chǔ)知識,這些不起眼的東西,才是程序員內(nèi)功的真正體現(xiàn)。特別是指針,它是 C 語言的靈魂,同時(shí)也是很多程序員的惡夢。指針用得好的話,就可以像魔法師手里的魔杖一樣,隨心所欲操縱內(nèi)存;如果不熟悉指針的操作,分分鐘給你 OOM !而 Python 是比 C 語言更高級的語言,屏蔽掉大部分底層接口,讓你更加專注于應(yīng)用的開發(fā)。所以 Python 學(xué)習(xí)起來相對要簡單很多,也更加容易理解,比較接近人類語言。但這也導(dǎo)致了學(xué)習(xí) Python 會(huì)讓你脫離基礎(chǔ)知識,對于程序員內(nèi)功的修煉不友好。所以,程序員的第一門語言,強(qiáng)烈建議學(xué)習(xí) C 語言,不管你后面有沒有用到它。但如果是小孩的話,那我更建議學(xué)習(xí) Python 。原因也很簡單,Python 簡單易學(xué),正反饋比較快,容易堅(jiān)持學(xué)下去。有一些城市甚至都在小學(xué)階段就開設(shè)了 Python 課程。而 C 語言更底層,學(xué)習(xí)起來更難,沒有一定知識積累的話,學(xué)習(xí)起來會(huì)非常費(fèi)勁,不僅打擊自信心,還可能很快就放棄。不過話又說回來,小初高階段,還是把要重心放在學(xué)業(yè)上,編程頂多作為一個(gè)課外愛好,否則顧此失彼就得不償失了。當(dāng)然,現(xiàn)在也不少神童級別的人物,從小就開始學(xué)習(xí)編程,比如最強(qiáng)大腦選手 Vita 君(沒錯(cuò),我是最強(qiáng)大腦資深粉絲),從 4 歲開始學(xué)習(xí)編程,如今已經(jīng)有 4 年編程經(jīng)驗(yàn),就問你怕不怕?