如何選擇一個(gè)合適的練手項(xiàng)目
共 1770字,需瀏覽 4分鐘
·
2024-07-15 13:31
經(jīng)常有同學(xué)問到關(guān)于練手項(xiàng)目的問題,今天在這里集中聊一聊,包括我這些年指導(dǎo)學(xué)生的一點(diǎn)經(jīng)驗(yàn),供各位參考。
1. WHO:誰需要練手項(xiàng)目?
可以說,所有編程學(xué)習(xí)者都離不開實(shí)踐的過程。除非你只是心血來潮,僅僅想看下編程是怎樣一回事,不打算去用它。否則,不管你是準(zhǔn)備成為一名專業(yè)的開發(fā)人員,還是想在其他領(lǐng)域使用編程提升效率,只要你打算“真的”寫程序,那就離不開練習(xí)。
2. WHY:為什么需要練手?
少數(shù)技能是知道/不知道的性質(zhì),比如某種工具軟件的使用、某種機(jī)器的操作,只要經(jīng)過培訓(xùn)就能上崗;大多數(shù)的技能是熟練/不熟練的性質(zhì),比如演奏樂器、駕駛汽車。編程亦是如此。你了解基礎(chǔ)的語法、類型、常用的函數(shù)、模塊,就好像你知道如何在吉他上彈出單音、和弦,這離演奏出一首曲子來,還差了大量的練習(xí)時(shí)間。
編程雖不用像樂器一樣需要肌肉記憶,但你同樣需要對(duì)常用“套路”的熟悉,才能在使用時(shí)信手拈來。另一方面,只有去面對(duì)實(shí)際的問題,才會(huì)倒逼你思考解決問題的“大局觀”,如何流程化模塊化地實(shí)現(xiàn)你需要的功能。
3. WHEN:什么時(shí)候開始練?
盡管項(xiàng)目實(shí)踐很重要,但也不宜過早,所謂“欲速則不達(dá)”。如果你還沒有掌握編程的基礎(chǔ),就急于做出一個(gè)可展示的作品,往往事倍功半,說不定還帶來挫敗感,喪失繼續(xù)學(xué)習(xí)的動(dòng)力。我建議,至少你對(duì)基本的語法、類型,常用的數(shù)據(jù)結(jié)構(gòu)如 list、dict 的使用,函數(shù)及參數(shù)的原理,字符串、文件、網(wǎng)絡(luò)操作,如何使用模塊提供的功能等方面都有所了解之后,再動(dòng)手做項(xiàng)目。在此之前,把教程上的例程自己寫一遍會(huì)更有效果。
當(dāng)然,也不宜太晚。學(xué)會(huì)編程,但遲遲不動(dòng)手,過一陣子這個(gè)技能就荒廢了,等到下次想起來要用的時(shí)候發(fā)現(xiàn)又得從頭學(xué)。很多人表示,我上學(xué)時(shí)候?qū)W過 C 語言,但依然寫不出代碼,就是這個(gè)原因。
4. WHAT:應(yīng)該選擇怎樣的項(xiàng)目?
盡可能選擇難度在自己能力上界左右的項(xiàng)目。太簡(jiǎn)單了對(duì)能力提升不大;太難了,步子太大,通常都是半途而廢。偶爾會(huì)遇到有人問類似問題:我剛學(xué) Python,我想做個(gè)自動(dòng)駕駛程序,應(yīng)該怎么做?這問題我回答不了,答案也沒有意義,在你能力還不夠的時(shí)候,即便答案放在你面前也是理解不了的。高出自己能力一點(diǎn)點(diǎn),在過程中通過搜索、查閱、詢問等方式解決問題,你的經(jīng)驗(yàn)值才會(huì)得到增長(zhǎng)。
除了合適的難度外,盡量從身邊入手,尋找可用程序解決的問題。做一個(gè)你平常用得上的批量文件處理小程序,會(huì)比千篇一律的抓圖片爬蟲更有意思。這樣的項(xiàng)目目標(biāo)明確,最終更可能完成。
5. HOW:選好題后要怎么練?
從模仿做起,從核心功能做起。比如你要做網(wǎng)站項(xiàng)目,那就可以模仿一個(gè)知乎。開發(fā)時(shí),不建議用瀑布式的開發(fā)模式一步到位,而是迭代式的開發(fā),例如:1.先完成最基本的問答功能;2.之后增加點(diǎn)贊、排序;3.再增加評(píng)論功能;4.實(shí)現(xiàn)關(guān)注用戶功能……迭代式開發(fā)可以讓你更快獲得階段成就感。永遠(yuǎn)記?。?strong>完成比完美更重要!
當(dāng)你慢慢已經(jīng)可以模仿得像那么回事之后,不妨嘗試下:1.深入細(xì)節(jié),把一兩個(gè)具體功能做到“像素級(jí)”復(fù)刻原版的程度;2.增加你自己的功能,甚至完全原創(chuàng)一個(gè)項(xiàng)目;3.把你的作品發(fā)給別人使用。當(dāng)做到這幾點(diǎn)的時(shí)候,你已經(jīng)離一個(gè)程序員不遠(yuǎn)了。
以上是我對(duì)于通過項(xiàng)目實(shí)踐提升編程能力的一些經(jīng)驗(yàn)和建議。歡迎留言討論,也歡迎分享你在學(xué)習(xí)中的心得。
大家好,歡迎來到 Crossin的編程教室~
作者:Crossin的編程教室
