竹科工程師在 ALPHA Camp 找回寫程式的樂趣

大學資工系畢業依著本業去新竹找工作。至今過了三四年,從 RD 一路做到 AE,從原本開發 SDK 新功能,到不斷的解決客戶問題。有時候光是花在 email 的時間就是半天一天,實作的時間大幅度被降低,成長的是面對客戶的經驗,卻逐漸在技術與思考上感到停滯。與其停止進步,我想試試還能學習甚麼,於是,就加入了 ALPHA Camp 的學習行列。

(想學習進步?3分鐘小測驗,找到你的程式自學入口)

我是軟體工程師,我也擔心寫不出程式

最難的是第一步,開始學習!還記得學期一的校長說過:「與其一直詢問該怎麼學,學甚麼東西才好,帶著種種的疑問。最好的方式就是 Just Do It!」。做就對了,有了開始才知道自己喜不喜歡,想不想做。接下來,只需要 spend enough time 在學習的道路上。

經過八個禮拜的學習與奮戰,在歷經工作上一次出差與產品 MP (量產 mass production) 的夾擊下,我最後還能完成前端網頁開發「學期二:啟程」的課程!說真的,很感動!

一門課程多種滿足

幫我找回寫程式樂趣的課程設計

「學期二:啟程」是紮紮實實的硬功夫,HTML/CSS/JavaScript 穿插在不同禮拜的課程裡面,一個禮拜接著一個禮拜,一層一層將知識和技術慢慢累積。穿插的安排,不會讓我混亂,反而讓我對不同主題有更深一層的認識與複習。這對我來說是一大優點,若照著順序 ,可能 HTML/CSS 的用法已經忘了大半。作業的安排,也會同時穿插不同語言的撰寫,更加深了我的印象。

