Aim, and you’ll get there! —外文系 轉職軟體工程師

Weiwei
Aiworks
Published in
13 min readNov 15, 2022
Photo by ThisisEngineering on Unsplash

從沒想過我會成為工程師

一路從高中一類組,到大學文組科系畢業的我,真的從沒想過有一天自己會變成寫 code 的軟體工程師XD,在 AppWorks School 這五個月就像一場奇幻之旅,有扎實到不行的技術洗禮、從睜眼到閉眼都在想 code 要怎麼寫的實作挑戰(不對,甚至有時候也會夢到 code XD)、超有耐心教導轉職小白的導師群、還有一群好夥伴一起闖關打怪。畢業後也成為工程師一段時間了,決定來分享一下心路歷程,裡面夾雜了對 School 課程的描述,還有一些我自己的心得。

自我介紹

政大歐語系法文組 / 外交系 雙主修,法國交換回來後,因興趣而在科技業擔任數位行銷職兩年多,除了大學通識課外,沒有其他的程式基礎。因為工作上會需要使用外包公司寫好的網頁模組,覺得有些功能不夠好用,因此萌生了「那不如我自己來寫網站吧!」的念頭,自學一段時間後發現自己還滿喜歡的,因此立馬申請了 AppWorks School 轉職培訓班,也幸運的錄取了!

立即申請 Coding Bootcamp Batch #20!開放申請到 2022/12/18

在AppWorks School的日子就像這張圖,電腦配咖啡是基本!

AppWorks School課程

AppWorks School 的培訓是由一個月的遠距上課加上四個月的駐點訓練組合而成,內容非常精煉,並且是非常專案導向的,較不像坊間培訓班以上課為主,而是告訴學員要完成的進度事項,讓學員自行去摸索,養成「自主學習」與「解決問題」的能力。

一個月的遠端課程

培訓的第一個階段,是為期四週的遠距學習,目的是讓學員對相應領域的程式語言有基礎的了解,我是前端班,所以課程內容有像是 HTML / CSS / JavaScript / Git與 Github 的使用 / 前端框架 React 等,也會有一點關於後端的練習,讓你可以了解一點後端 server 的實作方式。在這個階段會搭配線上的學習資源,導師會在每週開始時告訴大家要完成的作業,以及要觀看的線上學習資源,我們必須在週日前繳交。

四個月的駐點培訓

進到 School 後首先是一個讓人期待同時又很緊張的開學典禮,認識了許多未來將一起學習的朋友,還有親切的導師團,聽著台上校長描述未來可能會有的挑戰,內心真的有點挫,但也很期待 XD

  • 寫一個服飾電商網站(三週內)

上午還在開學典禮,下午就馬上開始實戰了!第一天下午主要是環境的設置,包含熟悉 Github、Git 版本控制,像是 fork, clone, commit, pull, push在幹嘛等等,還記得第一天大家光是熟悉 git 的流程就已經哇哇叫。第二天馬上迎來第一階段的挑戰:在三週內寫出一個完整的服飾電商網站!包含整個網站的畫面刻板、響應式網頁、API 串接、各個頁面 CRUD 的邏輯(小知識:C為Create、R為Read、U為Update、D為Delete)、各個產品的資訊呈現與庫存控管、金流 SDK 串接、社群登入 SDK 串接、基礎的 React 框架使用、SEO 的優化等,我印象最深刻的就是切版了,導師會把設計師的設計圖用成半透明的狀態,直接放到我們切好的畫面,哪裡有跑掉或者尺寸不對,馬上一目瞭然!那時真的覺得老師好狠阿~XD,不過也是因此讓我們切版的能力大大提升!

在 School 每天早上會有一個大約一小時的班級 Morning Recap,各班導師針對前一天的內容做一些講解,以及說明當天要完成的進度,大家如果有問題也可以藉機會提出,算是一個可以釐清一些實作時遇到的難題、跟老師同學討論的時光。

  • Firebase — Firestore 專案(三天)

第二階段是要做 Firebase Firestore 資料庫的練習,因為之後要完整做一個個人專案,網頁前端、iOS、Android 等泛前端的同學也會需要有資料庫來儲存與讀取資料等,所以這個階段主要是讓泛前端的同學們熟悉 Firebase Firestore 資料庫的操作邏輯,包含怎麼存入、讀取資料、如何即時抓取資料庫的更新資料,會把學員們進行分組(每組會有前端 + iOS + Android)在前一天公布要做的進度,並在隔天進行驗收。

  • Topic Discussion 分組專題研討(五天)

