轉職軟體工程師怎麼做?該選什麼程式語言?7個案例一次解析!

「我已經 30 歲了,現在起步學程式來得及嗎?」

「程式語言日新月異,如何思考程式語言的選擇?」

「如何有效率的自學?」 

你有很多關於軟體工程師職涯、學習與技能培養的問題,不知道如何準備嗎?這些聲音 ALPHA Camp 聽到了。針對觀眾提問,ALPHA Camp 校長 Bernard 親自直播解惑,解析超過 15 個實際案例。以下是 Bernard 直播分享的精華,為正在學程式、找尋職涯方向的朋友們解惑。

零程式基礎想轉職工程師?3 分鐘小測驗帶找到適合你的程式學習入口

Q:非本科系想轉職,該學到什麼程度才能夠找工程師工作?

很多轉職者會擔心,找工作時雇主是否會優先錄用本科系畢業的人。其實,ALPHA Camp 有很多學生都是跨領域轉職工程師,不論是會計、業務、PM、秘書等。

關於轉職者該如何準備,我有 2 個建議:

  1. 思考過去的經驗能帶給你什麼優勢

站在雇主的角度,現在這個年代已經沒有「單一技能」的職業型態了!因此當你去應徵一個職缺,它其實涵蓋了各個面向的能力。

以工程師而言,除了要會寫程式外,還需要溝通合作、邏輯思考等其他許多能力。所以,你需要思考的是:你過去的經驗能帶給你什麼優勢?

舉例來說,如果你前身是業務,你的優勢可能會有兩個:一是溝通能力,二是同理心。當你未來轉職工程師時,不論是面對客戶、跟團隊或 PM 溝通,你能夠更容易去了解對方想要什麼。

在軟體開發這個行業,從 PM、客戶開需求,到工程師實際化為程式碼,這段過程其實很容易出錯,如果你擅於溝通、向對方釐清細節,讓開發流程變得更順暢,這會是非常大的優勢。

延伸閱讀:學程式能做什麼?資料分析師與 PM 的經驗分享

  1. 具備產品思維

就我的角度看來,想成為工程師,需要擁有「產品思維」。什麼是產品思維?你能夠擁有全盤性的概念,知道一個完整產品做完會是什麼樣子,對打造產品的流程有充分認知。

就好比你去當一個廚師,你不可能沒有自己煮過一盤菜,你可能對其中某一步驟非常精熟,但你必須知道完成一道料理需要哪些流程。

所以我建議,去找一個你有興趣、或生活中常接觸的產品,去寫程式把它做出來,例如一個電商網站、社群網站 Twitter 等等。

把作品做出來後,更重要的是,你能夠清楚說明你每一段程式碼、為什麼用這個框架,對於整個產品的想像跟思考是什麼?你要對你做的事情有充分的認知。

但要注意的是,千萬不要拿教材裡的作業當作品集!因為那些只是你照著老師的步驟去做的,你並沒有去做選擇。你要自己去完成一個專案,知道當你選擇某一個 function、使用某個工具時,你的理由是什麼。

延伸閱讀:轉職者,別依賴程式課程裡的「作業」來當你的求職「作品集」

Q:30 歲後轉職來的及嗎?先嘗試看自己喜不喜歡

超過 30 歲想轉職工程師,你首先要確定的是:自己喜不喜歡寫程式

25 歲轉職跟 35 歲轉職的空間是有差異的,但你要擔心的不是「能不能轉職」,而是你「想不想轉職」!所以你要嘗試過什麼叫寫程式,知道前端、後端是什麼,軟體工程師在做什麼。

在轉職之前,我建議多花些時間,嘗試 3 個月到半年時間,知道自己喜不喜歡寫程式。如果你下班後,願意主動去學寫程式,這是個好開始。但如果你打開電腦,發現寫程式好無聊、不想動腦,那程式可能不適合你。

如果你對寫程式很有興趣,慢慢幫自己累積里程碑,做一些簡單的專案,自信心提高後,你會知道自己適不適合工程師這條路。

零基礎開始學寫程式,了解自己對寫程式的興趣

Q:轉職找第一份工作,需要考量哪些因素?

很多人找第一份工作,會考量薪資福利、產業環境等因素。但我認為早期工作的選擇標準,最重要的是選老闆是誰。

為什麼?因為老闆對你的影響最大,他會影響你對工作的態度與思維,你如何學習、你的表現、能夠發揮的舞台空間。

再來,則是看你身邊的同事是誰。人是社群動物,人會跟身邊的人互相學習,選擇一個好的環境,你會成長得最快。

當你工作 3-5 年後,我才會建議你去選擇產業。這個時候,你已經培養了一定的專業能力,懂得團隊合作,可以去尋找自己喜歡的產業。

例如,我一開始在半導體產業待了 4 年,我很專心的把半導體做好,跟身邊老闆、同事學習,知道這個專業該怎麼做。但我後來發現自己不喜歡半導體業的工作模式,於是我透過 MBA 去轉換產業,最終找到熱情所在的教育業。

現在這個時代資源這麼豐富,要轉換產業、學硬技能其實相對容易,反而是工作態度、與人溝通合作,這些軟技能才是最難學的,所以我建議一開始選擇工作,要去選擇能形塑你價值觀、工作態度的人。

延伸閱讀:雇主期待軟體工程師要有的 5 大「軟實力」

Q:想出國工作,國外軟體產業現況?

許多朋友好奇國外軟體工程師的工作環境,趁著在新加坡當地直播的機會,我邀請了新加坡新創公司 Silicon Jungles 的 CTO Sam,請他分享新加坡軟體工程工作的第一手觀察:

