Loading...

與 ALPHA camp 在程式中邂逅,直到高歌離席。

學習寫 Code 是為了什麼?

伴隨著 AC 平台口號 outcome first,以轉職為軟體工程師為目標導向,我加入 AC 學習寫程式。回首過往,有如母親身懷六甲至嬰兒呱呱落地。10 個多月的學習旅程,用這篇文章來為自己檢索腳印與汗水的蹤跡。

過去總有人問到:「你在網路平台,轉職學習寫程式,究竟是為了什麼呢?」在學習之前,我可能會很爽朗及帶點傲氣回答:「因為我要拿高薪,我不太在意為什麼。」然而你如果是為了錢,那其他或者是現有的職業做不到嘛?轉職又是為了什麼?類似更多無限打臉的問題迎擊,讓我原本滿腔熱血的銳氣,漸漸的消失在問題海中……。或許這些問題也沒所謂的最佳答案。就跟職涯道路上也永遠沒有準確定位,然而寫程式抑是如此。因此我告訴自己這個問題可以變相思考,並且用另一種描述,讓問題中給出一個答案:

如果學寫程式是我一生中可以翻身的機會?那我就要用盡全力!不僅要用盡全力,之後勢必要發揮影響力。

以上雞湯文字希望能暫且抓住一些眼球。接下來,我會來細數更多如何在 AC 裡探索程式。

soure:  iStock

學期一:培養自學能力

我想大家都同意,這是個資訊爆炸的時代,每一天都湧出正常人根本負荷不了的龐大且混雜的資訊量。怎麼從這些爆炸多的資訊中,將你有興趣的東西篩選出來,在腦袋中分門別類,有系統有組織地過濾與建立知識點、線、面。從 data 到 information 到 knowledge base,也是需要對的方式、工具與大量練習,這是有效學習、快速學習的最基礎運作單位。

大家都知道學習的重要性,但又不由自主發懶。沒有方向跟目標,自然只能漂流。AC 提供的平台不僅系統化,也整合龐大漫無邊際的程式知識。從初階學期一理解運算思維,與嘗試切版理解網頁基礎架構;搭配短期三週班級進度制,幫助習慣性怠惰的我建立自學的框架、培養程式語感,並有限度地月刊一篇 blog 文章。

也在這接近一個月的時間,開始去感受新的資訊。這感受新資訊的過程會有無數的衝擊,我也告訴自己,不管有沒有後續動作,可以讓我有方向且有目標的去篩選出我感興趣的資訊。

3 週讓零基礎者上手寫程式

學期二上半場:大量 input 與 output 的無限循環

事實上大多數的人,只有在要換工作整理履歷、面試、或自我介紹時,才會去檢視自己會哪些東西,有哪些技能。這就像冷凍庫裡面放著過期兩年的食品一樣,放在那邊是不會發揮任何效益。

但在 AC 學習,透過課程設計,能防止這樣的情況發生。來到學期二、為期12週的課程裡,在大量 input 與 output 的無限循環中,我將 input 的新資訊,與既有的知識建立連結。

此時,有效的筆記撰寫就顯得格外的重要。透過一篇篇分門別類好的知識收藏,有方向性地篩選與蒐集相關資訊。在進行整理並建立知識關聯時,會讓我重新檢視自己的知識。一旦 connect 建立起來,腦袋裡面那份知識就像 cache 被 hit 後重新計時一樣,新舊知識將在腦袋中調高權重。

有了大量的 input 後,我是如何做到更多 output?有個觀念我到近期才明白,什麼事情最可怕?抱著錯誤的觀念而不自知,而且一直在錯誤的基底下維持下去。要命的是,沒人跟你講真話,或是沒人有機會跟你說真話。就像你褲子拉鍊沒拉,在鬧區溜了內褲一整天而不自知,大家都在笑你,卻沒人告訴你。即使已經從內隱狀態,透過外顯來內化知識,你「覺得」你已經會了、懂了某些東西,但等等,你有可能是「自以為會了」、「自以為懂了」的情況。

12 週掌握網頁開發:建立前後端 web app 開發能力,依職涯目標選擇前、後端實務進修

社群的力量:獲取回饋,突破盲點!

舉個例子:學期二時期,適逢 AC 草創 slack 群組。當時社群媒體都是學長姊,而我做了個大膽的嘗試,我將課程中學習到的知識精華筆記與個人想法,分享在 Slack 群組當中;同時,也邀請群友們閱讀指教。在這段過程,學長姊們給予無數正面的回應與可能的思考誤區。因此,這就是我有了大量的 input 後,如何做到更多 output。我認為,就是利用社群的力量!將個人學習筆記、blog 文章分享到適當的社群或社交媒體上,盡可能取得回饋,過濾無用的,吸取有用的。

每個人都不是天生下來就會所有的東西,每個人都有菜過的過去。路過仙人的指點,有時勝過自己閉門深造十載的效果。當你與社群有良好的互動時,往往就是在塑造你個人品牌的形象,往往你也會從這些互動中去結識更多的人脈。你的文章是對的、好的、有價值的,就可以造福更多人,這就是持續點滴累積你的影響力。你的文章有不對的,不夠深入的,表達不清楚的,別人給你的回饋簡直是夢寐以求的升級補品,因為自幹再久,還是需要外力輔助才能大功告成。

AC的學習社群長什麼樣子?裡頭有什麼重要角色?又如何發揮「同儕互學」的最大價值?

學期二下半場:從 Taker 到 Giver

在 AC 學習的日子裡,我從一位無限伸手的學習 Taker,逐漸蛻變成展現影響力的實習助教 (Giver)。這是一種身分堆疊、不全然是身分轉換。即便有了助教的身分,我的學習腳步,還是始終沒有停下。

