文組生 Kelly 如何有效學程式?她在程式設計入門課程的起步與收穫

文組生的 Kelly,來 AC 前曾在學校通識課、youtube 與 Udemy 學過程式。她在過程中學到不少東西,但也發現因缺乏進度督促與有效練習,成效很有限。後來她來到 AC,透過學習設計與引導,開始穩定起步與紮實基礎,並目標轉職軟體工程師。她分享從中獲得的學習幫助與建立的技能,也推薦需要進度鞭策、想要彈性時間與地點學習、想感受適不適合寫程式的人,都可以來嘗試 AC 的「學期一:程式設計入門」

為何要學寫程式?

程式語言是世界的共通語言

不管你在美國或是日本,python 語法永遠都會是 python 語法,javascript 也不會因為你在法國就變成了 bonjourscript。因此,當你學會了程式語言技能,你就獲得了在全世界走跳的門票。身為文組的我,英文能力已經不是問題,若能學習一個全世界通用的技能,那麼國界對我來說將不再是阻礙。

比其他產業更合理的薪資待遇

儘管談論薪資有點市儈,但根據調查,軟體工程師的薪資起跑點確實是較高的,有時候 junior 的薪資甚至會高過於其他產業資深人員的薪資。此外,業界對於軟體工程師的需求一直都很高,隨著更多產業的轉型,未來程式能力仍會是十分搶手的技能。

軟體工程師薪水多高?來看看 2022 年的薪資行情

永遠不怕沒有東西可以學、開放學習的社群

很多職業在做到某個程度之後,便只是日復一日重複同樣的事情。然而軟體產業變化速度非常快,兩三年之間技術可能完全改朝換代,若沒有持續學習的意願,很快便會被時代淘汰。

對於喜歡學習各式各樣的事物的我來說,一直有新東西可以學是一件非常正面的事。另外讓我喜歡的一點是,軟體界一直有都很活躍的社群能量,open source projects、Hackathon 之類的活動都可以讓你在精進技術的同時,還認識來自四面八方的人們。

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

課程有哪些設計,幫助我有效學習?

AC 身為純線上 bootcamp,完全不會讓你有獨自一人孤軍奮鬥的感覺。除了在汪洋中點起盞盞明燈的助教們之外,還有一大群同學與你一起並肩前進。

近幾年台灣的軟體線上課程、實體 bootcamp 持續蓬勃發展,選擇五花八門。在經過多方比較後,我決定試試 AC 的課程,以下簡述我選擇的理由。

進度制、大量實作與助教 24 小時內回饋

有了前面自學的經驗後,我首先考慮的點,就是如何有效改善自己的學習效率。而 AC 的進度制剛好符合我的需求。

例如,學期一分為三週,在正式開始上課之後,內容必須一週週解鎖,無法一開始就狂飆車看完三週的內容。這樣的設計可以保證每週內容都確實吸收後,再進入下一週的學習

同時,AC 也為進度較快的同學,貼心準備了「超前進度申請」的機制。只要完成某些條件,就能提早修習下一週的內容。(但最多只能提前一週,不能飆車飆太多XD)

此外,AC 的課程設計了大量的實作練習。在講解過概念之後,通常都會配合一兩個小習題或作業,去驗收學生對概念的吸收程度。實作在學習程式的過程中是很關鍵的環節,畢竟只看影片就想學會寫程式,就像在旁邊看別人滑板就覺得自己也會滑了一樣。

當然,花時間寫作業卻沒有人批改、給予回饋的話,也無法達到最佳的學習效果。在這方面,AC 備有強大的助教大軍(?),在學生繳交作業後 24 小時內就會進行批改。而助教的批改並非單純的合格、不合格制式化答案,他們會依據學生的答題狀況給予回饋,提出做得好、或需要改善的地方。例如,coding style 的細節也會注意到,幫助學生在答題的過程中建立實務上的好習慣。

https://miro.medium.com/max/1400/0*dyKvxM_rSF10-tNY.png
AC 助教超級用心的回饋

純線上教學、規劃完善的教學平台、作業觀摩

坊間的軟體 bootcamp 很多都仍以實體為主,但個人因為未來規劃因素,所以必須選擇一個可以在線上進行的 bootcamp,而 AC 便是首選。

不過,雖然課程是純線上進行,但規劃完善的教學平台,完全不會讓你有繳了錢、看完影片就被放生的感覺。

除了包含文字與影音的教材內容之外,作業繳交、批改、留言討論都是在同一套系統內進行。當作業卡關的時候,可以透過觀摩的方式看看同學是如何解題的;也可以在完成作業之後,從同學的創意中得到啟發,並激勵自己下次一定要做得更好。

最後,系統會記錄每位同學的發文次數,最常發文的同學還會出現在排行榜中。這樣的正向回饋機制,讓同學自然而然養成與其他人線上互動的習慣。

https://miro.medium.com/max/1400/0*hosXMgQxDQ7vw5HI.png
在學習系統裡,可以觀摩其他同學的作業

討論熱絡的社群、實作工作坊、技術或職涯講座

另一個對於線上 bootcamp 可能產生的疑慮就是,無法累積社群資源、認識學長姐或其他班級的同學。然而,AC 有一個很活躍的 Discord 社群,幾乎每天都會有學長姊、甚至是已畢業的學員在裡面分享學習進度、回答其他人的問題、提供求職與職缺資訊等等