Sam 指出,近 2、3 年來,新加坡對軟體人才的需求迅速增長。除了本地人才人數不足以外,也因為產業環境變動的因素所致。過去新加坡以金融產業為主,培育出的工程師學習的是 Java、習慣了 20、30 人團隊的開發節奏。

但現在新創公司興起,使用的是新興的程式語言、採用較快的開發節奏,3 個工程師就要開發出一套 APP,自然過去在金融產業的工程師難以滿足新創產業需求。

最後,加上外地科技人才流失,因此新加坡非常鼓勵國外的軟體人才來工作。

薪水的部分,過去 Junior 工程師薪資落在 2500-2800(SGD),但現在成長到 3000-3500(SGD),5 年以上經驗的 Senior 工程師 4000-7000(SGD),且新加坡稅率較低,只有 5-7%。

Q:好的軟體人才需要什麼能力?該如何選擇程式語言?

首先探討程式語言的選擇,我認為要去找一個平衡:你需要去學最普遍、大家都在用的語言,例如 Vue、React 這些普遍的框架;但同時,你也需要去深入鑽研一個語言,不管是 JavaScript、Java,或 Ruby on Rails。

為什麼要深入鑽研一個語言?從雇主的角度來看,他需要知道你有扎實的基礎,證明你擁有把某個語言學得深入的能力。如此一來,即使你不懂雇主需要的語言,他也不會擔心你其他語言學不會。

「不斷學習,是工程師的宿命。」你需要把一個語言學得紮實,但同時也能夠對現在產業的趨勢有所了解,去運用最新的工具。

然而切記,千萬不要什麼都學,但每個能力都很淺,你的履歷可能放了很多關鍵字,但一面試就會被發現能力不足,錯失真正的機會。

2022 熱門程式語言,哪個語言職缺最多?

程式語言只是一部分 軟體工程師需要的 5 大能力

想成為軟體工程師,很多人會太專注在程式語言,該學哪個語言、哪個框架好。但根據我過去面試幾百個工程師、自己創業的經驗,我認為程式語言及工具只是一部分,一個好的軟體人才,其實需要 5 個能力:

  1. 學習能力:身為工程師沒有學完的一天,每半年就有新框架、新工具推出,所以你必須不斷學習。
  2. 邏輯思維:寫程式最底層需要的是邏輯思維概念。你不需要數學很厲害,但你至少要有基本邏輯思考能力,或是對此有興趣。
  3. 程式語言與工具:不管你選擇哪一個語言,要確保你把這個語言學到一定程度,能夠掌握背後的邏輯原理。
  4. 電腦系統網路概論:這是傳統資工系相比起轉職者的優勢。什麼是 http、memory、server?它們是怎麼運作的?這些「原理規格」你不需要完全記住,但它會影響到你製作產品時的考量點。我會建議這些基礎最後再補上。
  5. 協作能力:如何跟其他人合作,例如最簡單的程式碼註解,如何把自己的程式交接給其他人,完成整合,這些產業基本素養非常重要。

也在思考轉職?無論你是:非本科跨領域學程式理工科職涯升值挑戰 都有適合你的學習路徑

業界需要怎樣的人才?看看跨國企業 foodpanda 怎麼說

Q:軟體 PM 過去沒有程式基礎,現在該如何開始學程式,讓自己快速成長,與工程師和老闆順利溝通?

在這個案例,我會建議 PM 把程式學廣,有基礎概念,幫助你下判斷就好。

不管你是去學 JavaScript,PHP 或 Ruby,重點是你能夠大概知道一個產品怎麼做。前端有前端的問題要解決,例如介面速度、互動呈現;後端有後端的問題要解決,例如資料庫如何設計、資料結構怎麼排,這些問題其實很廣。

想成為一個好的 PM,跟工程師順利溝通,你不需要徹底了解每一件事,因為這些最終是工程師要去解決。你要做的,是告訴工程師要解決什麼問題,他們自然會思考解決方案。

當你擁有程式基礎,能夠清楚一個產品如何運作,一個需求改動的困難度,才有辦法提出尊重工程師的需求。

AC 與 PM 代表性社群商業思維學院合作,實戰軟體開發流程,幫學生成為團隊神隊友

Q:如何有效率的自學?

學習分為很多種,一種是知識的學習,例如歷史,這種對理論事實的學習,重點是學背後的脈絡思考。另一種則是技能的學習。但是技能是無法被動學習的,就像運動一樣,你要先學概念,接著主動去模仿、不斷練習。

學技能,其實是有技巧的。你首先要把一件事拆分為不同模組,接著去理解、不斷練習,讓你的腦袋開始產生自然反應。

因此,當你在學一個程式語言時,你要先把整件事拆開,例如你先學 if-else、for loop,理解它們是做什麼的、如何使用,拆開後再不斷運用這些概念來解決問題,最後當你在整合時就會簡單很多。

如何做好每週時間管理、自學程式不再半途而廢?

壓力+休息=成長

最近我讀了一本書《Peak Performance 一流的人如何保持顛峰》,書中提出一個公式:「壓力+休息=成長」

這也是 ALPHA Camp 在課程中給學員們的建議。在學習時你要有目標,給自己製造一些壓力,同時你要給自己足夠休息。當你在休息時,你的大腦會幫你內化所學過的東西。所以當你寫程式卡關時,建議去外面走走、跑個步。

想知道如何保持優秀,推薦有興趣的朋友去看這本書。

3分鐘小測驗,找到你適合從哪開始學習全端開發