工程師的缺德行為:叫朋友去學(xué)C/C++

常??吹椒切畔⒈尘暗呐笥褑柟こ處煟何易罱雽W(xué)寫程序!該怎么入門?

通常他們會(huì)得到很多糟糕的答案:「先了解演算法」、「先弄懂資料結(jié)構(gòu)」、「先認(rèn)識(shí)物件導(dǎo)向」。

這些答案都?jí)蛟愀饬?,但最糟糕的答案莫過于「從C/C++開始入門」。

(我看過最扯的建議是「去找C++?Primer?Plus來看」。這本磚頭書絕對(duì)不適合一般人自學(xué))

照著以上建議去做的朋友,大概會(huì)在兩周之內(nèi)就得到滿滿的挫折感,然后認(rèn)為自己「果然不適合寫程序」,也不好意思再去跟工程師講自己的狀況,最終再也不想踏入programming領(lǐng)域。

這些建議真是害人不淺。

信息相關(guān)科系,是因?yàn)橐永m(xù)到之后的資料結(jié)構(gòu)、作業(yè)系統(tǒng),所以大一從C/C++開始入門會(huì)比較連貫、才能完整學(xué)一次計(jì)算機(jī)的基本知識(shí)。

而這些想學(xué)coding的朋友,大部分只是這兩種情況:

A.最近覺得寫網(wǎng)站好酷,想試試看自己能否寫個(gè)blog、或是個(gè)人網(wǎng)頁

B.對(duì)工作上某些人工流程不滿意,想試試看自己能否學(xué)寫程序、用電腦解決問題

他們的愿望僅此而已,并沒有打算成為計(jì)算機(jī)專家、黑客,實(shí)在沒有必要從C/C++入門。

就像點(diǎn)火一樣,先從零星的火苗開始、小心保護(hù)不要讓它熄滅,接著慢慢加?xùn)|西進(jìn)去、讓火焰慢慢成為大火。學(xué)習(xí),除了知識(shí)/技能之外,培養(yǎng)成就感與熱情也是很重要的。而從C/C++入門,會(huì)讓正要萌芽的小火苗直接消滅殆盡。

我對(duì)程序設(shè)計(jì)入門的建議很簡單。

如果你是狀況A,去學(xué)PHP&MySQL,先弄一個(gè)丑丑網(wǎng)頁出來就可以了。

如果你是狀況B,去學(xué)Python,先弄一個(gè)能執(zhí)行、能顯示幾個(gè)文字的程序就可以了。

一般人想到程序通常只想到「圖形化界面」,如果能寫出一個(gè)有界面的小玩意會(huì)非常有成就感。

那樣的話,學(xué)PHP來寫個(gè)網(wǎng)站、直接就是界面,絕對(duì)有趣;學(xué)Python很快就能把玩內(nèi)建的tkinter函式庫、做出按鈕做出選單,樂趣無窮。

話雖如此,你到市面上找PHP或是Python的書,大概還是會(huì)落得「滿滿的挫折感然后正式放棄」的下場。

別擔(dān)心,這不是你的錯(cuò),是那些書寫得不夠好。沒有一本是真正的程序設(shè)計(jì)入門書。

那些書只想著給你知識(shí)/技能,沒有想到要培養(yǎng)你的成就感、保護(hù)你的熱情。

要找書的話,我只建議兩本。

狀況A,去找歐萊禮的「深入淺出PHP與MySQL」(Head?First?PHP?&?MySQL)。

狀況B,去找歐萊禮的「深入淺出程序設(shè)計(jì)」(Head?First?Programming)。

國外的在線開放課程也可以考慮。

Coursera的

人人都懂的編程課(Python)

(https://www.coursera.org/course/pythonlearn)

學(xué)習(xí)編程:基礎(chǔ)

(https://www.coursera.org/course/programming1)

麻省理工的

Introduction?to?Computer?Science?and?Programming

(http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-introduction-to-computer-science-and-programming-spring-2011/)

A?Gentle?Introduction?to?Programming?Using?Python

(http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-189-a-gentle-introduction-to-programming-using-python-january-iap-2011/)

全部都是用Python入門。

我對(duì)程序設(shè)計(jì)入門的建議就只有這樣。你不需要知道什么演算法、資料結(jié)構(gòu)、物件導(dǎo)向。

什么狗屁名詞都不需要知道。那大多只是工程師下意識(shí)地想讓你覺得他們很厲害而已。

你只要想辦法寫出一個(gè)會(huì)動(dòng)的程序就可以了。所有偉大的東西都是這樣開始的。


Q1:但是狀況A還要面對(duì)HTML/CSS耶..好像很難?

每個(gè)技能深入下去沒有不難的。但是HTML/CSS要入門實(shí)在不怎么難。

就從隨便寫幾個(gè)表單或按鈕、弄個(gè)丑丑的靜態(tài)網(wǎng)頁出來開始吧。

Q2:我是工程師,我能怎么幫助朋友?

幫他們搞定環(huán)境設(shè)定吧!幫他們把最基礎(chǔ)卻又最給新手挫折感的環(huán)境給設(shè)定好!讓他們能用記事本跟幾個(gè)小工具就開始寫code!給他們成就感!

Q3:那寫手機(jī)app呢?你怎么沒提到?

我覺得手機(jī)app還滿難入門的,實(shí)在給不出有建設(shè)性的建議。不知道。不過,上面的連結(jié)也許有一些手機(jī)相關(guān)課程,不妨試試?


文章來自轉(zhuǎn)個(gè)彎日誌

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容