Loading...

David 土木系畢業後在營造業工作,因對程式感興趣,決定轉職網頁開發工程師。早先他在 youtube、udemy 等平台自學,因感到缺少作業、社群與求職資源等因素而加入 AC 學習。他邊工作邊上課,也在萬元獎學金計畫支持與鼓勵下如期完課;並在畢業一個月後,就找到出版業軟體工程師的工作。

自我探索網頁世界

前後接觸程式語言大約有一年的時間。因為朋友的建議、與發現自己對這個領域頗有興趣,最後決心深耕。

看完一輪 YouTube 上的教學影片後,因為想更深入學習而找到 Udemy,較有系統的將整體概念學習一遍。在 Udemy 500 元就能買到各式各樣的課程,是個學習資源寶庫,但品質優劣不一。

此時開始接觸到更多工具,像 node.js、express、API、前端框架 ReactJS 等等。逐漸明白,使用工具其實不難,困難的是持續學習,和持續接觸新的技術的熱情。

有時 Job Description 上的一個條件,其實只是某個套件。多花幾個小時,就能實作出來;而多做一個 Side Project,就能上手,技能就學在自己手裡了。

一段時間後,我決心轉職網頁開發工程師,開始尋找正式、比較系統化的課程。

想轉職軟體工程師?3 分鐘小測驗,找到你的學習起點

作業與助教回饋中,突破學習瓶頸

在 Youtube、Udemy 上課後,發現我需要「作業」才能將聽課的內容,經由思考轉為實際執行。同時,也需要「社群」,要跟一群和自己一起跑馬拉松的夥伴一起學習。也因為目標轉職,所以更想更清楚知道「要學到什麼程度」。

我找到了 Alpha Camp (AC),這裡是我接觸程式語言後,第一個正式課程。

當時已經自學半年左右。從課綱、與上完能做出怎樣的成果作品,自我評估就從學期 2-2 開始插班上課 ( 也是為了省一點錢 )。

但開始上課後,其實頗感壓力與挑戰。那時還在全職工作,只有下班些許時間能上課與寫作業,真的很拚。

剛開始,真的很擔心跟不上進度。但實際跟著助教與教案開始執行後,發現很多問題經過運算思維與 Try & Error ,也都逐一突破了。直到完成最後一項自主作業時,不只是心中的大石頭放下,也確實地對自己說 “You can do it !”

怎麼善用環境幫自己更有效學習?助教回饋作業、社群共學為什麼那麼重要?

從實作、觀摩、刻意練習與自主學習中成長

學期 2-2 主要內容為大量練習 JS DOM 操作,熟習網頁前端運作;Bootstrap 運用; MVC 分離概念;使用 AC 提供的資料,進行初級的 API 串接。從大量練習切版與資料串接,跟著課綱進行網頁遊戲製作,也進而了解軟體工程的演進以及面貌。

其中印象最深刻的學習,有幾個部份。

不斷練習後就會變得熟悉:對於 DOM 的操作,之前只有知識上的學習,與照著線上教學影片跟著老師 coding 的經驗而已。後來因為不斷地實戰操作、演練很多次,到學期後半段時,操作到 DOM 的邏輯已經寫入我腦海中了。

觀摩同學作業、助教批改作業回饋與實作示範:第一週的 POS 機挑戰題,經過一番搏鬥完成後,看了助教的實作直播,才發現有很多細節可以進行修正。有些作業為了繳交時限,在某些判斷上用了容易出現 bug 的方式帶過。但在觀摩同學的作業時,發現有其他多種更好的解法,也發現自己的學習模式,有逐漸加入很多思考與優化。

刻意練習,有意識地使用不習慣的方式:因為第四週沒有需要自己發想的 coding 作業,所以在實作課程中若沒有使用「狀態管理」,就有可能沒機會在 2-2 結束前實際操作到。雖然當下沒有在時限內完成,但有實際操演到「狀態管理」,確實累積了一個經驗值。

養成自主學習的習慣:某些作業,助教與教案並未有太詳細的解說。有些功能的寫法解不開時,有嘗試使用 google 搜尋關鍵字,並找到幾個 array method,例如:array 的 some、every...等等。經過研究 MDN 文件後,順利在作業中使用相關的 method。

https://miro.medium.com/max/700/1*tOt_k8Wt-RGgHgXpJ2fB3Q.png
API 串接實作

專修前端,建立產品思維