這學期,讓我最開心的是,終於能完成一些 project,將結果呈現在網頁上,還有達成互動的效果,這比起單純的靜態網頁,更讓人充滿成就感。不得不說,在這樣學習的過程中,讓我找回了寫程式的快樂

)CodePen 程式碼學期初期第三週的小作品 (

除了 coding 還建立思考能力

過往 coding,看到一個題目,就是埋頭苦寫,寫出個結果就好了。但在 ALPHA Camp 課程中,雖然每個作業都有提示,但常常卡住,看得懂題目,卻無從著手。這時候,只好先在網路上搜尋相關的資料,還有參考同學的作法,看完才會發現,原來可以這樣想,原來有這種做法。在這期間,也發現了自己不擅長思考的問題。

為了慢慢改善,在課程進行中,除了學習內容外,還會自己去爬文,瀏覽各個網站,找尋相關的資訊,多了解其他人的想法與實作方式,常常有意想不到的驚喜。我覺得在這個過程中,學習才會更快速更紮實。學會去思考,比單純實作還要重要。慢慢的在面對問題與作業,可以先去了解需求是甚麼,再細分成不同步驟完成,對程式的品質大有幫助。

在學習上,在學習平台 Lighthouse 上閱讀同學的作品與助教回饋,也對我有很大的幫助。有時候為了程式碼簡潔,寫得很簡單,得到助教回饋後發現,其實可讀性或維護性相對沒這麼好,我就能進一步去思考與改善。這是很重要的一點,在工作上,沒有最快,只有更快。常常寫出來的東西,這個產品能動,換到下個產品去就死當了,這都不是好的程式碼。在學習中,也讓我再一次思考何謂好的程式碼,並逐漸能在好與能用之間取的一個平衡。

每份作業都有提交區:能收到助教反饋也能觀摩其他同學的作品

業界分享打開我的眼界

這是 ALPHA Camp 課程最棒的一點!在幾個禮拜,校長會安排業界的前輩回來針對不同的主題演講與討論。用甚麼想法去思考職涯、如何學習與進步、該怎麼準備自己、面對問題的態度等等,很多實務面的經驗,是當學生接觸不到的。藉著這個機會打開了我的眼界與想法,也會進一步思考為何而做,為何而學。而這些才是改變與學習最根本的中心。

我覺得這是最重要的事情,弄清楚自己要的是甚麼,在未來的路上,才比較能走的安心與堅定。

在幾次分享中,印象最深刻的是以下兩段話

在走全端開發這條路,你必須思考「為什麼」,對自己而言什麼是最重要的,為何而做?

針對這個問題,我也還在思考,目前只是單純地想要學習,而沒有很完整的目的。

在任何領域的學習,很重要的一件事情:Yon need to spend enough time!

可能有人覺得這是廢話,但結果是不會騙人的。當聽到同學一個禮拜花了40個小時以上學習,並觀察他們的成果,我確實感覺到,付出的努力不會騙人。天下真的沒有白吃的午餐,想要變強,只有付出並有效的學習才有可能改變!

同時,也會反思自己是否付出了一樣的心力與專注力在學習上面,藉此鼓勵自己。

線上工作坊實踐 team work

這是一個很特別的教學模式,大多的課程並不會額外花費時間為學生上課,何況是帶著學生一步一步了解課程。

每個工作坊只有短短1個小半,助教講解占了大部分,再來就是跟著實作,到這裡都只是前菜。 接下來的 You Do 才是有趣的地方,每個人會被分到不同的小 team 裡面,開始針對問題來討論。

剛開始真的會有點怕生,畢竟大家都不太認識。慢慢的,每個人都願意提出自己的意見,有時候也可以當主導者,先說出自己的想法,接著引導其他人建議,一來一往是很有趣的互動。雖然只有短短十五分鐘合作,確實能讓人感覺到 team work 的雛型。短時間的限制,也可以刺激思考,一起努力在時間內完成!每次達標都有小小的成就感!

除了實作外,能聽到在業界的前輩助教們分享與解答,也是這個活動的一大福音。我並不是很會提問題的人,但在這個環境下,可以藉由助教的分享或是同學的提問,獲得更多的想法與知識,這些都是很寶貴的經驗。讓不擅問問題或害羞的同學,也能有個很好的學習經驗。真的是一個很棒的活動!

工作坊分為三大步驟,最可貴的是能夠實踐線上分組

挑戰與收穫

這兩個月,面對最大的挑戰是-時間。出差與產品 MP 的壓力,導致平常上班日的時間被強力的壓縮,晚間能專注在課程的時間上也相對變少,這是時間的壓力。再者,由於在科技業工作,白天在 coding,晚上在學 coding,這是一個有趣的狀況。好像整天都在寫程式,很愛寫程式的感覺。但在疲勞的工作後,有時候確實很難專注在課程上,並非不想上課,而是精神上沒有辦法配合,就會變成瀏覽而非紮實的學習。以上種種在課程的學習上都是很大的考驗。

成就感與社群的支持

在這個狀況下,從課程上獲得的成就感與同儕互動就是很大的激勵作用,看著自己能一步一步完成學習,獨自完成作業,雖然都是小小的 project 或 application,但每次完成,對自己都是一大步。畢竟,這是新的東西,我曾經不會的東西。而每個焦頭爛額的周末,最後都還有可看的成果,這是令人開心的,也是一直能學習下去的動力!

參加工作坊或業界分享,也常常被前輩或同儕激勵到,聽同學分享學習心得,就會有「哇!」的感想,原來大家是這樣學習,原來大家花了這麼多時間,原來學習的路上不是只有自己在奮鬥,這都是很棒的助力。這也是 ALPHA Camp 課程有趣的一環,你從來不會是一個人!(最有溫度的線上課程

這學期,依舊是收穫滿滿。前端技術的認識與深究,從只會刻一個靜態網頁,到能夠將過去 Ruby 上的作業,以 JavaScript 的方式呈現,增加了網頁的互動性,對我而言是一個很大的突破。這也是這門課的樂趣所在,原來網站竟是由這麼多不同的內容組合起來,JavaScript 程式的特別,也讓我大吃一驚,原來程式可以這樣寫?這對寫過程式的人來說,是令人困惑的,也同時讓人有趣的地方,非常特別。

專注與堅持

學期二不是「學期ㄧ:暖身」可以比擬的,一點鬆懈下來,就可能變成週末要備作業追著跑的慘況 (ALPHA Camp 獨創會追著你跑的進度制)。時間的安排與自制力可說是這學期一大學習重點。事情的優先順序與取捨,都讓我在這兩個月內好好地審視過,確實不容易。

但在這過程中,我更學會了專注與堅持。在有限的時間裡面專注,在課程落後或是時間不夠的情況下堅持學習,這對我在工作與生活上,都多有幫助與改善。回頭看這兩個月,會深深覺得,這生活也太過精實了吧!不過還是要偷偷說,我還時沒有達到校長所說的:”You must spend enough time”,而覺得小小的可惜,有點小浪費了這門好課。

學習與未來規劃

在這個學期中,我深深覺得花費在課程上的時間,是不太夠的。這也讓我在是否要接續上「學期三:核心」的課程,思考了好久。雖然有點可惜,不過還是決定先緩緩,希望能在前端開發的學習上花費更多的心思,在這個階段打下更紮實的基礎。看到這裡的同學,請不要隨便學習,否則我要被 AC 團隊追殺了。這門課是真的很棒的,希望大家都能花費的足夠的時間來學習。

希望在接下來,沒有課程的期間,我能思索出自己想做的事情,還有完成的作品,利用這兩個月的學習內容,實作出一些好玩的成品。努力向助教和同學們看齊!

感謝與推薦

我十分的感謝,AC 的教學團隊,安排了充實又不太困難的全端網路開發課程。課程中穿插的業界分享與工作坊,都是 ALPHA Camp 的一大優點,除了技術層面的學習,還有很多想法與思考模式的激盪,這真的是很棒的兩個月。謝謝你們還有一起打拼的同學們!一起加油~

ALPHA Camp 教的不只是死讀書,解問題。而是在過程中培養技術,思考,溝通等的能力。課程的教學方式與安排,讓有經驗的工程師如我,或是全心新學習轉職的人,都能得到相對應的學習。有實戰力而強大的助教群,真的能讓所有學生,能有實質的幫助。讓學習新東西,或是寫程式不再是讓人害怕的事情。

希望未來還可以回到 AC 的大家庭裡面繼續學習,參與各項有趣的活動。也祝福持續上課的同學們,一切順利 😀

(本文轉載自 ALPHA Camp 學員 Ming 的學習心得:學期一學期二

(不知從何開始?三分鐘選課指南,找到自學入口