- 原文作者:Tony Mastrorio
- 原文連結:medium.freecodecamp.org/how-to-esca…
- 文中部分連結可能需要梯子。
- 歡迎批評指正。
曾有很長一段時間,我都沒有開展我自己的專案,因為我不知道如何去動手。
每個我想做的專案裡,都有諸多功能是我根本不知道如何去實現的。我總是問自己,對於根本不懂的東西,我該怎麼下手呢?那時候我確信在做專案之前,我需要儲備更多的知識。
歡迎來到教程地獄
因此,我深陷於“教程地獄”中,遲遲不能開展我的專案。我感覺我最好學得充分一些,於是我把能找到的所有感興趣的、感覺終有一日能用上的教程都仔細學習了。我花了一個月又一個月,整晚看Youtube、Udemy等教學網站上海量的視訊。在這個過程中,我學了好多知識,同時也忘了好多。
例如,最開始,我在Udemy上買了The Web Developer Bootcamp,這個課程的視訊內容有43小時之長,內容涵蓋HTML、CSS、Bootstrap、JavaScript以及jQuery。這門課程棒極了,但當我學完了,還是感覺所學內容不足以做專案。
然後,我又回過頭來買了The Complete Web Developer Course 2.0,又看了30個小時的教學視訊,視訊內容跟第一門課幾乎相同!
為何會犯這樣的錯誤?說實話,看教程能給我安全感。有了教程,就有人能告訴你到底應該做什麼。看完教程你會感覺自己肚子裡有貨,生產力爆棚。
但事實上,如果你只是為了學而一課又一課的過腦子,而不是用在的的專案裡,那麼可能你學到的東西比你以為的要少得多。
沒有教學,就沒有煩惱
最終我幡然醒悟,我得從看教程中停下來,跳出那個舒適區,開始動手操作,不去理會那些貌似為我量身定製的教程。
我決定搭建一個類似Stack Overflow的網站,支援使用者註冊、發表問題、回答問題、新增評論,甚至直接發表視訊。
聽起來像是個雄心勃勃的計劃,但我先不管實現難度。我就是想直面挑戰。我那時正學Ruby on Rails,還挺享受這個過程,因此我把Rails定為我的專案的框架。
當我開始做那第一個專案,我有那麼多知識盲區(正如我開始每個專案的時候)。我不知道怎麼實現授權系統、分頁、在Rails應用裡運用AJAX;我不知道怎麼用遞迴實現評論系統。事實上,我連遞迴是什麼都不知道!
就從你所知之處開始
但沒關係,我不去想那些我無從下手之處。我會做什麼,就先做什麼,其餘的部分見招拆招。
Google成了我最好的朋友,它帶領我探尋Devise和oAuth Rails的瑰寶,我把二者結合來做授權系統。Devise使使用者能夠新建賬戶並登入;oAuth使使用者可以選擇用他們已有的Google賬號或Facebook賬號登入。
首先,我通過閱讀文件學了一點Devise和oAuth,然後在Google上搜尋如何將二者結合使用。我找到了這篇優秀文章,它一步一步地指導我操作,僅僅幾個小時後,授權系統就成型了。
每當我卡在什麼問題上,我都一頭扎進Stack Overflow的問答中,搜尋文章和教程來幫我解決問題。我還是會經常藉助教程,但現在我僅從中學眼下要用到的知識點。
求助不可恥
極少情況下,當在網上找不到現成答案,我就在Stack Overflow上提問。不是所有問題都能得到完全適合的回答,例如這個,在跟巢狀評論死磕了無數小時後,我決定求助了。雖然網友給出的答案沒有解決我的問題,但他們給了我靈感,幫我找到了解決方案。我學到了,在Stack Overflow上提問並沒有想象中的可怕,畢竟每個人都有需要援手之時。
我第一個專案的程式碼不能算是優秀的程式碼,不符合DRY原則,需要重構。另外有些功能點我可以用更高效的方式實現。還有些用到的技術我還沒完全理解。但沒關係,我寫出了能執行的程式,沒有被一系列教程牽著走。
我在第一個專案裡學到的東西比我之前一年裡鑽研教程學到的還多。最重要的是,我學到了成為開發者所需的技能。我教自己如何解決問題,如何妙用程式碼。第一次能把自己寫的程式執行起來,那種強大的滿足感讓我很享受。有沒有使用者使用我不在乎,設計是否優秀我不在乎。重點在於,獨立完成專案對我來說是質的轉變。
你絕無可能會做所有事(沒人能),你總會需要在網際網路上查詢資訊(人人如此)。不要追逐教程,那會絆住你的手腳。