在一般的課程之外,AC 還有不定期的線上工作坊 ( 例如學期一有「前端基礎工作坊」)。助教會帶領學員一起在線上進行實作,實作完可以即時向助教提問、互動。並且,工作坊結束後,還有回家作業,可以進一步練習。

https://miro.medium.com/max/1400/0*6fsZ2Th_AcC1bYQK.png
學期一前端基礎工作坊

直播講座的部分,AC 會邀請已經成為資深工程師的校友,或是業界有名的講者來分享關於科技業工作的方方面面。例如:國外企業求職經驗、區塊鏈技術在不同產業的應用等等。

講座都是開放給所有人報名的。因此,不管是還在觀望中的路人,或是已經在路上的轉職者,都能在講座中,有所收穫。

程式設計入門課程,怎麼幫助你開始有效學習程式?

我在課程中,學到了什麼?

學期一內容是為「完全沒有任何程式基礎」的人所設計。即便我在上課前已經有接觸過程式,在這三週的學習過程中,我仍然有學到不少東西,並且真正覺得自己有把基礎重新打好。

Week 1:電腦與程式語言基礎

了解程式語言卻不了解電腦本身,絕對是件違背常理的事。

因此在第一週,課程從電腦開始講起,了解為何我們需要程式語言來和電腦溝通,並嘗試用演算法與虛擬碼,來模擬電腦的思維模式。這些都是學習程式語言路上很核心的能力。

https://miro.medium.com/max/1400/0*AHcaR87BS9BjNClg.png
運算思維四步驟

Week 2:程式碼實作和網頁介面基礎

在初步了解程式基礎後,便要學習如何運用程式來解決問題。

以「如何有效地猜中數字?」這個問題為例,在拆解問題之後,要先試著把設計出的步驟轉化為清楚的流程圖(如下圖所示)和虛擬碼,最後才是將程式碼實做出來。

https://miro.medium.com/max/1400/0*qWwQ2BaGJSaGTdfT.png
猜數字流程圖

這週的後半,則是進入網頁三劍客的 html 與 css。畢竟若沒有視覺呈現,網頁就不網頁了啊!然而,這兩者的概念並不難、也很直覺,卻都易學難精。必須要透過大量的觀摩、實作,來磨練技巧。

Week 3:網頁切版實戰

如前述,html 和 css 如果沒有透過大量的實作練習,是不會進步的。因此,這週的內容,就是跟著教練一步步實作出一個網頁,並在過程當中很自然地吸收重要的觀念和技巧。

教練手把手,帶你一起完成的個人履歷頁面

經過教練的指導後,就要試著活用過程中學習到的技巧啦!AC 為此安排了一個小作業:我們必須做出與設計圖一樣的畫面。當然,很多人一看到設計稿時腦袋瞬間變得一片空白。因此,作業要求學員從 wireframe 著手,先分析完頁面的架構後,再進行 html 和 css 的實作。

https://miro.medium.com/max/1400/0*Vo_bwyCBZP7RlVK0.png
依據設計稿畫出的wireframe

英雄頁面實作成果

前面有提到,學期一有一個「前端基礎工作坊」,而工作坊後的回家作業,就是依據規格、實做出小卡,也可以加入自己的創意。以下便是我絞盡腦汁,翻遍 youtube 和 google 之後做出的成品XD (後來還被選為學習週報的範例,好害羞啊!)

在查找資料、思考解方並努力實作出腦海中理想畫面的過程中,我確實獲得了滿滿的成就感。

前端基礎工作坊會後挑戰

學期的末尾,學員可以自由選擇是否參加期末考來檢核自己的學習成果。已完成前幾週指標作業的學員並不強制參加,但在時間允許的情況之下,非常建議完成期末考的所有題目,因為你可能早就已經忘記最前面學過的內容

師父領進門、修行在個人。想不想要紮實地學好所有的內容,只有你自己可以決定。

程式設計入門,適合怎樣的人?

至於到底,學期一到底推薦適合什麼樣的人來嘗試呢?我想有三個:

需要明確進度、作業鞭策的人

迷失在茫茫的教學影片輪迴中,卻不知道到底有沒有學到東西?你需要的是明確的課程進度與規律的學習作息,在AC,每週的進度、作業都事先安排好了,絕對不會再有無所適從的感覺。

時間地點上有限制,無法上實體課的人

AC 是純線上 bootcamp,所有的課程、工作坊、講座都是在線上進行。無論身在地球的何處,只要連上網路就可以開始學習。此外,學員中有很多人是在職進修、轉職,AC 沒有固定的上課時間,因此便能利用下班的時間學習。

白天要上班、年紀太大?真的可以學好程式嗎?來看看 Wei 怎麼在 30 歲時邊工作邊進修,成功轉職後端工程師?

不知道自己是否對寫程式有興趣的人

學期一的內容是為完全沒有接觸過程式的人所設計,儘管一開始可能需要花點時間適應,但在助教的引導和社群的幫助之下,小白們肯定能走完這趟新手村之旅。當然,如果已經有點基礎,也還是能透過複習與實作去檢視自己的基礎究竟紮實與否。

走完這三週的學習,可以肯定的是,我將要繼續踏上成為工程師的旅途。也謝謝 AC 幫我重新打好基礎、下定決心。儘管未來的修練還很漫長,但我願意接受所有迎面而來的挑戰!

本文轉載自 Kelly 的部落格