# 資深工程師該有怎樣的樣子

怎麼看待軟體開發工作？自己怎麼看自己？公司或用人主管怎麼看自己？\
試著放開心胸，想像自己是公司或用人單位．借位思考，才不會老是陷入工程師的本位角度在看事情．\
\
首先先回答你　資深與資淺人員的差異

&#x20;

我認為第一個是在估計時程\
\
資淺的開發者比較難估計相對準確的時程．甚至對時程問題會恐慌（註）．通常發生埋頭下去研究或實作，才發生時程爆棚延遲需要加班的狀況（當然年紀輕通常不會覺得加班有甚麼問題，畢竟是做自己喜歡的工作）．\
（註）曾經發生過一個關於估計時程真實發生的故事．放在最後分享．\
\
資深的開發者，望文生義就是做過的東西多，所以比較容易舉一反三，雖然專案總是不能掌控，但是憑以往經驗猜，都能猜的八九不離十．特別是一些非技術性的時程（預留規格變動的時間，預留除錯的時間），有時抓開發時程的Buffer時，靠的是一種對公司對專案對團隊綜合的感覺或Fu\~．\
\
公司一定是希望快一點完成，但是也要做完才算數．所以多少時程換來多少規格？多少效能安全性？開發人員要能夠解釋出來，不是單純的瞞天喊價．瞞天喊價久了公司文化就會出問題．在這條規格線上一定有人是不懂技術的，當然有必要解釋給對方聽．一邊我不想解釋，一邊我不想聽．那最後就是分手離婚情殺的悲劇．

&#x20;

第二個是心態的轉變\
\
工程師多半是喜歡且擅長對付機器的，喜歡應付人的早早就轉行去拉保險了(真實故事)．\
我也曾為了做出甚麼可擴充系統，自動產生程式碼系統，看到自己寫的AI會照著規畫對著自己發炮興奮不已．\
但是公司或專案真的要的是甚麼？甚麼才能產生價值？這個問題是開發者要在不同公司去解的謎．\
\
我做的是遊戲軟體，我最近的心態認為我的專業是即便做我不喜歡的遊戲類型，我都能做得好，我都能願意去了解為什麼對於某些玩家來說這個介面上 0.000 一定要顯示三位小數點，不能有浮點數計算誤差．而不是兩手一攤就給PM一個電腦浮點數運算本來就會有二進位誤差的理由．\
\
也就是說我的心態慢慢轉變為我是在做軟體服務，我服務的是我的團隊，讓他們開心，而把程式寫好少臭蟲只是讓他們開心（就不會來煩我）的其中一個方法．也許有更多方法更有效果來解這個謎（或是說"人的Bug"）\
\
簡單來講，網路上有一個笑話是．\
\
專業就是：你可以用"好，沒問題！"取代心中吶喊的"What the fxxk?"\
\
這樣的心態讓我的心情比較不會受到開發的困擾，反正就是你有問題我來解，我不能解的我也要講出為什麼我解不了？或是更好的是，我要花多少時間才能解？我給你上中下三策\
你要哪一種？\
\
這是為什麼敏捷流行的原因之一，規格總是會改變，不能改變它，就接受它．（但能量總是守恆，敏捷不代表能解決規格時程人力的三角題．）

