【魚(yú)皮】學(xué)好項(xiàng)目的 12 條建議
大家好,我是程序員魚(yú)皮。很多學(xué)編程的朋友們都會(huì)遇到以下的問(wèn)題:
- 怎么學(xué)好項(xiàng)目?
- 學(xué)完項(xiàng)目就忘怎么辦?
- 為什么做完了項(xiàng)目,感覺(jué)還是啥都不會(huì)?
- 為什么簡(jiǎn)歷上也有項(xiàng)目,就是沒(méi)有回復(fù)?
需要注意的是,做項(xiàng)目可不僅僅是抄了代碼、跟著教程運(yùn)行一遍就完事,以下 12 條建議分享給大家,都是我自己的經(jīng)驗(yàn)。如果能做到建議中的點(diǎn),認(rèn)真完成并理解 4 個(gè)及以上的項(xiàng)目,做項(xiàng)目的能力達(dá)到中大廠水平絕對(duì)沒(méi)有問(wèn)題。
1、選擇合適的項(xiàng)目
一般情況下,做項(xiàng)目的前提是學(xué)完至少一門開(kāi)發(fā)框架,比如前端的 Vue / React、后端的 Spring Boot。
一定要根據(jù)自己當(dāng)前的技術(shù)棧和水平選擇項(xiàng)目。比如剛學(xué)完框架時(shí),不要為了趕時(shí)間一上來(lái)就做微服務(wù)、高并發(fā)項(xiàng)目,很容易吃不消,而是要先從掌握項(xiàng)目基本的開(kāi)發(fā)流程開(kāi)始,一步步學(xué)習(xí)項(xiàng)目開(kāi)發(fā)方法、逐漸接受新的技術(shù)。
剛開(kāi)始學(xué)項(xiàng)目感覺(jué)難、做得慢,是很正常的,因?yàn)槟闳鄙僦R(shí)和經(jīng)驗(yàn)。如果發(fā)現(xiàn)項(xiàng)目中有太多你沒(méi)學(xué)過(guò)的技術(shù)、并且沒(méi)有對(duì)應(yīng)的教程講解,那么就先暫停項(xiàng)目,即時(shí)補(bǔ)充知識(shí),再來(lái)學(xué)習(xí)。
2、分清主次
時(shí)間緊急的情況下,后端方向的同學(xué)可以只看后端部分的教程、只做后端、運(yùn)行接口文檔即可,建議直接跳過(guò)前端部分的教程、也不要花時(shí)間去運(yùn)行前端。否則可能因?yàn)椴皇煜で岸?、折騰環(huán)境而浪費(fèi)了大量時(shí)間。
前端同學(xué)也是同理。
3、多敲代碼
我接觸過(guò)一些同學(xué),看完了幾套視頻教程后,還是無(wú)法自己敲項(xiàng)目,大概率就是因?yàn)樽鲰?xiàng)目的過(guò)程中 “只顧著看教程” 了,沒(méi)有自己動(dòng)手練習(xí)。很多時(shí)候,看別人敲代碼感覺(jué)并不難,但一看就會(huì)、一寫就廢,看完教程后,必須自己把每行代碼都敲出來(lái),才算是真正地學(xué)過(guò)這個(gè)項(xiàng)目,而不是將 “掌握理論”、“熟練背誦八股文” 作為學(xué)好項(xiàng)目的標(biāo)準(zhǔn)。
4、自主思考
在跟著視頻教程做項(xiàng)目的過(guò)程中,盡量多思考,比如 “為什么要這么設(shè)計(jì)?這么設(shè)計(jì)有什么好處?為什么代碼要這么寫?有沒(méi)有更好的寫法?” 等等,必要時(shí)通過(guò)查閱資料來(lái)驗(yàn)證自己的思考。如果一味跟著講師的節(jié)奏走,你或許可以完成項(xiàng)目,但是做完這個(gè)項(xiàng)目后,你可能很難自主做出一個(gè)類似的、或者更好的項(xiàng)目。有的時(shí)候,講師說(shuō)的不一定是最優(yōu)解。
像我?guī)Т蠹易鲰?xiàng)目時(shí),會(huì)經(jīng)常引導(dǎo)大家思考。有時(shí)候故意留一個(gè)小坑,結(jié)果很多同學(xué)想都不想就跳到坑里了;也有些同學(xué),能夠提出和我不一樣的實(shí)現(xiàn)方案,哪怕方案未必合理,能自己思考,就很棒了。
5、持續(xù)記錄
在做項(xiàng)目的過(guò)程中,一定要多做筆記,不要覺(jué)得教程配套的筆記很詳細(xì)了,自己就偷懶不寫。筆記的作用是幫助自己復(fù)習(xí),所以重點(diǎn)是記錄自己做項(xiàng)目時(shí)的理解思考、遇到的問(wèn)題和解決方案。此外,自己寫過(guò)的每一行項(xiàng)目代碼,都要完整地保存,等你學(xué)過(guò)更多技術(shù)知識(shí)后,再回過(guò)頭來(lái)看自己的代碼,一定會(huì)感嘆自己的進(jìn)步。
6、自主解決問(wèn)題
這點(diǎn)是最重要的! 很多同學(xué)一遇到問(wèn)題就緊張、害怕、擔(dān)心自己解決不了無(wú)法繼續(xù)做項(xiàng)目,然后就瘋狂求助他人。
負(fù)責(zé)任的說(shuō),我寫代碼近 8 年,從學(xué)生時(shí)代開(kāi)始,可以說(shuō) 99% 的 Bug 都是自己解決的,所以大家不要有這種擔(dān)心,因?yàn)槟銓W(xué)的技術(shù)幾乎都是主流的,你遇到過(guò)的 Bug,別人也一定遇到過(guò)。在遇到項(xiàng)目報(bào)錯(cuò)時(shí),要先搜集足夠多的錯(cuò)誤信息(比如通過(guò)日志),然后查閱搜索引擎(百度應(yīng)該都知道吧)、技術(shù)社區(qū)、官方文檔、甚至現(xiàn)在還可以 問(wèn) AI,大概率是有解決方案的。即使真的沒(méi)辦法解決,在向他人求助前,要保證自己的問(wèn)題描述地足夠清楚、并且清晰列舉已經(jīng)嘗試過(guò)的解決方案,別人才能更快地幫你解決。
7、多讀官方文檔
如今新技術(shù)層出不窮,不可能每個(gè)新技術(shù)都有好心人給你錄制保姆級(jí)教程。而且工作后,很多公司可能會(huì)有自研技術(shù),只有內(nèi)部同事用過(guò),我們只能通過(guò)閱讀文檔來(lái)解決。所以建議大家在學(xué)完一門新技術(shù)后,花 1 - 2 個(gè)小時(shí)就好,閱讀一下官方文檔,不僅能了解一些教程講解之外的技術(shù)特性,還能提升自己閱讀文檔、學(xué)習(xí)新技術(shù)的能力。
8、多寫文檔
除了記筆記外,每做完一個(gè)項(xiàng)目,都必須寫一篇完整的項(xiàng)目總結(jié)文檔。不要嫌麻煩,寫總結(jié)文檔的過(guò)程中,你會(huì)從上帝視角再回顧一遍整個(gè)項(xiàng)目的背景、設(shè)計(jì)、實(shí)現(xiàn)、亮點(diǎn)等,幫助你復(fù)習(xí)鞏固、加深印象。也便于你更快地將項(xiàng)目寫在簡(jiǎn)歷上、或者開(kāi)源和分享自己的項(xiàng)目。有能力的同學(xué)可以多畫(huà)一些圖,比如功能模塊圖、架構(gòu)圖、UML 類圖等,正所謂一圖勝千言,繪圖能力也是優(yōu)秀程序員必備的特質(zhì)。
如果你發(fā)現(xiàn)自己寫不出總結(jié)文檔,那么大概率你對(duì)這個(gè)項(xiàng)目還是不夠熟悉,沒(méi)有完全掌握,這時(shí)再對(duì)照著自己的筆記快速回顧吧。
如果時(shí)間比較充足,最好是能夠口述整個(gè)項(xiàng)目的背景、技術(shù)棧、核心業(yè)務(wù)流程、核心設(shè)計(jì)、項(xiàng)目難點(diǎn)、開(kāi)發(fā)過(guò)程、測(cè)試過(guò)程、上線過(guò)程、解決過(guò)最復(fù)雜的問(wèn)題等等,鍛煉自己的表達(dá)能力,也為后續(xù)的面試做了準(zhǔn)備。
9、自主優(yōu)化
跟著教程完成項(xiàng)目后,需要給項(xiàng)目增加幾個(gè)擴(kuò)展點(diǎn)、或者回顧自己的代碼并尋找優(yōu)化空間(比如優(yōu)化代碼規(guī)范),從而增加簡(jiǎn)歷的區(qū)分度。這也是區(qū)別是否能夠入職大廠的一個(gè)重要因素。這個(gè)優(yōu)化不一定是剛完成項(xiàng)目時(shí)立刻就去做的,可以等過(guò)了半年后,再以現(xiàn)在的水平去優(yōu)化之前做過(guò)的項(xiàng)目,所以魚(yú)皮上面也建議了,自己寫的代碼一定要留好。
10、上線項(xiàng)目
在本地完成項(xiàng)目后,最好將項(xiàng)目上線,并且在線上正常運(yùn)行一段時(shí)間,跑通整個(gè)流程,這是獨(dú)立開(kāi)發(fā)者必備的技能。此外,之前也分享過(guò),上線項(xiàng)目能夠大幅增加簡(jiǎn)歷的真實(shí)性。
11、主動(dòng)分享
將項(xiàng)目上線、并且編寫好項(xiàng)目總結(jié)文檔后,可以將項(xiàng)目和文檔分享給其他同學(xué)。這樣做的好處是,其他同學(xué)會(huì)幫助你 “測(cè)試” 網(wǎng)站,指出項(xiàng)目的不足之處,從而給你帶來(lái)更多優(yōu)化項(xiàng)目的思路和機(jī)會(huì),而且對(duì)其他同學(xué)也有幫助,會(huì)給你提供更多的正反饋。魚(yú)皮剛開(kāi)始做分享也是這樣,通過(guò)輸出知識(shí)給自己帶來(lái)更多學(xué)習(xí)知識(shí)的動(dòng)力。
12、學(xué)會(huì)合作
時(shí)間有限的情況下,不需要前端和后端都看教程并且自己實(shí)現(xiàn),可以找和自己方向互補(bǔ)的朋友,協(xié)作開(kāi)發(fā),一起參加競(jìng)賽增加經(jīng)驗(yàn)值也是極好的。
以上,我是混跡???6 年的老學(xué)長(zhǎng)魚(yú)皮,有幫助的話還請(qǐng)點(diǎn)贊哦,大家加油吧 ???? !
#項(xiàng)目##學(xué)習(xí)方法##我的失利項(xiàng)目復(fù)盤##簡(jiǎn)歷中的項(xiàng)目經(jīng)歷要怎么寫#