實體課程才學得會寫程式?寫給半年前不相信線上課程會有效的自己

本文轉載自文組外文系畢業的Serena,他在ALPHA Camp 線上學寫程式,前端開發完課後的心得,有了深刻感觸:

「這絕對不是一個普通的線上課程」,這句話是想寫給去年10月堅持,必需要參與實體課程才會有動機、橫豎都不信線上課程會有學習動力、更不可能會完課的我看的。

我完課啦!

(AC全端開發課程已改版為三學期,從程式設計入門掌握網頁開發、到軟體工程師養成,本文提到的學期二是目前掌握網頁開發的一部份)

其實幫這篇文章想了好幾個副標題:「從前我在飯店上班,現在我在AC上課」、「以為我報名學程式,其實學的是人生」、「一個文組女生硬要學程式的掙扎求生記」…等XD

學程式緣起

一切從那個實體班開始…我從去年11月離開飯店後,砸了8萬5成為北科大推廣部的Java&Android人才培訓班第13期學生,詳情不在本篇討論範圍就不贅述,如果是想知道那邊學習心得的歡迎留言給我:)或等我5月畢業再寫。總之到了今年1月中,我和班上吊車尾婦女自救會成員們發現我們必須各自向外求生時,A找到hahow、B買了六角,我則在5天的試讀及向粉專的小編洽詢後選擇加入AC學期二的二月班,還記得是2/10開學。

學習過程

有別於其他線上課程繳費後會得到一堆影片,AC則是會給你滿滿的大平台,阿不我是說Lighthouse, 一個介面很美、字體很美、圖片很美、使用者友善的學習平台,嘗試用專業一點的話描述就是UIUX設計良好,不得不說這點對我的學習動機超級加分,試用時也是這點打動我把卡刷下去。

接下來是一個瀑布式以每次工作坊為里程碑記錄我的課程參與和takeaway。

2/12 開學座談會

印象超級深刻是針對同學的提問Ellen回答時舉了個例子,用我的話理解大概是:

「你學英文的時候背了很多單字但都不寫作文,別人怎麼知道你英文好不好?」

當頭棒喝大概就是這種感覺,對英文系出生的我真的是一個很能共鳴的比喻。那時過去三個月我一直執著在紮好馬步練基本功,看基本的觀念寫了厚厚一堆Notion,頂多跟著老師寫例題,不曾寫過自己的程式碼。

2/20 Week2 Q&A

這次是跟著Wesley助教一起拆解摸彩的作業。這是我第一次參加工作坊,對整個模式、工具都還很陌生,覺得喔~原來工作坊就是一個技術很厲害的人搭配一個技術也有點厲害,還很會總結、修飾成學生聽得懂的話的人一起主持的活動(我其實到第三週Yunju來我ORID下面留言的時候都還不知道學習教練是什麼,Yunju sorry XD)。記得一起玩kahoot很刺激,學到用typeOf()和object.prototype.tostring.call()查型別可能會有不一樣結果,第一次認識IIFE立即表達函式,沒想到後面那麼常見面!

2/27 DOM 基本元素上手工作坊

記得這次是Ellen先帶了DOM的相關觀念,然後和Wells助教跟同學一起OOXX,Yunju還會臨時cue人講不一樣找元素的方法即時和同學進行攻防,讓人超緊張。這次的工作坊讓我對DOM元素之間的親屬關係和 querySelector的應用印象深刻,也第一次覺得哇原來學程式可以這麼好玩!

搞懂DOM事件操作,學會JavaScript前端開發

3/5 打造 POS 機工作坊

這次是跟著小字助教一起做一台點餐機,參加前覺得超酷我竟然要來寫一個有功能的東西了!結果參加途中就因為對html基本工不熟,版面一直跑掉害我分心去修版面,後面就跟不上了。這是我第一次學到find()、map()這樣比較高級的陣列方法(之前用個forEach()就覺得高級到不行)。還有對助教透過螢幕滲出來的教學熱情印象很深刻,感覺就是要教到你會!看助教和教練驚險刺激的live解bug,練習把東西都印出來也是很棒的學習過程。

3/12 CODING+職涯探索系列:談產品管理

這天是Yenting主持的工作坊,來賓是目前在擔任產品經理的AC實戰營的校友Alvin學長。我第一次搞懂產品經理和專案經理到底哪裡不一樣。這次活動超級接地氣直接打開線上職缺分享讓人很有畫面,也舉了定位不明的不良開缺例子。

