商管人的自我挑戰 Mike自學成為軟體工程師

不安於現狀的我

從小到大在班上,我並非最優秀的學生,但我無法安於現狀。當意識到安逸,我會感到很恐慌,所以我大一就挑戰轉學考。進入職場以來,我是較偏向「通才」型的人。工作了一陣子後,心中有個聲音不斷的冒出:「我應該為自己創造更多的價值和不可取代性。」正好在工作上遇到了有關資料庫的問題和抓取資料的需求,點燃了我對於學習程式語言,來解決問題的慾望。

在決心轉職工程師之前,我去舊金山待了三個月找我的姊姊,她透過 Bootcamp 從會計師轉行前端網頁工程師。在那創新和創業聚集的城市裡,我遊蕩在學習程式語言的世界當中,讓我對於網頁開發有了不一樣的視野,更讓我下定決心要繼續往前邁進。

2019 我的目標

回到了台灣,我開始在 ALPHA Camp 為期七個月的全端網頁開發課程。兩個月前,我在 ALPHA Camp 全端網路開發線上課程適合你嗎? 撰寫了學期一的完課心得 — 當時的我,還只能算是超級初學者。轉眼間,我來到「學期二:啟程」課程的尾聲,在這段期間,獲得了大量的知識、技能、觀念,並透過大量的實作應用,不斷的在成長 — 我想在展開下一段旅程前,紀錄下我的心得與反思。

兩個月來的學習道路

AC 學期二課程的概要

  • RWD 和 Mobile First 設計原則
  • 進階 CSS 切版和網頁佈局
  • 進階 JavaScript 與物件導向概念和應用
  • JavaScript 事件和 DOM 操作
  • 第三方 API 認識和應用、AJAX 技術
  • 軟體開發流程、版本控制、軟體測試
  • Bootstrap 多方功能的應用

充滿挑戰的作業

「學期二:啟程」課程當中,要學的知識、技術、觀念越來越多,也不斷加深。對於我而言,卻是不斷想要搞懂他們,並克服這些挑戰 — 不得不說,只要作業上被標注【挑戰題】時,我總是更想要把它做出來,加上有一點小強迫症的我,總希望成品是完美的、符合自己的期待,才願意提交出去。

學期初,客製化名片 (GitHub | CodePen) 的作品就是一個例子,還記得當時作業有提到「Bootstrap 表單驗證在沒有串接後端伺服器時比較難駕馭」這句話,當時的我卻是感到特別興奮 — 透過閱讀 Bootstrap 官方文件、介紹表單驗證的 YouTube 影片、和表單樣式設計的 YouTube 影片,我終於克服挑戰,完成了挑戰項目。雖然這個學習的過程花了我不少額外的時間,但我真的上了一課,也了解在遇到這個需求時,可以如何駕馭這個功能 — 對於這簡單的小作品,我很滿意!

客製化名片的成品

持續完善產品思維

技術的部分,其實在很多地方都能學習的到。在這兩個月當中,格外引起我關注的,反而是延續第一學期的產品思維與如何運用到作品上。其中我覺得特別喜愛的主題就是 RWD 和 Mobile First 的設計原則 — 即是因應使用者需求的變化,我們在做網頁開發時所需要考量的地方。這也影響了我往後在打造網路應用程式時,無論作業有沒有規定,一定會盡量考量的地方。

像是我需要透過串接 API 的製作出的社群網站 Social Page (GitHub | CodePen),就是一個我自己蠻滿意的例子 。當我們考量了使用者需求,就會需要花比較多的時間來優化,但這對於使用者的體驗,卻能有所提升 — 當然我也很滿意自己在這份作品中,自己找了各國國旗的 REST Countries API 來串接,讓使用者能一眼就認出每位朋友是來自哪個國!

社交網站的成品

建立學習能力

剛開始在接觸 AC 課程時,不能說非常習慣每週釋出課程的教學方式,過去接觸了線上平台,都是買了課程,就能拿到一包完整內容。但在學期二學習的過程中,漸漸能理解 AC 設計進度班級制的用意與好處 :一方面每週都有一個目標讓我想完成,另一方面,學期二的內容開始加深,有多餘的時間能向外找尋資源多方學習,同時不斷優化自己的成果,學到的反而更多。

我習慣讓自己每天都要寫 code,不僅讓自己有刻意練習的機會,也讓自己去適應每天都要寫 code 的工程師生活。在學習告一段落後,也習慣將所學做成筆記 、若有主題式的問題,則開始嘗試寫成部落格,像是:CSS 小技巧分享:em 單位的強大用途 — 這些都得額外花時間撰寫和找尋資料的,但在過程中,卻能強化自己對於這個主題的認知,未來想找資料時,也可以有自己的筆記能查閱!

很多人常說「解決問題的能力」是工程師必備的,但我倒覺得這是每一個人都必須培養的能力,無關乎職業。在每條道路上,遇到問題是難免的,然而,如何面對和解決它,才是讓自己更有價值的地方。而在學習上,解決問題可以透過資料查找、與同儕討論、在平台上向助教詢問等。在這個過程中,我也學會如何有效的查找料和問好一個問題 — 這也是學習上很重要的一環,卻也是容易被忽略的能力。

發掘對前端的喜愛

截至目前為止,我還沒有接觸太多後端的知識與技術,我的經驗還不足以分享心得。但在這兩月中,我對於前端的接觸更廣、更深,雖然課程越來越有挑戰,我卻反倒更有熱誠 — 這學期真的很享受前端的開發:每當看到作業的目標時,總會回想著使用者需求、再來也會逛逛相關主題的網站與產品增加靈感、並隨手畫一下簡單的 Wireframe,讓自己在切版前,有個畫面,加快後續開發上的效率。像是第二版社群網站 Social Page Version 2 (GitHub | CodePen) 的功能就比第一版來的複雜,有些功能也適合用不同的方法來呈現和運作,因此在開發前,先簡單畫了 Wireframe 幫助自己思考和設計,後續在切版時,就快了許多:

第二版社群網站隨手畫 Wireframe

要完成一份作品,總是會花費我不少的時間,但卻莫名的很樂在其中 — 我在想,這兩個月以來,都是那自己想做好一份作品的熱誠,支持自己不斷往前邁進,轉眼間,時間就過了 — 回頭一看,不帶一絲遺憾。

社交網站 Version 2 成品

往下一步邁進

學期二告一段落了,迎接而來的是「學期三:核心」課程的挑戰,看著課綱的內容,既緊張又興奮 — 是一個難以向人啟齒的心情。最近跟著 AC 職涯社群的計畫,和數位業界的前輩和朋友進行訪談,包含了 PM、IT Specialist、前端與後端工程師。在訪談的過程中,也瞭解到作品集的重要性,同時,對於所學的技術,也應該規劃一些時間,著手針對自己有興趣的主題做一寫額外的小作品。一方面可以磨練技術,另一方面也可以慢慢累積自己的小成果,或許在未來的日子裡能用得上。

最後,很感謝 AC 的同學在學期二一起成長、助教和團隊們用心的設計課程與指導,還有我身旁,所有容忍我有時不小心太沈浸在 coding 世界的親戚朋友們,讓我可以全心在轉職的道路上邁進!

(本文轉載自 ALPHA Camp 學員 Mike 的學習心得