嗨囉,今天來跟大家分享,我五年前面試到成為「軟體工程師」的經驗。希望可以幫助到想要“轉職”或準備要“跨領域”踏入這職位的人。
— 私訊《畫家帽の龍》FB 粉絲專頁“666” 就送給你《轉職軟體工程師攻略圖》,裏頭有軟體業不同面向的程式語言分類及軟工知識圖譜,若想要比別人有競爭力,就把這些都學會吧~
我在大學時,有修 C&C++,當時我幾乎聽不太懂在幹麻?所以後來有去學線下的電腦程式語言班,當時都很推薦 Java Web 網站開發班,因為有附贈 C&C++ 課程,於是就報名了。
後來 Android 開始紅了起來,我挺好奇的,因為又是另一門主修,且一樣有附贈其它課程,如:illustrator、PhotoShop、網路基礎知識、JavaScript 等等許多任選,當時還有一門跟著 Android 與 Swift 一起出現的 UI/UX 課程,哇~很多,可以滿足我好奇心,於是又報名了一個主修。
當時花了超多時間上課,學到後來還是決定以網站開發為主,原因有幾個:
一、大學實習時,我是做生理訊號傳送到手機的APP,設計出藍牙連接即時顯示數據在儀表板的功能,並可以滑動頁面切換腳踏速率表與心律圖,開發完後發現很卡頓。過程中覺得開發手機 APP 超麻煩,還有 Android Studio 開發工具不是很好用,因此捨棄手機 APP 的求職路線。
二、因為我是電機系,雖然 UI/UX 有簡單的邏輯,但頁面流程幾乎還是用手拉出來的,當時覺得好像是給美術設計的人去發展職業的附加技能,於是也捨棄跟設計有關的了。
三、至於 JavaScript,我上完課只知道它是另一種語言控制瀏覽器的元件,但是好像跟網頁設計有關,好像又是美術之類的,於是也把 JavaScript 開發捨去了。
因此最後就變成選 Java Web 的職缺了,不過就算上完課,我對網站開發還是不知道全貌到底在幹麻?也分不清楚什麼叫前端?什麼叫後端?只知道,喔~用 Java 寫一寫邏輯是不是就可以當 Java Web 工程師了,好像比較容易。當時我還看不出來我寫的程式有沒有效能問題,效能這個概念我都還沒有。
當完兵後,我開始找網站開發職缺時,在 104 找工作發現,工作說明裡頭有很多名詞在學校和當時報名的課程中都沒有教到,當時我對網站後端開發了解甚少,只有 Java 程式語言基礎,於是我開始上網找資源學習…
後來看到 Udemy 這個平台,我搜尋網站開發,發現怎麼有 PHP,這是什麼東西,哇~還可以做出購物網站,課程特價,於是買了上完課做出自己的網站,也放上家裡賣的熱炒照片到商品頁面。但是這個跟 Java Web 有什麼關係?為什麼課程中都沒有用到 Java?但我還是用這個當作作品集投遞履歷了。
面試過幾家公司,發現他們好像都要筆試,當時我還不知道 LeetCode 這東西,是面試後 HR 告訴我的,但還好大學有修演算法與資料結構,當時不知道學這個用途是什麼,原來是要面試用的…於是面試都沒有上。
— 後來才了解實際上演算法與資料結構不是應付面試用的,而是一部分與我一直沒有去思考到的效能瓶頸有關,雖然工作中有用場機會的演算法只有幾個重要觀念,但是它可以訓練程式開發思考角度與維度的面相,間接影響了程式開發品質。
於是我開始刷LeetCode 題了,後來就面試到做 Line Business Connect Server 的接案公司,公司職缺說明中有 Spring 框架,我在面試前又去 Udemy 搜尋 Spring,但搜到 Spring Boot 的課程 (當時我還分不清楚原來還有 Spring Framework、Spring Boot、Spring Cloud 這幾個框架),因此買了上課,發現這怎麼這麼神奇,原來可以這樣就創建 API 了,好快,當時怎麼都沒有教這個。
順利地我進入了這家接案公司,小菜雞的我以為準備好了該有的技能來上班了,但是才發現還有超多不知道的東西,之前認為不會去使用的 JavaScript 竟然用上了,此時才開始知道這叫前端開發,而後端開發是 Java,還好我先前誤買的 PHP 購物車課程有提到一些 HTML 和 CSS 的知識,不然我可能會跟不上工作。我才知道,疑~原來可以用那麼多種語言做後端的事情,並了解 PHP 與 Java 都是後端語言,且有不同的語言特性,一個可以直接嵌入在 HTML 裡頭。算是誤中得福啦~多學還是有差。因此我在一個月內就上手基本的開發工作,許多 Spring 框架的知識也才正式開始累積,並不是只有 Udemy 課程裡提到的那樣而已,因為公司使用到 Spring Framework,跟 Spring Boot 還是有差異,對 Tomcat 的認識也才在工作中愈來愈知道。
這一份工作雖然面試後端,但是也有碰到前端開發的事情,做中學,學中做,下班學,磨練出開發前端的技能了,也在工作中更了解資料庫的特性。
因為我是電機系,所以學校關於軟體開發的內容比較無法涵蓋太多,但是許多課程內容還不足涵蓋所有基本技能與知識,通常要集合許多講師的知識,所以還要學很多,並自己探索。而且課程又昂貴 (前前後後因好奇心,花了近 20 萬學電腦程式相關)。但是實際上還有很多沒有教,這樣自學的狀態持續到了現在,五年了,我把畢生為止大概用到的知識圖譜紀錄到了《轉職軟體工程師攻略圖》。
最後記得私訊《畫家帽の龍》FB 粉絲專頁“666” 就送給你《轉職軟體工程師攻略圖》,助你朝想要的方向前進。
祝你職場順利~Go~