我本來以為來學程式的人都是想要轉職,沒想到有將近一半是有其他發展,配合學長個人體悟和歷程(做了3個月工程師就放棄,最後找到產品經理的角色充分發揮所長),開啟我對職涯更寬廣的想像。

還有我覺得Yenting主持的超棒,在前面很明確說出對參加者的期待,讓聽的人很明確知道要做什麼,最後也因此更有收穫。我把這個學習帶到學校專題的會議中,讓組員清楚知道我對他們的期待,收穫很不錯的效果。

延伸閱讀:從人資到 Gogovan 產品經理 PM 的 Alvin

3/17 CODING+職涯探索系列:UIUX 產品設計

這天是Red主持的工作坊,邀請到經歷豐富(本科技、台灣外商、海外工作、黑客松參賽等)很豐富的Rita學姐。印象最深刻是她說她一行安卓都不會寫就了接了一個案答應一個禮拜後給交付。整個分享過程感受到她是很主動積極的人,雖然海外工作機會看似是自己找上她,但相信這些機緣都是積累的結果。當下的她也還在找工作,但她期許自己下一步做個更impactful的人,讓自己發光發熱、讓更多人認識自己,讓我學習許多。

延伸閱讀:從創業接案到「旋轉拍賣」產品設計師的 Rita

3/19 事件與流程設計工作坊

前一個週日寫完ORID後,收到學習教練發出來的通知,Yunju的通知每次都寫的超級詳細,分等級告訴你要完成哪些事前準備,詳細閱讀了以後就乖乖照著指示做了,這次是要分析一個計時器的構造和技術。沒想到後面可能是太早交,竟然被Ellen通知會放入討論內容,有點開心也有點緊張。

這次上課前有同學Marc分享心得,有種啊~原來你我都是這樣痛過來的啊~被安慰到。這次的核心語法是setInterval(),這是第一次上PJ大大的課,跟Ellen兩個邏輯超級清晰的人連袂講解下來,第一次覺得工作坊可以聽得這麼懂。發現班上同學有些人下課後就立刻練習完成自己的計時器很值得我學習,我沒有把握機會recap到很可惜,之後有機會會想完成這個小作品。

3/26 TodoList 模組化程式碼

這次是跟著Wells助教用MVC架構的方式重寫todo list,課程設計很棒、講解很棒,可惜我個人準備不足實力不佳的關係,後續的心得只有覺得助教打扣很帥、公司電話鈴聲很響而已XD接下來兩週沒有進度要找個時間複習這段!

4/9 微型專案設計與思考工作坊

這學期的大魔王應該就是踩地雷作業了,我大概就是卡在魔王關前的馬利歐,用盡HP一直被退回上一關的狀態。這次的工作坊解救我於苦海,因為我上完絕對暫時放棄不做了XD Ellen和 PJ的循循善誘又再一次打到我,讓我發現自己在寫程式時仍然執著於從使用者角度出發,因學習從較宏觀的角度處理資料再產生畫面。雖然發現自己錯的一蹋糊塗但很開心有堅持參加到學期末最後一場,也很開心有人跟我分享自己哪裡想錯了,才有進步或調整的機會!

講了一整個學期末的運算思維不意外又出現在這場工作坊中,2個月前聽到這個詞我只在筆記本寫下breakdown一個英文單字註解就沒了。過了2個月雖然不敢說自己能做到多少,但感謝AC在八週的學習之旅中潛移默化,我似乎比較有畫面知道是怎麼進行的了!

Lighthouse上的學習都記錄在ORID裡了,就想趁這個機會寫一些之前沒有機會記載的歷程。

我的學習風格是很喜歡與人交流的那種,參加這些線上工作坊一定程度賦予我持續學習的動機,所以這絕對不是一個普通的線上課程,這句話是想寫給去年10月,堅持必需要參與實體課程才會有動機、橫豎都不信線上課程會有學習動力、更不可能會完課的我看的。

【轉職的初衷】挑戰

Before it’s too late, let’s start to learn something new and benefits the world better. -我本人 (2019.11.13)

1.想要時時更新的腦袋。
2.想要發展優異的職涯。
3.想對世界更有幫助。

因為過去對語言學習還算蠻有心得,一開始真的天真地跟讀外文系的朋友討論說:學程式語言應該會跟學另外一門外語差不多吧?
半年下來的心得是 差很多!電腦聽不懂人話!!!QAQ

【向過去的自己學習】筆記的藝術

