總有人說(shuō)學(xué)習(xí)編程之后知識(shí)點(diǎn)很容易就忘記了,這該怎么辦呢
針對(duì)這種問題,我們有一句描述,叫:一學(xué)就會(huì),一用就廢。
這就和剛開始寫作文一樣。字兒都認(rèn)識(shí),別人的文章也能看懂,但自己寫就怎么都寫不出來(lái)。
后來(lái)怎么就又會(huì)了呢,因?yàn)楸焕蠋煴浦鴮懙枚嗔?,就?huì)了唄。
所以,還是練得少。
自學(xué)編程,在「練」的方面,我建議分三步走:

一、刷 OJ 題練語(yǔ)法
就是到各種 Online Judge 刷題,非常適合新手。
可以先從簡(jiǎn)單題入手,一個(gè)一個(gè)地切。乏味了,再逐漸增大難度。這樣可以不斷收獲成就感,甚至上癮。
首先推薦「力扣」(LeetCode),商業(yè)化運(yùn)營(yíng),比較友好。
其次推薦各種大學(xué)的面向 ACM 競(jìng)賽的 Online Judge。
不管在哪里刷題,做到需要特別的算法才能求解的題,就可以暫停,走下一步了,因?yàn)槲覀兊哪繕?biāo)是提升工程能力,而不是算法。工程能力才是大多數(shù)程序員吃飯的家伙,算法是錦上添花。后面需要時(shí),隨時(shí)可以再回來(lái)修煉算法。
二、讀源碼練認(rèn)知
就像寫出好文章,得先讀幾百篇?jiǎng)e人的好文章一樣,讀優(yōu)秀的代碼能學(xué)到太多太多別人的經(jīng)驗(yàn)了。
但沒實(shí)際做過項(xiàng)目,沒經(jīng)過工程化的洗禮,常常不能領(lǐng)會(huì)別人代碼里的精妙,甚至?xí)X得人家的一些做法好像多此一舉。所以有了一些項(xiàng)目經(jīng)驗(yàn)后,再讀優(yōu)秀的源碼,才能真的提升認(rèn)知。
現(xiàn)在開源軟件那么多,優(yōu)秀的代碼并不缺,缺的是一顆啃下去的恒心。
建議選一個(gè)自己會(huì)用到的,比如各種框架源碼,開始讀。這有兩個(gè)好處:
知道它是干嘛的,讀起來(lái)更容易理解。
讀懂了,對(duì)用好它們也大有幫助。
讀源碼的技巧,知乎已經(jīng)有很好的相關(guān)答案了。
讀的過程中,如果能再試著改改 bug,做做自己想要的 feature,提個(gè) PR,一旦被接受,那成就感是相當(dāng)爆棚的!
三、用 AI 編程練感覺
前兩條都是傳統(tǒng)硬路線。這第三條是個(gè)捷徑,但可能是直通未來(lái)的。
AI 大模型出來(lái)后,尤其 GPT-4 無(wú)與倫比的編程能力,讓很多人驚呼,程序員要被替代了
從我實(shí)際使用 GPT-4 + Copilot 寫出幾萬(wàn)行代碼的經(jīng)驗(yàn)看,程序員并不會(huì)被替代,而是要改變工作習(xí)慣,尤其是學(xué)技術(shù)的方式。
以前我們是先學(xué)再用,以后是先用 GPT 生成代碼,邊調(diào)程序邊學(xué)。
AI 編的代碼是厲害,但很少有直接就能用的,還是需要有經(jīng)驗(yàn)的人 review,確認(rèn)后再提交。
在這個(gè)過程里,人類的價(jià)值體現(xiàn)在能看懂 GPT 的輸出,并基于認(rèn)知判斷有沒有問題,問題在哪里。把問題指出,AI 還能再改。人類自己手敲代碼的機(jī)會(huì)是不多了。
所以通過本文一和二練好語(yǔ)法能讀懂 AI 輸出,練好認(rèn)知能判斷 AI 對(duì)錯(cuò)就足夠了,并不需要牢牢記住很多細(xì)節(jié)。也就是說(shuō),有編程的感覺就夠了。