Topic Discussion又分成了 phase1 跟 phase2,主要就是分組進行技術專題研究與報告,一組大約三人左右,每個 phase 就是花1–2天去研究老師給的題目,並在第三天進行報告。我記得我們這組拿到的題目是

  • Event Loop
  • How browser rendering works
  • Canvas, SVG, WebGL
  • React context
  • Truthy, falsy, ternary operator / Short-circuit evaluation / Optional Chaining operator / Nullish coalescing operator
  • How to handle asynchronous code using promise & async/await ?

其他還有像是 OOP, FP, Google Map API實作、Restful API、browser devTools、Big O Notation 等非常多元的題目,每組的報告時間大概是 1–1.5小時。

全班一起研究與討論新技術的感覺很棒。
  • Co-Work:前端+後端+ APP 端 + Data 合作開發專案(十天)

現在回想起來,我覺得這個階段是我最喜歡也最有挑戰性的!在這個階段會是整屆的學員打散分組,每組裡面會有前端、後端、APP 端的同學,大家要一起針對 STYLiSH 這個服飾電商的專案再進行功能或介面擴充,在宣布分組後,會跟組員相見歡稍微認識一下,接著各組會被分配到不同的會議室(School 的會議室都是用科技大廠命名,像是 Microsoft、Apple、Google等,非常有趣~),組員就開始進行 brainstorm,我們組先是在白板上寫了很多,像是「評價系統、服飾模糊搜尋、顏色推薦、聊天室、優惠小遊戲、跑馬燈、直播、AR/VR 服飾穿搭預覽、記錄使用者喜好推薦服飾、優惠券、限時折扣、商品放大檢視功能…等」,在與導師團討論過後,我們選擇了幾個功能準備著手進行。

Co-work 過程其實滿有趣,可以學習怎麼跟其他領域的工程師合作,了解其他領域的工程師在意的點在哪邊?這也是往後在職場非常可能碰到的。例如:APP 端跟網頁前端在畫面呈現時各自可能碰到什麼問題;後端要開哪些API 給前端使用;前端要傳什麼資料到後端與 Data 端,以記錄使用者喜好,並演算與推薦相應產品。

在協作專案時我負責的其中一個功能是直播,因為是第一次實作直播的功能,我記得那時候真的卡了好久,一直沒辦法串上音訊跟視訊,又有時間的壓力,沒做出來也覺得對不起組員,所以崩潰了好幾天 QWQ,所幸最後在組員跟導師的一同努力下,把功能生出來了!甚至我們最後還加上了「語音辨識字幕」,直播主說的話會透過偵測直接出現在畫面上!還有另外一個我負責的有趣功能是“Styler”,我們結合了 Tinder 的概念,讓使用者可以左右滑喜歡跟不喜歡的服飾,並根據使用者滑的結果來推薦其他相似服飾。

  • Personal Project:個人專案(五週)

個人專案真的是大魔王!不管是技術上還是身心靈上都是XD,在此階段我們要在五週內生出一個完完整整的網站,從畫面設計、功能發想與實作、資料存取、使用者管理….等等全部自己完成,成品必須要有相當的水準,畢竟是未來求職要拿來 demo 的。

導師會分享學長姐專案給我們參考,也可以到 AppWorks school 官網查看過往學長姐的作品(有興趣的可點此查看),在規劃好後,導師會一對一給予回饋,確認專案主題後,接著就要做網站架構的三分鐘提案報告給整屆的導師與學員們聽。

我的個人專案主題是旅遊跟行程規劃的網站!整個個人專案是透過敏捷開發(Agile)的流程,跑 Scrum 的方式,每週會有 sprint planning 的時間,plan 好後要放到 trello上面,並切每天 morning recap 時要跟導師與全班報告前日與當日的進度,每一週為一個 Sprint,第二週的時候會需要 demo 你Sprint1 做的成果,以此類推,而每一個 Sprint 學校都會有相應的達成標準希望我們達成,例如希望在 Sprint1 時就做好核心功能、Sprint3 時要做好基本切版….等等,並且有留最後一個 Sprint 做測試與細修,結束後就是 Final demo了!

個人專案 Final Demo,要在三分鐘內介紹完整個網站,台下都是優秀的同學們,超緊張~

履歷撰寫 + 求職階段

在 AppWorks School 的最後一個月主要就是履歷的撰寫+模擬面試,履歷撰寫好後,導師團與校務會協助精修,AppWorks School 團隊真的非常細心,整個履歷至少會過三次以上,確保內容跟排版都是最完美的狀態!接下來每天早上會有題庫的答題錄音練習,緊接著陸續會有兩次的校友模擬面試,由學長姐回來幫我們面試,考的題目可能會有 live coding、技術問答、behavior 問答等,在這一連串的準備告一段落後,就準備上戰場囉!!

