學了程式然後呢?啟動 Coding Project

Miao Ling Tsai
Aiworks
Published in
7 min readDec 1, 2021
Photo by Nicole Wolf on Unsplash

本文希望透過介紹 Coding Projects 和啟動專案的步驟,幫助更多程式初學者或已經學習程式一段時間,但不知道該如何推進到下個階段的人。文末也將提供參考連結,作為延伸學習的方向。

什麼是 coding project?

coding projects 是學習程式和軟體開發的眾多方式之一,是將學到的知識落實到特定目的的應用,常見的 coding projects 像是打造響應式網站、用 JavaScript 寫一個待辦清單(To-do List)等等。有些人認為只有經驗豐富的工程師才能完成專案,事實並非如此。專案的種類眾多,無論你的 coding 能力如何,都能找到合適的 coding project 來練習與挑戰。

為什麼需要 coding project?

簡單來說,完成一個專案對於學習程式設計的人有三個顯著的好處:

  1. 練習實作:上課和練習一些題目很好,但如果一直透過單一的方式學習,久了會變得很無聊。coding project 可以讓你跳脫書本上的理論知識,以產品導向的方式練習寫程式。而且,從無到有創作出一個作品是很有趣的。
  2. 體驗產品開發的生命週期:多數程式學習課程是測試你根據提示寫 code 的能力。然而,寫 code 只是軟體開發過程中的一個步驟。coding project 能讓你體驗到專案開發中從初始概念到實際完成的所有階段。
  3. 突顯你的履歷: coding project 能向公司展示你的技能,因為完成專案需要具備時間管理和故障排除的能力,還有生活經驗,甚至更多方面的投入。你可以用已完成的 coding project 來證明你擁有這些特質,並讓自己從眾多人才中脫穎而出。

另外,如果你對特定公司或領域有興趣,就可以選擇進行相關的 coding project 。例如,數據追蹤專案能幫助你爭取數據分析師的職位,而不是 UI 設計師的工作。

什麼時候需要開始 coding project?

對於初學者而言,先透過線上課程手把手教學,了解程式語言的語法及特性,在程式對有基礎的了解後,可以從練習簡單的 coding project 入手,慢慢過渡到進階的練習。

怎麼安排第一個 coding project?

步驟 1. 決定你的 coding project 主題

如果你 Google「coding project」會出現很多適合不同語言和不同能力的提案,你可以選擇喜歡的主題,一開始如果沒有想法,可以從自己喜歡的 App 或網站中尋找靈感,或是選一個「能加強多重技能」的專案(類似雙拼或是鴛鴦火鍋的概念)。例如,你想變得更有條理,就可以做一個行事曆安排或時間管理 App。這樣 coding project 會讓你躍躍欲試,並幫助你同時精進這兩種能力。

如果你無法決定要做哪一個主題,那就想想經常困擾你的問題。然後,設計一些有助於解決問題的東西。例如,你想在眾多影音串流平台中,用最優惠的價格看喜歡電影,就可以製作一個網路爬蟲,從串流媒體網站上掃描每部電影的價格。

想讓你的轉職履歷令人眼睛一亮嗎?那就確保你的作品和感興趣的職缺有關,這些專案對建立你的專業能力很有幫助。另外在這個階段,不必太過擔心完成專案的方法和工具,只要停留在設想的階段就行了。

然後請選擇你有趣的主題!因為你會在這個專案投入很多時間,必須確保選擇了讓自己興奮和快樂的題目,請不要害怕跳過別人常做的專案主題,如果你對專案主題已有具體的想法,就放手去做吧!你的想法將反映出你的獨特和價值。

步驟 2. 列出類似的專案清單

一旦你有了自己的想法,就去找那些做過類似 coding project 的人。許多開發者會在網路上(特別是在開源社群)分享他們的專案,相信你會找到很多有用的參考資料。