第三個是面試\
\
我仍然建議你借位思考，去想想面試官為什麼要問那些問題？\
就跟租屋一樣，面試之時剛好是勞資雙方剛見面信任最差的時候，卻要做出最重大的決定\
\
我是不是該在這裡上班？ｖｓ．我是不是該雇用這個人？\
\
如果雙方是用互相猜忌的心態取代互相合作解決問題的心態．那麼我可預見到職／雇用後這個關係一定會往惡劣方向發展．而我從你的文章中看到的就是這個心態．\
\
\
具題來講．面試的１０１問題是：為什麼你要離開前一間公司？\
這個問題的背後是，我僱用你之後，你會不會做一做就跑了？請說服我你不會跑．\
\
應徵者不應專注在回答那個離職的原因．是錢太少，要加班，還是跟誰鬧了甚麼脾氣．（因為這些可能都會發生在新的公司）\
\
應徵者應該專注在你希望我在這間公司做久．那麼這職位工作及待遇必定值得．（細節都是可以談，重點是心態問題）\
\
我也換過很多公司．這邊可以給各位一些我用過的理由．往後面對這個問題請不要在憋扭了．\
\
內心抱怨錢太少－＞因為我要養家還貸款希望給我家人更好的生活－＞所以只要給我多點錢，我就不會走．\
\
前一間公司案件規格管理亂搞－＞在前一間公司歷練夠了，我希望能夠了解業界優秀公司的製程－＞你們肯定是優秀公司吧？難道不是嗎．來談談貴公司的ＫＰＩ吧．\
\
前一職位時間短－＞因為部門縮編，技術高層換人，公司方向轉變，我應徵的職能技術未來不做了－＞這個理由其實非常好用，見過世面的管理者必定看過起起落落，公司部門縮編也很常見．公司一下撤資就把人開除，通常都能理解不是員工的問題．面試官除非有認識的人脈，否則幾乎沒辦法驗證真偽．（這件事是真的發生在我身上，不過對面試官不需要描述細節）\
\
前一職位沒有跟業界銜接（創業／接案／約聘／臨時工）－＞因為我想要突破自己的舒適圈，想要磨練自己除了技術之外待人接物管理的能力－＞或是更簡單的我現在缺錢，我需要錢，通常缺錢的員工是好員工，因為他需要需要這份工作不敢隨意離職．\
\
\
如果這些都太複雜了：\
面試開始後，心中請只專注在一件事上：我是來幫忙的，怎麼樣的事情我可以幫得上忙？\
（薪水那些的我們事後一定會再談）\
\
\
對於原ＰＯ被問的問題我都不覺得是問題．\
年紀問題．答：我有看過比我更資深的優秀開發者．\
程式語言．答：Java C/C++/C# JS，我都寫過，其實在我眼中都很像，程式語言在我這個資歷不太會是問題．\
換過很多工作．答：我更能夠了解不同公司不同文化不同職位的差異，以及如何與不同的職能相處．

最後一個問題是要怎麼判斷公司？\
\
答案是適合自己的公司文化的公司．喜歡技術的就要去技術強者聚集的地方，喜歡安定的就去規格變動不大一招打天下，到處有職缺的產業．喜歡妹紙的就要自己多去人資，業務部門串，妹紙不會從天上掉下來．\
\
我們技術人對技術討論得太多，對文化討論的太少．所以老是用技術去找工作，這樣很容易找到文化上不適合的對象．&#x20;

&#x20;

（註）曾經發生過一個關於估計時程真實發生的故事．\
ＰＭ：那個ＰＧ你下周要做甚麼？\
ＰＧ：你是ＰＭ應該告訴我該做甚麼．\
ＰＭ：喔好，那麼下周做這個部分可以嗎？\
ＰＧ：這個部份我沒做過，我不知道下周可不可以完成．\
ＰＭ：那你下周要做甚麼？\
（兩人開始鬼打牆）\
\
（ＰＭ問那句話的意思其實是下周的進度我要拿去報告，你做不完至少要讓我有東西交差，而ＰＧ無法一次完成，又無法產出估計的時程，或是分段的計畫，導致兩人溝通產生嚴重落差．最後這故事以ＰＧ憤而離職又是一個亂搞的主管做結．而這就是一個資深與資淺差異的有趣故事，資深在哪裡？資深在旁邊聽然後憋著不能笑）

作者NDark (溺於黑暗)\
看板Soft\_Job\
標題Re: 資深工程師該有怎樣的樣子？\
時間Sun Mar 24 03:00:34 2019

<https://www.ptt.cc/bbs/Soft_Job/M.1553367638.A.27B.html>

***

Ziv:\
\
1\. "心態慢慢轉變為我是在做軟體服務，我服務的是我的團隊，讓他們開心，而把程式寫好少臭蟲只是讓他們開心"\
2\. 專注在自己對於公司的價值: 怎麼樣的事情我可以幫得上忙？\
3\. 找一個適合自己的公司文化的公司

***
