軟體轉職之我見

Hello, 昨天回應卡友文章, 回應中建議可以考慮轉職,想不到反響熱烈, 所以開一篇文章分享一下軟體轉職的經驗。 (原文網址:
首先自我介紹一下, 我目前在一間小小的新創公司擔任小主管, 從事軟體業大約五年, 主要的專長是網頁應用程式、移動端應用程式、機器學習、區塊鏈、數據分析, 在這行裡面絕對不是大佬,只是比較愛分享而已。 首先先說結論 「轉職絕對是一條很辛苦的道路, 沒有毅力跟決心不要浪費時間」 Q1. 軟體業好賺嗎?第一份工作大概的待遇大概多少? A1: 當你真的下定決心要轉職, 大家第一個問題可能就是$$, (昨天回應也最多人問我這個) 關於薪資結構大家可以看巴哈有一個大佬的回應, 內容超級清楚:
懶人包就是「在台灣想賺錢還是半導體最賺」 但文章的內容是三年前的狀況, 現在軟體業的環境我體感是比三年前好很多。 (強調沒有任何統計佐證,完全是我體感) 但我必須稍微安麗一下,軟體在台灣可能薪資不比半導體,但如果從世界的角度來看,軟體工程師的待遇不會比半導體RD差,而且職缺也很豐富(因為任何行業都需要軟體工程師),而且就未來十年的產業趨勢(電動車、5G、VR/AR、web3)軟體站在不可或缺的角色,所以是一個很有前景的產業。 關於第一份薪水,有在追蹤上一篇文章的同學可能會發現其實總說紛紜,但我自己的想法就是「junior 月薪沒有給40以上就是低於行情」 不管北部南部都是一樣,這個根據是因為, 我自己學生時期接案,一個月平均可以做一到兩個案子,每個案子的收入大約是20-50不等, (當然案源會是很大的問題) 所以根據生產力換算的結果, 一個junior 待遇大概就是40k, 當然根據能力會有差別, 我看過junior 一進公司完全可以獨立作業的, 也看過我很懷疑他怎麼通過面試的。 另外補充一下, 這個產業基本上不怎麼看學經歷 (學歷可能會影響第一份工作的薪資) 俗話說「軟體科技、實力說話」 (抄襲電子競技實力說話 ㄏㄏ) 基本上你有實力就不用怕吃不飽, 但實力只是決定你的地板,你的天花板還是要看其他軟實力(溝通、政治、人脈、語言等等) Q2. 軟體開發真的可以自學成才嗎?門檻會很高嗎? A2. 絕對是可以自學的, 我自己就是一個活生生的例子, 幾乎所有在工作上用到的技術我都是在網路上自己學的。 但是說到門檻就很殘酷了,軟體開發是一個極度仰賴天賦的工作,非常看重「抽象化」的能力,有的人學習超級快速,但更多人是著老師做都沒問題,自己要開發就一片空白,但也有可能會在某一天突然開竅。 但話又說回來,其實能在業界「幫上忙」的門檻其實不高,所以很多人才會戲稱RD為「碼農」,因為菜雞只要根據前輩設計的blueprint再調整參數就可以協助很多重複性的問題了。 (比較具體一點,就很像小時候玩遊戲為了開外掛,會有大神請你到某個地方剪剪貼貼,但是又更複雜一點) 不過其實真的對公司來說有價值的是設計架構的那個人,而不是一直做重複性工作的人。 所以你問我軟體業的門檻高嗎?我的答案是「因人而異」,至於要怎麼知道自己有沒有天賦呢?學學看就知道了。 Q3.從學習到就業要多少的時間呢? A3: 這個答案也是因人而異, 完全沒有基礎的人,學習網站開發, 比較粗略的感覺是: 「有天賦的人三個月,沒有天賦的人半年到一年」 以上的時間都是每天8小時,週休二日來計算。 Q4. 我該怎麼開始呢? A4: 選擇一個你想學習的技術, 新手沒有想法我一率推薦學web開發後端。 (如果有時間前後端都學會更好) 因為職缺豐富,學習的內容也算紮實。 因為我個人沒工作的興趣就是收集課程,當然可以硬嗑文件學習,但有人幫我整理好重點比較省時間(有一部分也是我英文偏鳥) 所以分享幾個不錯的教學資源: 1. Alex 宅幹嘛 vue全家桶 (免費、網站前端)
台灣學習vue最好的資源沒有之一,也可能是亞洲最強,而且Alex偶爾會開直播分享心法,雖然我算是自學,但Alex在開發上給我很多啟發,算是我沒見過面的啟蒙恩師之一。 2. 台大李弘毅老師機器學習 (免費、機器學習)
全世界中文機器學習最好的教學課程沒有之一,還是免費的,台大要搶修弘毅的課還要抽籤,而且弘毅的課程十分幽默有趣,但必須說真的講得很深。 我知道很多人可能會說推薦沒基礎的菜雞學ml是在勸退,但這真的是我私心推薦,也是我沒見面的啟蒙恩師之一。 再次強調,沒有修過微積分、統計、線代在看之前要三思(統計可以搜尋台大葉丙成惡補,弘毅自己的線代也上的超棒) 3. 進度條 laravel課程 (收費、網站後端/一點點前端)
進度條的課真的是由淺入深,老師講得還算清楚。 4. Hahow 吳哲宇老師 html/css/js (收費、網站前端)
我沒有上過老師的這堂課,但我上過老師其他的課程,老師比較不是cs起家的,如果是設計轉職可以從這門課入門。 5.other: 基本上在Hahow上的課程都不會太雷(而且也可以先看評價)然後從udemy 找的要篩選一下(有的真的偏鳥)只要搜尋正確的關鍵字就可以找到很多資源(免費收費都有) 這裡推薦幾個關鍵字: 前端:基礎 「html/css/js」 入門「react.js」「vue.js」 「angular.js」 後端 「node.js express」 「php laravel」 「Java spring 」 「python Django」 不要問我為什麼沒有asp.net 因為我不太喜歡那套框架。 另外,如果有錢當然是可以去資策會之類的訓練營,雖然我個人對於訓練營出來的學生都有一點點成見(比較死板、不知變通、自學能力差、比較不能獨立開發) 但我帶過最優秀的新人也是來自資策會,所以我相信也是很好入門的管道。 Q5. 軟體工程師的工作環境大概如何? A5: 其實差異很大,像我前一間公司加班加到爆,但現在的公司就很悠閒,只要時間內能交出進度老闆基本上不會太刁難,就像我現在打文章老闆也不會特別過問(乾 認得出我的別告狀) 不過整體來看現在公司普遍對RD越來越好, 工作環境越來越舒適了, 如果你嚮往遠端上班、自由輕鬆的工作又有點挑戰的工作氛圍,軟體開發真的是很好的選擇。 此外,軟體開發跟其他工程師最大的差別是, 除了工程以外,我們是很重視創造力的工作, 其實我覺得工作的內容很接近作家 (這也是為什麼很吃天賦) 厲害的RD對於code的品味就越好,甚至還有很多書在教我們怎麼去品味好的code 寫出高品質的code(例如聖經 clean code) Q6. 要很好的設備嗎? A6: 不用,十年前的電腦就夠了(不過是一個很好凹爸媽買電腦的藉口) Q7. 作業系統? A7: 一率推 Mac (但windows 其實也很好用) 因為作業系統最接近生產環境(但用m1要注意下,vm跟docker會要調整一下環境,不知道docker是什麼?你長大就知道了) 不過其實現在windows的powershell也可以打Linux的指令了,但… 蘋果你懂得,就是潮。 Q8. 當上rd 以後未來的路? A8: 這其實可以再打一篇了,但我簡單說, 基本上我覺得前後端/devops是junior在分的,當你成為senior的低標就是全部都要懂(但職務上還是會有分) 如何區別junior 跟 senior ?我自己的想法其實很簡單,業界能看到的產品,九成你都要有能力可以規劃得出來(效能跟架構好不好又是一回事了) 但至少要可以很清楚明白每一個產品需要的技術跟需要的時間跟技術,簡單來說,就是老闆給你時間跟資源你要有信心能夠做出任何東西。 (但其實實務上我還是會常常打槍PM就是 哈哈哈) 當你熟悉現有技術後,你就要去思考你未來進修的方向,大致上其實可以分成兩個大方向1.系統面 2.應用面(深度 or 廣度) 走系統面就是去研讀更深的資訊安全、演算法、資料結構等等,推薦一個系統面很強的大佬,fb社團backend Taiwan 的版主,基本上就是只要技術層面的問題他都非常清楚。(不過他超級兇QQ 我在那個社團回應問題都很怕被電) 應用面就是去玩一些酷酷的技術,像是區塊鏈、 機器學習、VR、AR,我自己是走這條路,但就必須要多學很多基礎知識(微積分、統計、線代這些是標配)。 在實務上很常是應用很強的人做出很多酷酷的發想,但走系統的RD再幫做應用的人擦屁股。 (當然可以全都要,但除非你是百年難得一見的練武奇才,不然一天只有二十四小時…) 結語: 再次強調在這個產業界,我真的是菜到不行, 但因為我小時候家境真的很差, (Pr 1以下的差,不敢說太細 怕被認出來) 是軟體、網路改變我的人生, (所以之前有人說網路是人權,我完全認同) 再加上我文筆還行, 所以看到對職涯、軟體開發有疑惑的同學都會花時間回答。 因為我也是從很迷惘的深淵爬上來的, 我很明白那種迷失方向,不知從何開始的感覺, 如果一篇簡單的文章能幫到你, 能成就一兩個RD,也算是對那些很熱心在開發路上指引我的前輩的一點致敬。 再次感謝李弘毅老師跟Alex 。 有什麼問題都可以直接留言,如果我能力所及我都很樂意回答。
愛心
跪
哈哈
429
106
全部留言