學期 2-3 分為前、後端。考量到先前接觸的課程,後端內容學習較多,也有實作經驗;另一方面認為切版較需要大量練習與操作,因此我選擇前端作為主修。但不論選擇哪一端,都能觀看另一邊的課程。

原以為逐漸習慣 AC 課程、作業的步調,但在學期 2–3 再次被拉高難度。

學期 2-3 有許多進階切版訓練,RWD 網頁切版訓練; Display Grid 教學與實作;Webpack 打包工具;SCSS 預處理器,基礎後端 express 框架及 MongoDB 資料庫應用,初次使用 Heroku 進行專案雲端佈署...等等。

除此之外,學期 2-3 也讓我們開始訓練工程師該有的「產品觀念」。透過分析主流電商網頁差異、使用者同理心地圖等,引導我們不只會寫程式,也要能從使用者、PM 的角度看產品。

https://miro.medium.com/max/700/1*bbvnuNO-nDZQZseaYpbecA.png
Grid 切版訓練

為什麼工程師需要產品思維?軟體開發實境活動,演練一次就知道

學習前端框架與挑戰多人協作專案

因為預備與職場接軌,除了更困難的切版作業之外,學期三也在此時導入前端框架 Vue 的學習與實作。

整個學期的前六週,從 TodoMVC 開始理解 Vue 框架的基本語法使用 Vue 重製 2-2 的作業,在 Vue 框架中實作 API 串接;使用 Vue 框架製作功能完整的論壇網站,最後銜接 AC 課程的最後一哩路:Alphitter Project

成為業界搶手工程師,AC 軟體工程師養成課程新增 React 前端框架,雙框架建立你的高競爭力

除了產品觀念之外,也導入"敏捷式"與 Scrum 開發流程。也透過最後的畢業專題,實際執行 Spring 與看版 ( Trello App ),讓我們模擬業界開發流程。

整體開發時間雖然只有短短十天,卻集結了半年的學習歷程,感覺非常漫長。雖然是模擬開發,功能也相對其他社群軟體簡單,但多人協作的感覺與單獨寫作業差異很大,除了可以完成更複雜的功能之外,也訓練自己的專案分析、彼此觀摩程式碼與卡關時討論。

多人協作上,每次提交程式碼時,都深怕弄壞 Github 上的檔案。剛開始進行時,有一次的合併,讓我們兩個前端的程式碼都出現缺漏。當下立刻開始檢查、回憶自己寫了哪些東西,趕緊將缺漏的部分都補上。但經過多次的操作後,對於合併分支也越來越熟練。應該要改進的是,由於我跟另一位前端的 JavaScript 格式有些差異,導致每次有修到對方的檔案,都會出現很多 "修改處",若為未來開發團隊,相同語言的格式應要統一才對。

很感謝 Alpha Camp 給我們這樣協作的專案演練,過程中除了結交到喜歡寫程式的朋友之外,更是給了我們時間壓力,榨出我們的潛力。相信未來想起這段時光,仍然會覺得很有趣,也很有收穫!

https://miro.medium.com/max/700/1*zMQtdqmw5bt_5MACJLxHqQ.png
前端 To Do 看版

怎麼累積多人協作專案經驗?在專案中都在練習什麼?

不只學會網頁開發,更養成主動學習習慣

很幸運地,在完成學期三沒多久、當我還正在持續優化履歷和作品集時,就拿到出版業軟體工程師工作,展開工程師職涯的第一站。

在 AC 不只學到 web development,更是關於「學習」這件事。不論是否找到工作,相信主動尋找學習資源、主動與人協作 side project,都是提升自我實力的方式。

回想在 AC 的學習,我覺得最大的幫助有幾個:

  • 課程互動性很好:能觀摩同學作業、在社群跟同學討論、跟助教請教。互動非常多的學習環境,讓自己真的能學會
  • 累積開發協作經驗:在專案後,會有信心跟面試官說「我有經驗」了
  • 豐富的求職協助:有很多資源與活動,協助我們開始準備求職。我學會如何突顯自己、並呈現自己在協作專案中做了什麼
  • 技術演練:工作坊時在助教帶領下練習技術,幫助到我在面試時要在短時間內解技術題。若當下解不出來,也能清楚說出遇到什麼問題,有什麼想法

之後或許會回頭繼續學習資訊工程的基礎,或是再接觸更多網路工程的技術。期許自己能持續,刻意練習在這段時間學到的技能,不停止地寫入長期記憶並刻在腦中,同時擴充自己。

半年轉職軟體工程師,怎麼做學習計畫?