昨天在我們新手寫程式 LINE 群組,有幾個工程師&想轉職的新手在討論:
各位前輩們好,小弟是自學轉職的前端工程師,目前有兩個 offer,一個是接案公司;一個是自有產品,自有產品的那間目前只有一個junior前端,進去有問題可能沒人可以問,但看網路上好像都不太推接案公司。猶豫了很久選不出來想聽聽各位前輩的看法。
https://line.me/ti/g2/nipkjq2WoZPKX5dTn9tE9266aEOt6EOICFGa1g
這主題很好,我決定單獨寫一篇文章討論這件事情,跟大家分享
阿川幫大家從幾個角度來分析比較一下
接案公司通常是使用類似的技術,接不同的客戶專案
好處是可以接觸很多不同的客戶,認識許多不同產業
壞處是做久了可能會開始有「重複感」,也就是好像一直在做類似的事情,有點學不到東西
產品公司通常是長期深入研發自家產品、技術
所以會在同一領域鑽研,通常可以玩得比較深入、學得比較深入
壞處是可能長期只能使用同一技術、框架,沒機會玩別款的
接案公司有時需要面對不同技術需求的客戶,有機會玩玩不同款的語言、框架、技術
接案公司的時程壓力來自於「客戶」,通常已經由老闆、PM 跟對方承諾某個時間,甚至已經寫在合約上
如果同時在開發多個專案的話,有時候工程師會感到相當的壓力
通常是忙一陣、閒一陣這樣
產品公司沒有這樣的壓力,壓力通常來自於「公司沒有在賺錢」
如果公司經營穩定、產品前景看好、主管有肩膀好說話
那像這樣的時程壓力,通常會小很多
稍微資深的工程師,在不同公司面試時,一定會問的問題是:入職之後,需要維護 legacy(老舊)專案嗎?
維護老舊專案、負擔技術債,是一件很悲慘的事情,也是開發者的主要離職原因之一
你會被迫用已經過時的工具、語法在開發,並且要把設計拙劣的系統架構「硬搬進自己腦子裡」才能消化開發
這過程能學到東西嗎?我認為不多,基本上是在糟蹋生命
接案公司來說,如果主要負責一些新客戶,那麼經常在重啟新專案,技術債問題或許不大
如果手上負責很多「超舊的專案與客戶」,那麼可能會遇到技術債的問題
自有產品的公司,則是走向另一個極端
如果是持續有在更新版本、升級套件的熱情公司,那麼技術債問題不大
如果是有年紀、穩定的系統,那麼版本問題、系統架構的技術債問題,可能很大
嚴重起來會比接案公司更慘,因為就只有一個專案在跑
大家都希望團隊能有一個又強、人又好、又願意幫忙自己的好同事
不過這可遇不可求,身為正職工程師,你需要能夠獨立解決問題
畢竟人家也面試過了,應該就是合格了,如果真的丟一些無法解決的問題給你,那也不全是你的錯
另一方面,沒人可以問,代表你獨立做決定的空間很大,這未必是壞事
剛轉職的新手上班,我是覺得去接案公司上班也可以
通常接案公司很缺人,也比較願意給半路出家者機會
而且開始工作的前 1-2 年,不管去什麼公司,通常都能學到很多東西
待了 2-3 年之後,覺得無聊了,再找新工作也不遲
所以回到原 po 的問題:我認為兩間公司都可以,沒有說接案公司一定比較不好
畢竟,就算是自有產品的公司,如果產品本身超爛,根本永遠不會賺錢、沒人想用
那就只是一大群人在「陪老闆追逐他的個人夢想」,那其實也是相當浪費時間的,不如在接案公司專心滿足客戶,比較充實
我建議閣下不妨從「人和」的角度來觀察一下:你喜歡面試時看到的那些人嗎?
老闆、主管、同事,你喜歡跟他們相處嗎?還是你有點畏懼他們、覺得他們有點冷漠、城府、可怕?
如果實在不知怎麼選,就選你喜歡的那群人吧!跟合得來的人一起工作,總是不會太不舒服!
以上,簡單分享,給各位參考!也歡迎大家多多在留言區補充經驗、意見!