因為不是有興趣才開始學習的,一開始打開任何教材都很想直接關起來。後來試著回想學生時期的成功經驗,發現作筆記是我學習任何新東西的起手式,對我把新的知識轉化成自已的東西很有幫助。一開始試過手寫,寫五面就崩潰了,畫完<div></div>影片中的人就不知道跑到哪裡去了。後來輾轉認識Notion真是有如神助,超級推薦使用。(在此誠摯感謝貢獻我教育帳號的師大語言所第一把交椅陳韋伶同學)

寫筆記在我的學習過程扮演很重要角色,看不懂的程式碼也會一行一行註解到自己看得懂為止,推薦給沒天分硬要學的人XD。感謝寫筆記帶來的成就感和安定感,平撫我浮躁的心。但凡事過猶不及都不足取,過度的筆記會阻礙學習進度、過度的註解會造成他人閱讀時的干擾。

Young students campus helps friend catching up and learning. Premium Photo

【現在的自己】實作,還是實作

現在的我其實還是在不斷試驗、總結經驗、改善的循環過程。關於時間比例的拿捏,我參考了第一週學習教練和我分享的學長心得,裡面提到第一次先看懂70%就放過自己先進行下去,之後有時間再回頭複習&筆記把理解度拉高到8成,這學期實行下來我覺得很不錯,現在的我感受到的是重點要放在實作!比起花時間整理精美筆記,不如邊做邊把重複遇到的問題、重複查詢的部分整理會比較有效,畢竟我沒有要出書。

不過,最近發現一個很需要紙筆的環節,就是解題之前先練習拆解問題,也就是落實教材裡面一直強調的「運算思維」,如果練習用我自己的話說一遍:

  1. 拆解:每個問題都可以無限往下拆解成更小的問題,要到多小呢?就是到「拆到自己可以處理的程度」。
  2. 辨識規律:我通常死在這一步XD”。「把發現的現象分類」是我目前對這個階段的理解。
  3. 找出公式:開始學程式以後就蠻常聽到「抽象化」,這件事真的蠻抽象的。「把像的地方、反覆做的地方抽出來撰寫」是我目前的理解。
  4. 發展指令解決問題:寫程式的最終目的無非是要解決問題。我的理解是要統整上面做出來的東西給他們一個「合理的流程安排」。

(建立電腦溝通運算思維,零基礎從程式設計入門開始)

遇到難題的時候,我本能的反應會想看解答,不論是上網查或是觀摩同學的。現在我學習到不是觀摩不可以,模仿本身是初學者發展歷程中正常、重要的一環(還記得我們可愛的教練說當你能夠仿作時自己也算理解了),但躁進的話會讓我失去發展思考能力的機會,所以會鼓勵自己在這部分多練習先暫停一下、寫下來,來個頭腦體操再前進!

【給未來的自己】回到原點

要先幫助自己,而後幫助他人。-我本人 (2020.4.13)

我發現一直以來我是個對自己沒有特別野心的人,但對幫助別人很有野心。出社會的那一刻起就覺得,哇終於輪到我可以好好貢獻社會、賺錢回饋父母了,如我的初衷所言總是想著要benefit other而向前奔跑。學期結束後停下來一想,總是急著想幫別人,那我有幫助自己嗎?我有在幫自己找喜歡的位子嗎?我有傾聽來自內心再清楚不過的inner calling嗎?好像沒有。

「幫助人們發展有意義與有價值的職涯」是 ALPHA Camp 的使命,謝謝這句話八週中一直在我週邊飄盪,讓我開始思考以上問題。下一步,轉職成工程師會是對我有價值和意義的職涯嗎?如果是X,我要如何對的起這半年丟出的10萬多新台幣XD”?

【結語】學習是一種專業

開始學程式的時候,我一直覺得物理性質來說這件事應該不會太難,障礙應該會在於面對挑戰時的情緒處理,那時候我自認心理素質、抗壓性還不錯,頭腦應該也還OK,三個月後發現自己是不知道方法在埋頭苦幹。學程式自學、買書、買課程學絕對都可以,但八週下來我發現AC對我最有幫助的是給我學習的心法!

AC把學習當成很專業的事情來看待、經營,營造友善的社群、專業又效率超高的助教和教練,及不斷進化的課程設計等,每個元素都推了我一把,引導我把學習障礙的水位降低一階。

所以很感謝,感謝這個階段和我互動、幫助過我的每個人,也謝謝沒有退卻。或許我還無法喜歡上寫程式,但我可以確定自己很喜歡學習,而且我體會到學習有方法、有技術、有專業,所以創造了價值!

(本文轉載自ALPHA Camp學期二學生Serena的部落格

三分鐘小測驗,找到自己學習全端開發的入口