iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 28
0
DevOps

Kubernetes X DevOps X 從零開始導入工具 X 需求分析*從底層開始研究到懷疑人生的體悟*系列 第 28

Day 28 - 從大學肄業,聯成電腦,到 Microsoft MVP 得獎,從零開始的軟體工程師

前言

各位 iThome 的觀眾朋友們大家好,我是 Che-Chia。感謝大家點進來,閱讀這篇文章。

2020/10/01 我收到來自 微軟的最有價值專家(Most Valuable Professional) 獎勵項目,作為我個人軟體從業的一個里程碑。我用這篇文章回顧從 2011 年從業至今的所作所為,描述我做了哪些事,幫助我獲得 MVP 獎。

->歡迎參觀我的 MVP 頁面<-

這篇文章不是標題殺人,寫這篇的目的,要告訴軟體業從業人員,我做了哪些事情,最後獲得 MVP (Most Valuable Professional) 獎項。

更精確地說,我想要描述一個努力的方向。如果你自認是個努力的人,想要為自己的未來多出一份心力與時間,這篇文章很適合你。這篇文章不是萬靈丹,未必會給你一個明確的作法,例如做了 A B C 最後一定會得獎 (人生沒那麼容易XD),但的確會提供你一些思考的方向。我會清楚地描述我個人從離開學校、入社會、一次一次的轉職、如何提升自我、選擇職涯,最後回顧過程中完成哪些事情,終究獲得 MVP 獎項。

成為 MVP,可能不會因為獲得 MVP 從此人生一帆風順,也應該不會立刻大富大貴,甚至是照了步驟做了,最後也根本沒成為 MVP。然而依照這個方向努力,確實可以達成某種程度的成就,而且是對自身很有幫助的成就。

關於 MVP 獲獎的條件,需要完成的任務難度,這點也想先說明:真的沒有很難。不是指這件事很容易,而是說過程中執行事情都不是什麼高科技、或是需要高智商、或是需要家世背景。沒有,只要努力與堅持,你與我都很有機會。我可能不笨,但也不是什麼聰明人。絕大部分事情你我都做得到,成敗掌握在自身而不是天分、家世、或是其他無法改變的背景條件,只取決於願不願意付出時間與心力去執行。

文章實際的內容是

  1. 從踏入職場,到成為 MVP 職涯發展,我做過的選擇
  2. 做了哪事情幫助我成為 MVP
  3. 我的故事,你也絕對做得到
  4. 「你很有機會」的各種心靈雞湯 XD

我不是開玩笑的,你很有機會。可以讓你證明自己、從中獲益、並在過程中幫助到許多人,改善整個大環境。前者對個人發展很有幫助,後半則幫助了技術社群--這是我想要透過這邊文章達到的。

動機

所以這篇文章,不要讀者來粉專按讚或留言,獲取個人的利益。只要千百個讀者中,有一兩個人看了我的文章,願意試著往這個方向努力,最後獲得了屬於自己的成果,甚至讓世界多一個 MVP,在台灣社群發揮影響力,縱然我不認識,也沒有什麼直接利益關係,但卻增加技術社群的整體影響力,光是這樣就有說不盡的好處。

成為 MVP 的客觀條件

上面的簡介有幾個關鍵字

  • 努力
  • 方向
  • 社群

讓我們看一下 MVP 項目官方文件描述的 What it takes to be an MVP

這裡舉了幾個範例

  • Contributing code to Projects: Daniel Marbach 貢獻超過 100 個開源專案
  • Helping Others: Vinicius Mozart 回答 MSDN/TechNet 上的問題,發過數千個回答,每年有 5 萬餘人看過他的發文
  • Creating Content: Takae Sakushima 技術作家與部落客每年有 2 百萬點閱。
  • Speaker: Heather Downing 知名講者,參加全球技術研討會,聽眾累積超過 10,000 人
  • Live Coder: Layla Porter 直播主,直播 live coding,累積破萬觀眾

以上都是各自領域的佼佼者,MVP 項目放在首頁上給大家作為模範。

退一步說:你不用跟他們一樣傑出,但至少要

  • 對其他工程師有相當影響力
  • 喜歡且持續從事這些事情

才有機會獲獎。

看起來很難,是不是? 所以我要開始講我的故事,來提升你們的信心 XD,因為我的故事開頭並不怎樣。你們看完可能會想:

「哇這種程度最後也能獲獎 MVP,那我也行」

記住這種精神。

我的教育背景,從零開始軟體工程師

先說,我的教育背景。讓大家知道我出發點在哪裡,故事的起源。

我的教育背景是,我沒有教育背景 XD

什麼意思?!