伴隨著課程 loading 日漸加深,生活除了 coding,還是 AC。過程中,也能更加檢視自己在過去的所學,是否扎實且充分的理解;並且協助學弟妹們解惑,收到同學們的感謝與回饋,才漸漸的感受到自己也能在 coding 中發揮影響力。

除此之外,令我津津樂道的,就是承蒙 AC 邀請我擔任社群獎品盃的 coding 讀書會發起人。我與同樣在社群裡發光發熱的查理同學,一同擔綱主持人要角。這段時期固然辛苦,同時要兼顧爆炸升級的 學期二-3 後端課程、也要 handle 實習助教的作業批改、回饋與 Q&A 的解惑,更接下主持為期四週不間斷的讀書會。我不禁回想起那充實的大學生活 (揮汗!)。

不過在這段時期裡,最棒的收穫就是人脈。人脈,一者是因為你能對其他人產生價值,對他們有用;另一者則是因為,你不是單純來蹭東蹭西的 free rider,只想認識大牛大神,以從他們身上獲得好處的社交蟑螂。你有自己的學習過程、樂於分享與從別人的建議中吸收成長。而這些,我都一點一滴的在累積與細細品味。

學期三:停下腳步,檢視自我學習!

在學習的過程中,時不時都會遇到無數高牆。而每個階段可能倚靠著班級進度制,不厭其煩的在 AC 的 Light-House 平台發問、與助教切磋,最後都能一一擊碎。

但事實上,走進 AC 的最後一哩路之前,我忽略了一個思考自己真正想要成為什麼樣的 IT 人才?畢竟過多的內隱知識,會存在很多似懂非懂的模糊空間,開始冒出一些「知其然而不知其所以然」的內容。其實就像是在沾醬油,卻沒深入瞭解、建立連結的情況。

而我面臨到的,就是不知對於前端切版有興趣、還是具備商業思維且操作資料庫的後端抉擇。原因就出在,兩者之間我都隱含著許多含糊不清的想法,不知該如何做決定。這也是我學習階段中,真正開始停下腳步檢視自我的階段。

我開始尋求前輩們的意見。偶爾會發現,自己在表達上不順遂。因此,我給了自己一個延讀機會,再次重新探索每一個階段的學習。我找出那些不明白且含糊不清的知識,並確立某段學習感受。漸漸地,才發現我的心魔也就在這。回首先前的自我承諾,開始建立正確的心態,自己的心魔自己解。在我開始做之前,別人給的任何建議都是參考。

讀書會:在交流中升級

隨著課程難易度抬昇,AC 社群也日漸茁壯。在學期三的初期,我利用 AC-Slack,與幾位同學籌組小型讀書會,每週一次分享有關課內與課外的技術筆記與部落格文章。

這段時期,也萌生找尋畢業專案戰友的想法。就此,四人小組搭配前後分離的讀書分享,持續至今。我們彼此之間默契昇華、會議中互相取暖,並且適時交換讀書心得與 coding 解決之道。

透過讀書會的形式,我們想辦法把知識外顯出來;也進而內化知識,建立正向循環;最後也盡可能取得回饋,來讓自己內化地更透徹;並找到自己的盲點,獲得更深入的技能敲門磚 (升級道具的概念),才能讓效益更大。畢竟已經花一份工了,就應該讓效益滾出複利效應。

帶著問題學習,更來解決問題!

網路流傳一句話:會寫程式不是重點,能夠解決問題才是重點。寫程式的本質就是在解決一個又一個的問題。

一開始初學者容易恐懼問題的產生,然而就會延伸出另一種心態:我只要寫完這份作業就好。也希望解題過程中希望都很順利,不會有任何 bug。驀然回首,我還曾經擁有這些僥倖心態。但從一次次的實作中,體悟到並非每一份作業都盡如人意。每當完成一個階段性功能、要測試其他先前的實作時,就會跳出 error。之後的問題,也時常如雨後春筍般的冒出。

解決問題是工程師的基本日常。因此在學習階段,我漸漸地去擁抱這些錯誤問題的產生。如果問題短暫便能解決,我試著去創造問題,試著再從每一份教材中,去找尋可能性的問題,並且思考著當下的狀態的其他可行性方案。帶著問題學習的好處,就是讓自己沈浸在準備好解決問題的狀態。

給加入 AC 的你

或許你可能會想著,現在的我,僅是一個有著弱弱的知識跟弱弱的自己,那又如何?我認為,你該花心思在怎麼努力讓自己變強,讓人家一看你在這段時間學習的 code、與 code 品質的轉變。有了這些過程,大家就知道你的潛力、成長動能、技術能力、擅長領域。

現在的我回去看以前寫的程式碼,都會不禁納悶這是我寫的嘛?而每段程式碼與現在的學習成果對照起來,是否能夠寫的更簡潔且易讀?如果可以我該如何優化過去的程式碼?

或許你也可以把過去弱弱的自己,蛻變的過程,變成現在加分的條件。你可以開始定期定寫 blog 文章 (我也是),到未來求職階段,面試者或是任何人看著你 blog 的文章走向,就知道你對哪一些領域有興趣、有底子,不是沾醬油。同時,也會知道你學習心態的轉換,如何結合所學、發揮出綜效。

如果在 AC 社群、或是任何平台的影響力,也對應著你到公司內能發揮的正面影響力。那我最後想呼應開頭的那句話:如果學寫程式是你一生中可以翻身的機會?那你就要用盡全力!不僅要用盡全力,之後勢必也要發揮影響力。

(本文轉載自 ALPHA Camp 學生 Paul 心得 )