如何求職成功轉職成為軟體工程師 / 程式設計師
近期看到許多的學習機構 (資策會、民間補習班、Hahow) 湧入大量的學生,開始學習第 2 專長-程式設計。
許多學有所長的工程師,已經開始接案,賺取第二份收入。
而我是認為,學習資訊技術 / 程式設計,已經跟學習第 2 語言 - 英文,同樣的重要。
在我近期所教的學生裡面,有位學生跟我說,公司需要他維護資訊產品,如果改不動的話,就要聘請新的員工來取代他的職位了。
這是一個嚴重的警訊,表示他如果缺少程式能力的話,這份工作就不保了。
而這位學生原本只是應徵 MIS 職位,工作 10 年來沒接觸過程式,突然老闆的一句話,讓他開始緊張了。
我是認為學習程式能力已經是一個趨勢,現在很多國中 / 國小的學童,已經開始教程式課程了,將來這會是職涯的基本能力。
有一些學生問我,我想好好學習程式設計,是不是該辭職工作,專心投入呢?
其實我比較建議的是原本的工作先做,然後先利用閒暇的時間學習,在下班及假日時間,買書及購買線上課程學習。
先建立基本的程式觀念,實作一些程式範例,等熟悉基本的技巧之後,再考慮轉職。
如果冒然的切斷原有工作收入,又無法獲得穩定的工程師收入,這樣是很危險的。
我一直都認為在實現夢想之前,一定要先顧好肚子。這樣你的夢想才有更多的續航力,才不會計劃執行到一半,就在煩惱錢要燒光了。
可能你是很有潛力可以發展很好的,別因為現實的麵包問題,阻礙了你的發展。
接下來我想分享一些觀念技巧,讓想轉職進入軟體工程師 / 程式設計師的人,可以快速入門。
準備專案作品
通常在軟體工程師 / 程式設計師這個行業要成功轉職之前,是需要一些作品來呈現你的價值的,讓你的履歷更為豐富。
當你去求職的時候,公司主管老闆從你的作品來認同你的能力,也會給你較高的薪資。
當還沒有轉職成功之前,專心投入你的作品,我認為是必要的。
分享你的程式筆記
在學習程式設計的過程中,都會學習到非常多的語法與觀念,因為語法實在太多,很難去記住每一句語法,所以需要將學過的語法記下來,方便下次查詢。
在我們學習的階段,從書上或是教學課程上面所學到的知識,就要整理並記錄下來。
將知識整理在自己的筆記本上或是網路上,都是為了將來更方便查詢。
但是放在網路上並分享出來,可以讓更多人看見你的努力。
在網路上存放筆記的平台很多,可以考慮使用 GitHub、Notion 或是 Google 雲端硬碟 也是可以的。
如果用部落格記錄,例如痞客邦PIXNET,可以讓更多人看到你的程式筆記。
沒有人發案給我,那我又如何有作品呢?
我認為許多機會就藏在我們的身邊朋友裡面,你只要不斷的分享你所學習到的程式知識與技術,那機會就在料想不到的地方出現。
可能你只是分享你最近學到的技術,就有人跑來問你,是否會做某某網頁、某某功能。
當你遇到客戶向你提需求的時候,就是你建立作品的機會了。
關於初次接案報價的問題,我有另一篇文章可以分享給你參考: 給軟體工程師的 3 種接案報價方式。
當你完成了客戶的需求之後,有機會變成長期合作夥伴。
當你把完成的專案作品再分享到網路上面,你又會吸引到更多的關注及潛在機會。
可能某一天,就會有某某老闆問你,你願意承接他公司的專案嗎?
開發自己想要的作品
有時候不需要別人提需求,自己本身就有想完成的作品。
例如在我早期的時候,我就想做程式筆記本軟體,因為我的程式筆記,散落在很多文字檔案內,要找程式碼的時候,非常不方便。
我後來在暑假的時候,每天都在家開發我的程式筆記本軟體,花了 2 個月時間就開發完成了,成為我最早期第 1 個作品。
後來求職面試時,很自然的分享我開發過程與動機,順利贏得主管對我的賞識,第 1 次求職就成功。
學好程式設計的技巧
寫程式沒有一定的公式,也沒有一定的作法,同樣一個需求,可以用多種方式完成,所以寫程式將會是一種持續進步的過程。
學習設計模式
在學習程式設計時,有一些設計模式 (Design Pattern ) 觀念是需要先掌握的,這影響了是否能寫出好程式的因素。
設計模式不是教你如何編寫程式碼,而是學會在某種情況下,要如何設計程式架構來解決問題的一種方案。
好的設計模式可以幫助程式快速解決問題,只要修改最小的範圍,就能得到最大的效益,縮短開發時間。
學會設計模式,不只在寫程式有幫助,這是許多求職面試考題,最常出現的題目,所以在求職前,要再複習一下常用的設計模式,將設計模式的實作案例理解一下,有助於面試取得好的成績。
學習物件導向
物件導向程式設計是學習程式的基本觀念,在程式的世界裡,所有的東西都是物件,所有的元件、產品、專案都是由一堆的物件組合而成的。
所謂的物件是先定義類別,再將類別實作成為了物件。
而物件導向的 3 大觀念是封裝、繼承與多型。
想學習物件導向就先理解這 3 大觀念,當你明白封裝、繼承與多型觀念之後,對物件導向就會有所熟悉了。
有那些學習平台可以進修?
現在網路上的學習資源非常多,免費的教學文章、影片到處都有,但免費資源最大的問題就是沒有整合在一起,需要花費時間搜尋,遇到問題時,還會無人可請教解惑。
所以我建議想轉職軟體工程師 / 程式設計師的朋友,一定要先經過完整的課程教學,從基本的觀念到實作範例,由老師帶領學習講解,這是快速進入這領域的方法。
以下我分享一些學習方法與平台。
台大開放式課程
如果你已經離開學校體系許久,當初沒有機會選擇資訊管理系或是資訊工程系走向軟體工程師之路,但沒關係,現在還有免費的台大開放式課程平台讓你線上學習資訊與程式設計課程。
台大開放式課程有非常多的課程可以免費聽,我整理一些跟資訊與程式設計相關課程連結,方便你們線上學習。
計算機概論 - 適合電機系學生學習計算機概論課程,使用 C/C++ 編寫程式語言
商管程式設計-適合不具程式設計背景的管理學院同學學習程式設計入門,以 Python作為教學媒介
資策會課程
資策會以「數位轉型的化育者( Digital Transformation Enabler)」為定位,推動台灣資訊與技術研發整合的推手,為台灣培育出非常多數位資訊人才。
在我過去工作的同事之中,有許多人就是經由資策會上課後,轉職成為軟體工程師或是系統分析師,他們並非資訊本科系出身,而是利用閒餘時間上課學習,取得資策會畢業學分,進而成功轉職到軟體工程領域。
資策會提供非常多資訊類型與程式設計課程可以學習,可以點此查詢最新課程。
線上學習平台 - Hahow 好學校
Hahow 好學校是台灣最多人選擇的線上學習平台,其每一部線上影片,都是經過 Hahow 好學校驗證過,教學品質良好的影片。
對於教學影片的挑選,可以篩選人數多且評價好的課程來學習。
Hahow 好學校在「程式」分類的課程就非常多元,市場主流的程式語言都有教學,可以自行到「程式」的分類區看一下。
線上學習平台 - Udemy
Udemy 是另一個線上學習平台,其課程的範圍更廣,中文與英文的課程都有,其中「開發」分類底下就有「網頁開發」與「程式語言」可以學習程式技能。
線上學習平台 - YOTTA
YOTTA 是台灣的線上教學平台,與 Hahow 好學校提供類似的功能,其中「科技」分類底下有「軟體開發」、「程式語言」與「網頁設計」可以學習資訊與程式技能。
Mars 的求職經歷
我是在大學時期就選擇資訊管理系就讀,是資訊本科系畢業的軟體工程師,所以我許多知識觀念都是在學校就建立了。
我覺得我很幸運的是當初我在學習程式設計的時候,當我聽到朋友想要建立網站的時候,我就會毛遂自薦,說我可以幫忙寫程式架網站,便宜收費就可以了。
而我是利用下課及假日時間,全心投入朋友的網站開發,通常一個專案會耗時 1-3 個月完成,雖然過程覺得很累,但做出網站之後的成就感,是會忘記過程中的辛苦。
我因為在學生時期就累積了一些作品,後來找工作向面試官介紹自己的時候,就會介紹 1-2 個我最印象深刻的開發經歷,將全心投入的心境分享出來。
因為面試官認同了我的努力,以及我努力後的作品,每一次求職都得到很好的評價。
完成作品勝過強調你有多努力
我相信每一個人都是很努力的,而每一個人求職時都會這樣說,那就顯得沒有什麼特別了。
但如果可以將每次的努力,變成一個又一個的作品,直接告訴面試官你的作品幫助了什麼人,解決了什麼問題,為別人帶來什麼價值。
這將會比你強調你有多努力更有說服力。
如果一直向別人述說你有多努力,不如直接向別人說你完成了什麼?
完成作品的方法很多,從別人的需求到自己的需求,只要完成了,都可以當作你的作品。
就算是很小的功能,只要解決了某一個問題,也可以包裝成你的作品。
為自己架一個網站,將你的作品放在網路上,而你所架的網站,本身也是一個作品。
最後對想轉職為軟體工程師 / 程式設計師的你,最重要的一句話就是:開始建立你的作品吧。
重點整理
- 學習程式設計跟學習第 2 語言同樣重要
- 將所學習到的程式筆記,分享在網路上
- 勇於挑戰朋友的需求開發,為朋友解決程式問題
- 在初次學習時要選擇完整的課程來學習
- 全心投入,用心準備你的作品