全棧工程師自述:我的編程能力為什么突飛猛進(jìn)?| 知乎4千4百贊
乾明 編輯整理
量子位 報(bào)道 | 公眾號 QbitAI
你的編程能力從什么時(shí)候開始突飛猛進(jìn)?11月17日深夜,這個(gè)問題出現(xiàn)在了知乎上。
兩天之內(nèi),就引起了150多位用戶來分享自身經(jīng)驗(yàn)。因?yàn)樵掝}非常具有干貨導(dǎo)向,也引起了大量的圍觀。
截止發(fā)稿時(shí),已經(jīng)被瀏覽了94萬余次,一度登上知乎熱榜。
大量關(guān)注之下,大家也開始給回答“投票”。來自李東bbsky的回答,兩天獲得了3.7K贊同,現(xiàn)在已經(jīng)4.4K,被大家廣泛認(rèn)可。
他是一名全棧工程師,畢業(yè)于華中師范大學(xué)。
看到他的回答,也有不少人還通過評論表達(dá)支持,也有人給出了自己的補(bǔ)充。
他的編程能力從什么時(shí)候開始突飛猛進(jìn)?
以下是回答原文:
開始看英文技術(shù)文檔和使用Google的時(shí)候。
以前學(xué)前端和后端的知識都是看w3cschool、菜鳥教程、慕課網(wǎng)、國內(nèi)人寫的一些書或收藏大量讀起來并不那么好理解的文章和博客,很多知識學(xué)得比較基礎(chǔ)而零散,知識點(diǎn)都是靠死記硬背強(qiáng)行理解的而沒有動(dòng)手實(shí)戰(zhàn)。
當(dāng)開始閱讀英文技術(shù)文檔之后,明顯感覺到學(xué)的東西是很多書上沒有的,知識點(diǎn)更加細(xì)節(jié)也更加系統(tǒng),開始明白編程不應(yīng)該死記硬背,要善于查閱技術(shù)文檔。
國外的技術(shù)文檔寫得清晰而又詳細(xì),都有上手特別容易的QuickStart;而且很多新知識新特性也能先人一步用起來。
很多人問英文技術(shù)文檔該看啥:每個(gè)框架比如vue、react、angularjs、Laravel、Django;各個(gè)Linux的版本、數(shù)據(jù)庫、編程語言也有相應(yīng)的詳細(xì)技術(shù)文檔,大多數(shù)基礎(chǔ)教程都是在抄襲技術(shù)文檔。
使用Google除了可以更加快速的解決開發(fā)者遇到的問題(百度嚴(yán)重不行),還能翻查Github、Stackoverflow等一些技術(shù)人聚集的社區(qū)和一些大牛寫的博文。
當(dāng)然現(xiàn)在網(wǎng)上的學(xué)習(xí)文章和學(xué)習(xí)資料比我剛學(xué)編程的時(shí)候要強(qiáng)太多了。不過仍然要注意一定不要光收藏。Github和Stack Overflow應(yīng)該是程序員必知,其中在Github搜a(bǔ)wesome是我學(xué)編程語言必先看的,比如搜a(bǔ)wesome python。
開始再回頭看經(jīng)典計(jì)算機(jī)書籍的時(shí)候。
以前看過太多什么21天學(xué)會(huì)啥啥的,或者從入門到實(shí)戰(zhàn)等這樣國內(nèi)的人寫的書,不知道什么書是好的,也不知道該讀什么書,直到通過閱讀英文技術(shù)文檔對編程有了更深的認(rèn)識的時(shí)候,才發(fā)現(xiàn)大多數(shù)國內(nèi)人寫的編程方面的書坑得不要不要的。應(yīng)該閱讀經(jīng)典書籍。
經(jīng)典的計(jì)算機(jī)書基本都是國外書的翻譯版(排名分先后):
1、動(dòng)物書,也就是O’Reilly出版的系列書,犀牛書、蝴蝶書等等都是必讀經(jīng)典;
2、圖靈書,圖靈書基本都是人民郵電大學(xué)出版社出版的,可以去京東上面去找;
3、更深入一點(diǎn)的黑皮書(不推薦新手看),因?yàn)榉饷娑际呛谏?,所以叫黑皮書,都是機(jī)械工業(yè)出版社出版的;
4、異步圖書(異步圖書我看得少,不過也出版了很多經(jīng)典好書)
5、清華大學(xué)出版社出版的一些書
這個(gè)時(shí)候開始意識到操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)、編譯原理、數(shù)據(jù)結(jié)構(gòu)與算法、數(shù)據(jù)庫等基礎(chǔ)知識的重要。
如果你不知道啥是動(dòng)物書,建議你去京東搜索了解一下,比如直接搜O’Reilly,看書的封面就知道了。大家可以像瀏覽淘寶一樣在京東上多去逛逛淘書,哪怕看看目錄也行。
開始做項(xiàng)目解決實(shí)際問題的時(shí)候。
做項(xiàng)目不僅是對知識點(diǎn)的一個(gè)綜合應(yīng)用,還要求你會(huì)一些工具鏈,比如Cli、Git、Docker、DevOps的一些東西,比如要理解模塊化、組件等。
我學(xué)編程走了太多彎路,學(xué)得知識特別雜而泛,都是偏應(yīng)用,對工程化、性能、并發(fā)等只有大團(tuán)隊(duì)常能有的知識掌握得很不夠,因?yàn)槲抑耙恢睕]有在大廠當(dāng)一個(gè)“鋒利的螺絲釘”,沒能也沒法在某個(gè)領(lǐng)域特別精進(jìn),注定成不了一個(gè)很牛的工程師。
所以我開始把自己踩的坑和一些經(jīng)驗(yàn)分享給更多人,也選擇走產(chǎn)品經(jīng)理這條路。
如果你剛學(xué)編程,建議你不要只學(xué)學(xué)校里的計(jì)算機(jī)專業(yè)課程,一定要早早開始自學(xué),多實(shí)戰(zhàn),在實(shí)戰(zhàn)的基礎(chǔ)之上,再去做項(xiàng)目、看經(jīng)典計(jì)算機(jī)書籍,多去和BAT等企業(yè)的工程師交流。
開始和走在技術(shù)前沿的人交流的時(shí)候。
技術(shù)更新迭代是非??斓模偸菚?huì)冒出各種新的技術(shù),產(chǎn)生新的技術(shù)知識體系,也會(huì)有這些技術(shù)對應(yīng)的技術(shù)產(chǎn)品。
比如我經(jīng)歷過Vue、React、Go、Flutter等的興起, 可惜沒能及時(shí)跟進(jìn),及時(shí)與研究這些方向的人交流。認(rèn)識很多朋友都是通過追求、學(xué)習(xí)、鉆研新知識從而成為這些領(lǐng)域的負(fù)責(zé)人。
現(xiàn)在因工作原因,有機(jī)會(huì)和騰訊云云開發(fā)的技術(shù)團(tuán)隊(duì)交流,小程序也好、云開發(fā)也好,以及云服務(wù)都是未來一個(gè)比較有前景有潛力的技術(shù)方向。能夠請教走在技術(shù)前沿的人,確實(shí)能大大加深自己對技術(shù)的理解能力。
知乎回答鏈接:
https://www.zhihu.com/question/356351510/answer/898448815