我是台大機械系肄業,念到大三因為太混成績太差被學校退學。同學穿學士服拿畢業證書,我領肄業證明跟失業輔助。

入行軟體工程,也只是因為軟體業缺人,政府有輔助就業,就靠著政府的就業輔助,去聯成電腦上了網頁工程師密集班,周一到週五,上了三個多月。

由於大部分的人大概都不清楚,所謂短期電腦補習班是什麼,這邊我想描述一下當時聯成電腦的狀況:

  • 把失業的年輕人聚集在一起
  • 直接教 Javascript
  • 沒有演算法、計算機概論、資料結構、電腦網路...,大學必修全都沒有
  • Javascript 一個月,換教 Java
  • 然後就變成全棧工程師
  • 也別想講師有多強,很多教的東西,出來工作都發現是老舊的觀念

出來找工作時的程度

  • 良葛格的 Java 技術手冊,看完。大概五成看不懂,怎麼辦呢?就直接用默寫,程式碼全部手打一遍,能死背就死背
  • 寫了一個 Javascript + JQuery + Java 的 3J 網站

所以標題不是抄襲很夯的動漫標題 XD,而是我的軟體職涯,是真的從零開始的工程師。

我第一次找工作,職場的競爭對手是資訊工程本科畢業生,學軟體已經有 4 年,如果是碩士則是 6 年。反觀我自己,補習班硬湊,剛好滿 4 個月 XD

所有應屆競爭對手,基本上都領先我十倍功力 XDD,簡直要在臉上寫的慘字。廣告說要贏在起跑點,我是輸在起跑點還倒退嚕。

然而,再慘,終究還是要硬著頭皮出來找工作啊。第一份工作就是只求有工作,完全不管待遇。然而就算這樣,還是非常不順利:投遞履歷大多無聲卡,面試了許多家,也無消無息。

後來想,技術能力跟經驗實在沒得比,就改變策略,想想還有什麼優勢

  • 英文,我大學唯一學到的就是英文,有 TOEIC 945 證書,面試就一直亮證書
  • 作品。沒學歷怎辦? 就把手上的作品一直做大,書上有的範例,都轉成功能抄上去
    • 後來發現,作品是很有用的,至少表明你是有能力與毅力去完成一些事情,縱然只是微不足道的作品

最後幸運地被一家傳產公司撿到,月薪號稱 28 k,實領 25 k。那時租屋住在汐止,算是餓不死能活下去了,就從台中北漂台北,開始當一個軟體工程師。

人生就是這樣,很慘還是要努力,如果不能站好,至少要在地上像隻蟑螂一樣努力掙扎。或是選擇躺好,我就是不想躺好的那種人。

第一份工作

先說說第一家公司,我在這家公司待了 10 個月,這十個月間,這家公司沒讓我成長太多,但至少也沒讓我餓死。

這是一家傳產公司,做的產業以前毛利很高,但最近開始逐漸下滑,於是想要求轉型,成立新創軟體部門,我是公司第一個純軟工程師 XD,另外有一兩個韌體工程師,剩下全是現場工程師傅。

那時主管是業務主管,完全不會寫扣,唯一的軟體工程師 (我本人) 又菜到不行 XD,公司也知道,所以就找了外包給認識的接案工作,然後我來幫忙,順便應付客戶的需求。

但很快發現自己工作過程中完全沒有進步,工作心態也越來越差,其他同事也不是積極上進的類型,只是應付工作跟等退休。加上對於剛開始工作的新人,沒有資深工程師帶領、跟沒有同儕一起進步,實在是太不利了。不久就萌生跳船的想法。

這時我的求職能力,除了英文以外,多了

  • 10 個月工作經驗,但基本上就是屁
  • 我的專案成長了不少,吸收了從接案工作那邊的素材,但是素質很差
  • 那時的程度只會用 Sublime 文字編輯器,先複製網路上的 php 範本,然後自己改
    • 是所有邏輯都寫在 php 裡面,最糟的那種 Orz,因為也沒人教我正確的做法。也不會用 git、IDE、...

於是有時間就繼續念書,這時還不會上網 Google 或是找 Github 或是 Stackoverflow。如果不熟悉軟體工程的關鍵字,是通通查不到的。總之就是看書,然後把書本的東西抄出來、能背就背下來。

後來騎驢找馬成功,就立刻跟老闆提辭職了。

回想這段期間我有做對的事情,就是

  • 我有好好的整理我的 104 履歷
  • 作品爛歸爛,還是有用心整理
  • 工作經驗乏善可陳,但還是要整理,至少面試時要講得出來
  • 確立下間公司的期待,一定要學到東西
    • 我不要停在這個程度,我出生點這麼糟,一定要學習進步