實際求職有分跟 Hiring Partner 還有自己外投的,我有實際進入面試的約有十間公司,最終有拿到 offer 的有五個,年薪資約落在 64–80 萬之間。整個統整下來我覺得有幾點比較想分享的:

  • 我覺得 School 為我們做的技術面試準備是非常充分的!所以在最後面試準備階段有好好的衝刺,且對自己個人專案技術有充分的了解的話,基本上面試問的問題應該都不會有太大的問題~不用太擔心!
  • 面試前可以多多少少刷一些 leetcode 或者找網路上的 coding 題目來做!因為我們寫個人專案是直接做一個網站,反而比較少接觸到簡短的題目,而面試的時候考的都是比較小的題目(演算法、coding邏輯、array method、string method 等),突然要從個人專案的思維轉成解題的思維,可能會有點卡,所以可以刷點題目讓自己的腦袋處於解題的狀態!
  • 工程師面試跟其他職位面試滿不一樣的,時間跟精神成本都是比較高的,有些會先發 coding 作業(可能是要你一週完成一項作業,或者是那種點進去就開始計時的線上測驗),透過 coding 作業確認你基礎技術是 OK 的才進下一關。接下來一般可能會有 1–2 關的技術面試,考驗你對前端的各種技術與原理的熟悉程度,也會有一些關於未來跟團隊合作的 behavior 題目。在通過技術面試後,才會是跟人資面談。通常都會有兩到三次以上的面試時間,還滿耗體力跟腦力的,所以我建議大家投遞時可以篩選一下自己喜歡的,不要瘋狂海投,不然如果全部都進面試,會滿辛苦~
  • 面試過程中,有些面試者可能會刻意質疑你「非本科生」的身份,覺得這樣理論基礎不足之類的,我覺得遇到這個問題不用怕,因為我認為「非本科生」反而是轉職者的優勢~我們具備了除了本科系以外的其他領域知識,現在的市場上很多公司都希望求職者可以具備多元領域的知識,才能在跨部門合作與溝通時更加順暢。

最後心得

畢業了,才是真正的開始:

目前也 onboard 一小小小段時間了,我深刻的體悟到,從 AppWorks School畢業+找到工作,並不是一個結束,反而是一個開始,因為軟體工程師要學的東西實在是太多了!且許多技術不停地在推陳出新,我們需要時時刻刻充實自己才能。「自主學習」與「解決問題」的能力是 School 給大家最棒的禮物,在工作後會遇到更多問題,會有更多沒碰過的技術要學,就是這兩個禮物發揮作用的時刻了~

要相信自己,有熱情一定能做到:

有一些朋友看到我轉職後也有點心動,不過還是很多人會有許許多多的擔憂,害怕自己做不到、害怕放棄現在的工作之類的,我覺得如果你知道自己對程式語言有興趣有熱忱,那就不要想太多,像我這樣純文組的程式小白都能做到,大家一定也都可以。不過相對的,如果你不確定自己是不是對程式語言有熱忱,也不要一頭栽入XD,不然五個月會非常痛苦~可以先找些線上資源來學習,看看自己是否真的喜歡,再做決定唷!

AppWorks School 最美的風景也是人XD:

我覺得在 School 除了學習到 coding 與程式語言相關的技術外,最大的收穫就是認識了一群很棒的人!同學們人都超好,一起互相扶持,一起崩潰也一起成長、還有導師跟其他團隊成員們也都非常 nice,非常有耐心的帶領與教導我們,也會一直關心我們的狀態,很用心的安排各個階段的課程與活動。即使畢業了大家也還是會一起約出來玩,聊聊彼此工作的近況,有遇到什麼問題也都會一起討論,School 也常常舉辦活動讓校友們可以回娘家跟大家相聚。「一日 School 人,終生 School 魂 」

每天寫 code 寫到笑不出來,畢業這天終於露出燦爛的笑容XD!

--

--

Aiworks
Aiworks

Published in Aiworks

AppWorks School 自 2016 年成立以來,成功培育超過 1300 名軟體工程師,校友遍佈知名企業。2024 年推出 Aiworks,專注於 AI 自動化賦能,透過系統化培訓和專業顧問服務,協助企業提升營運效率,實現智能升級。我們致力於釋放人才與組織的潛力,幫助企業在快速變化的市場中保持競爭優勢。

Weiwei
Weiwei

Written by Weiwei

Front-End Developer | A software engineer fueled by curiosity, creativity—and desserts!

Responses (1)