接著列出一個清單,並附上每個類似專案的連結,看看他們遇到了什麼問題,以及他們如何解決這些問題。你可以利用這些資源來預測將來可能會遇到的問題,也可以把他們的解決方案當作一個起點。然後再把有對這些專案回饋的論壇、網站也貼到你的清單。

你也可以將 coding project 進度分享出去,並看看其他開發者對你的進展有什麼建議。許多線上社群都很希望幫助像你這樣認真的開發者,畢竟大家都是這樣走過來的。

如果你發現有人完成了跟你類似的專案,試著聯絡他們,讓他們成為你的 Mentor,Mentor 制度在開發者社群很常見。他們可以給你廣泛的建議,引導你找到自己的解決方案,給你工具或技術方面的提示,並讓你對完成專案的期限更有責任感。

設計對白:你專案做到哪了? (photo created by tirachardzwww.freepik.com)

步驟 3. 列出所有功能

接下來,你要打好草稿,列出你的應用程式或軟體將具備的所有功能,包含基本和額外的功能。假設你要做一個有帳戶的網站,你會需要登入功能、設定和更改密碼的方法,而額外功能就可能是新增個人照片。

一旦有了一個完整的功能清單,就把它們分成基本功能和非基本功能,以確定優先順序,當開發時,確保自己從最基本的重要功能開始。當我們完成所有的基本功能,一個大略的架構就出現了。

接著列出所有會參與你專案的對象,查看每一項功能,列出這些對象會經歷的使用者情境,再逐步設計出使用者流程及細節,接著進行實作。

步驟 4. 制定時程表

最後一步是設下完成每個功能的期限。首先是最基本的功能,然後是跟它有關的功能,以此類推。最後,會得到一個所有基本功能的時間表。如果你打算做非必要的功能,記得在排完所有基本功能的期限後再把它們加進去。

基於每個功能的複雜性,要確保這些期限是可以達成,但不過於寬裕的。為每個階段設定期限非常重要,這樣就可以確保自己在對的開發時程上,並在一個可管理的時間內劃分工作。

把它們記在日曆上並設定提醒,來提高你的責任感。另外,每週都要安排一個固定的專案工作時間,你會發現,如果把它變成一個習慣,就會更容易達成目標。

時間表也將確保你知道接下來要做什麼功能,如果有時間做 coding project ,就可以直接按表操課,不用再花時間考慮。

coding project 線上資源參考

想培養解決問題的能力?啟動第一個 coding project 吧!

對於初學者而言,投入 coding project 是透過大量實作練習應用自己所學語法的方式。過程中,為了能做出想要的功能或是頁面,需要從大量的資源中找出所需要的語法。

在用這些語法撰寫出初版後,通常不會如所願的正常運作,常常會遇到從未見過的 Bug 或 Error,這些問題通常無法第一時間得知答案,需要抽絲剝繭了解錯誤,逐步找出出錯的地方將其修復。透過這樣反覆實作及解決問題的過程,逐步建立對於該程式語言的了解,以及更重要的——解決問題的能力。也就是,當面對一個陌生需求或是錯誤,如何逐步將問題縮小、尋找資源,進而完成目標。

最後要鼓勵大家的是,進行 coding project 時,遇到充滿挫折的撞牆期是很正常的,以創辦 The Odin Project 、並撰寫《Why Learning to Code is So Damn Hard》的 Erik Trautman 提到的四個階段來形容,就像「站在混亂的懸崖邊,不知道如何提出正確的問題」以及「在絕望的沙漠中原地繞圈,感到漫長而孤獨」的第二與第三階段。

然而這都只是過程,在你之前已經有許多人熬過這艱辛的旅程,現在的你擁有絕佳的資源,也絕對可以透過妥善的計畫和熱烈友善的技術社群繼續前進。

AppWorks School Batch #16 免費培訓課程即將開放申請,歡迎填寫開課通知表單,第一時間通知你 >> https://bit.ly/3d6QOpL

感謝 AppWorks School 的 Shirney 、Ashley 以及 Carolyn 協助共同編輯。

本文部分段落編譯並改寫自《How to plan a coding project in 8 easy steps

--

--