「一定要學習進步」

這個想法,成為我後來找尋每份工作,唯一的指標。

第二輪面試

第二份工作順利上工,雖然菜,但有資深工程師帶,自己也知道認真好好學習。

怎麼面試上的呢?後來主管明說,公司當初請我近來也不是覺得我多好,公司也知道這樣的薪水不是要超強的工程師,徵才只是要

  • 腦子跟邏輯清楚
  • 可以溝通跟合作
  • 能夠學習進步

的年輕人。我從電腦補習班,到寫得出作品,面試基本題答得出來,加上談吐問答都正常。主管覺得這個人可以教,所以就收進來,讓資深工程師帶。

如果你沒經驗,表現出順暢的談吐、思維方式、自主學習的能力。

要表現出自主學習的能力,不是只是嘴巴說,每個人都會說「我很會自主學習」,面試官都聽到膩了。

把讀過的技術文章或書整理成筆記、整理成自己的專案、或是英文翻譯成中文。如果白板題寫不出來,至少用學習紀錄證明你有學習。

站穩腳跟

說說這家公司,這是一間長居美國的台灣老闆開的美商,在美國已經做了幾十年的純軟體公司。之所以有台灣分公司,原因也很簡單:就是希望 Cost down 降低成本,這點老闆在員工大會上跟公司員工明說了,也確實反映在用人的方針上。

我當時的薪水大概是 40 k 上下,後來有多次加薪。我在這家公司待了一年半,離開時大概落在 70 k 上下,成長幅度不小。也是老闆明理,雖然是 Cost down,但在一定的範圍內,也願意投資有潛力員工。

我的同事是其他年輕的工程師,有本科系學生、或相關科系轉行,這個團隊是實在的軟體工程團隊,知道自己在做什麼 XD。我從他們身上學到非常多東西,

  • 學會一堆工具 Git、IDE、linter...學了超多工具
  • 會區分爛 code 跟好 code,(開始跟同事憶起罵爛扣 XD),知道好壞、知道最佳實踐,真的很重要
  • 知道工作流程的重要性,學會跑 Scrum 跟看板,以及優化工作流程的意義
  • 知道如何去找問題與答案
  • 知道如何有效率的跨國溝通與團隊合作,與工作態度

當然,工作中也發現很多別人會,但是我不會的東西,例如本科生都會的演算法、資料結構、...等等,修的好壞看個人,但我發現自己通通不會。

「別人會的我也要會!」

我本身是很有競爭意識,上份工作沒有同儕,這份有了一堆領先我的同儕,還有系上資優生,讓我壓力山大。但同時也給我極大的學習優勢。

  • 我不會的東西別人都會,所以我很容易問到答案
  • 開始知道回頭修大學的課、與開放課程網的課程
  • 學會去爬英文網站 Github、Stackoverflow、各個工具的官方網站,開始有能力吸收國外的資訊
  • 開始注意於做事的過程與方法,學會改善流程

熱愛學習有幾個面向

  • 自己學到東西
  • 別人會更願意教你新的東西,如果你的回饋很正向
    • 相反,如果教東西,反饋的態度很差,之後就不會有人想教你

所以像海綿一樣努力吸收各種東西吧!

回首這段期間,我非常感謝這家公司,技術能力大幅成長,知道自己在做什麼,可以獨當一面。除了技術能力,在這家公司也交到許多好朋友。同事們都很年輕,也很談得來,許多人離職後都常保聯絡,成為一輩子的好朋友。工作不只是養活自己,也結交人生的旅伴。

找到志同道合的人太重要了,他們會

  • 分享職場與人生經驗
  • 他們的努力會激勵自己
  • 會提供新知識與業界新聞,跟八卦XD

去交朋友吧,工程師們,可以一起上班工作、下班打電動的朋友超棒。

踏出舒適圈,走入社群

從業第三年,至此,我都還沒有開始做任何 MVP 相關的事情,也還沒有開始加入社群。

下一段,踏出舒適圈,築夢的新創公司之旅


上一篇
Day 27 - 從零開始導入Terraform,Infrastructure as Code Terraform Atlantis
下一篇
Day 29 - 從大學肄業,聯成電腦,到 Microsoft MVP 得獎,從零開始的軟體工程師
系列文
Kubernetes X DevOps X 從零開始導入工具 X 需求分析*從底層開始研究到懷疑人生的體悟*30

1 則留言

0
zxcv66888
iT邦新手 5 級 ‧ 2020-10-13 10:07:39

很棒的分享 看完感覺很正向XD

感謝你,希望能給各位正向的感覺

我要留言

立即登入留言