※ 引述《uok (鋼鐵領主)》之銘言:
: 2010年7月開始進入資訊業
: 主要是寫ANDROID APP
: 現在也九年了
: 一路上不敢說表現得多好
: 但也是一路過關斬將殺到現在
: 隨著經歷越來越多
: 每次去面試的公司反而砲火都越來越猛
: 從年紀幾歲(35很老嗎?)
: 寫什麼程式(會JAVA為什麼不能勝任C?
: 換幾任工作(我待過七家公司關你啥事啊……
: 面試的問題都越來越愛針對我的私人經歷打轉
施主我覺得你的問題真的不小.
但你其實快到了十年之癢,會思考職涯問題是非常正常.
(通常是時候寫出標題為十年磨一劍的文章了)
我相信你認為自身的技術應當沒有問題,我建議調整的地方是心態.
甚麼心態?
怎麼看待軟體開發工作?自己怎麼看自己?公司或用人主管怎麼看自己?
試著放開心胸,想像自己是公司或用人單位.借位思考,才不會老是陷入工程師的本位角
度在看事情.
首先先回答你 資深與資淺人員的差異
我認為第一個是在估計時程
資淺的開發者比較難估計相對準確的時程.甚至對時程問題會恐慌(註).通常發生埋頭
下去研究或實作,才發生時程爆棚延遲需要加班的狀況(當然年紀輕通常不會覺得加班有
甚麼問題,畢竟是做自己喜歡的工作).
(註)曾經發生過一個關於估計時程真實發生的故事.放在最後分享.
資深的開發者,望文生義就是做過的東西多,所以比較容易舉一反三,雖然專案總是不能
掌控,但是憑以往經驗猜,都能猜的八九不離十.特別是一些非技術性的時程(預留規格
變動的時間,預留除錯的時間),有時抓開發時程的Buffer時,靠的是一種對公司對專案
對團隊綜合的感覺或Fu~.
公司一定是希望快一點完成,但是也要做完才算數.所以多少時程換來多少規格?多少效
能安全性?開發人員要能夠解釋出來,不是單純的瞞天喊價.瞞天喊價久了公司文化就會
出問題.在這條規格線上一定有人是不懂技術的,當然有必要解釋給對方聽.一邊我不想
解釋,一邊我不想聽.那最後就是分手離婚情殺的悲劇.
第二個是心態的轉變
工程師多半是喜歡且擅長對付機器的,喜歡應付人的早早就轉行去拉保險了(真實故事).
我也曾為了做出甚麼可擴充系統,自動產生程式碼系統,看到自己寫的AI會照著規畫對著
自己發炮興奮不已.
但是公司或專案真的要的是甚麼?甚麼才能產生價值?這個問題是開發者要在不同公司去
解的謎.
我做的是遊戲軟體,我最近的心態認為我的專業是即便做我不喜歡的遊戲類型,我都能做
得好,我都能願意去了解為什麼對於某些玩家來說這個介面上 0.000 一定要顯示三位小
數點,不能有浮點數計算誤差.而不是兩手一攤就給PM一個電腦浮點數運算本來就會有二
進位誤差的理由.
也就是說我的心態慢慢轉變為我是在做軟體服務,我服務的是我的團隊,讓他們開心,而
把程式寫好少臭蟲只是讓他們開心(就不會來煩我)的其中一個方法.也許有更多方法更
有效果來解這個謎(或是說"人的Bug")
簡單來講,網路上有一個笑話是.
專業就是:你可以用"好,沒問題!"取代心中吶喊的"What the fxxk?"
這樣的心態讓我的心情比較不會受到開發的困擾,反正就是你有問題我來解,我不能解的
我也要講出為什麼我解不了?或是更好的是,我要花多少時間才能解?我給你上中下三策
你要哪一種?
這是為什麼敏捷流行的原因之一,規格總是會改變,不能改變它,就接受它.(但能量總
是守恆,敏捷不代表能解決規格時程人力的三角題.)
第三個是面試
我仍然建議你借位思考,去想想面試官為什麼要問那些問題?
就跟租屋一樣,面試之時剛好是勞資雙方剛見面信任最差的時候,卻要做出最重大的決定
.
我是不是該在這裡上班?vs.我是不是該雇用這個人?
如果雙方是用互相猜忌的心態取代互相合作解決問題的心態.那麼我可預見到職/雇用後
這個關係一定會往惡劣方向發展.而我從你的文章中看到的就是這個心態.
具題來講.面試的101問題是:為什麼你要離開前一間公司?
這個問題的背後是,我僱用你之後,你會不會做一做就跑了?請說服我你不會跑.
應徵者不應專注在回答那個離職的原因.是錢太少,要加班,還是跟誰鬧了甚麼脾氣.(
因為這些可能都會發生在新的公司)
應徵者應該專注在你希望我在這間公司做久.那麼這職位工作及待遇必定值得.(細節都
是可以談,重點是心態問題)
我也換過很多公司.這邊可以給各位一些我用過的理由.往後面對這個問題請不要在憋扭
了.
內心抱怨錢太少->因為我要養家還貸款希望給我家人更好的生活->所以只要給我多點
錢,我就不會走.
前一間公司案件規格管理亂搞->在前一間公司歷練夠了,我希望能夠了解業界優秀公司
的製程->你們肯定是優秀公司吧?難道不是嗎.來談談貴公司的KPI吧.
前一職位時間短->因為部門縮編,技術高層換人,公司方向轉變,我應徵的職能技術未
來不做了->這個理由其實非常好用,見過世面的管理者必定看過起起落落,公司部門縮
編也很常見.公司一下撤資就把人開除,通常都能理解不是員工的問題.面試官除非有
認識的人脈,否則幾乎沒辦法驗證真偽.(這件事是真的發生在我身上,不過對面試
官不需要描述細節)
前一職位沒有跟業界銜接(創業/接案/約聘/臨時工)->因為我想要突破自己的舒適
圈,想要磨練自己除了技術之外待人接物管理的能力->或是更簡單的我現在缺錢,我需
要錢,通常缺錢的員工是好員工,因為他需要需要這份工作不敢隨意離職.
如果這些都太複雜了:
面試開始後,心中請只專注在一件事上:我是來幫忙的,怎麼樣的事情我可以幫得上忙?
(薪水那些的我們事後一定會再談)
對於原PO被問的問題我都不覺得是問題.
年紀問題.答:我有看過比我更資深的優秀開發者.
程式語言.答:Java C/C++/C# JS,我都寫過,其實在我眼中都很像,程式語言在我這個
資歷不太會是問題.
換過很多工作.答:我更能夠了解不同公司不同文化不同職位的差異,以及如何與不同的
職能相處.
最後一個問題是要怎麼判斷公司?
答案是適合自己的公司文化的公司.喜歡技術的就要去技術強者聚集的地方,喜歡安定的
就去規格變動不大一招打天下,到處有職缺的產業.喜歡妹紙的就要自己多去人資,業務
部門串,妹紙不會從天上掉下來.
我們技術人對技術討論得太多,對文化討論的太少.所以老是用技術去找工作,這樣很容
易找到文化上不適合的對象.
(註)
曾經發生過一個關於估計時程真實發生的故事.
PM:那個PG你下周要做甚麼?
PG:你是PM應該告訴我該做甚麼.
PM:喔好,那麼下周做這個部分可以嗎?
PG:這個部份我沒做過,我不知道下周可不可以完成.
PM:那你下周要做甚麼?
(兩人開始鬼打牆)
(PM問那句話的意思其實是下周的進度我要拿去報告,你做不完至少要讓我有東西交差
,而PG無法一次完成,又無法產出估計的時程,或是分段的計畫,導致兩人溝通產生嚴
重落差.最後這故事以PG憤而離職又是一個亂搞的主管做結.而這就是一個資深與資淺
差異的有趣故事,資深在哪裡?資深在旁邊聽然後憋著不能笑)