你是開發工程師、程式設計師還是碼農?
Developers are from Mars, programmers are from Venus, so where are coders from?
不管是CPPer,Javaer,還是PHPer等等,不少開發人員經歷過這樣的困惑:我到底是工程師(SDE,or Developer),程式設計師(Programmer),還是Coder(編碼員)呢?
這個問題看上去似乎沒有什麼意思,甚至不過是一次無聊的名詞解釋。但是,我們以這裡作為所有話題的起點,是因為任何觀點並沒有絕對的對與錯,決定最終選擇的恰恰是看問題的角度——身份當然是其中的一個重要影響力。屁股決定腦袋,這樣的道理無需贅述。
好吧,還是先回到這個話題上來。
軟體開發工程師(SDE,or Developer)是我們大多數軟體開發人員的職業稱呼。既然是一個職業稱呼,其身份與職業自然有密不可分的關係。作為一個開發工程師,其主要職責是在有限的時間內開發出具有實際實用價值的應用程式。
這裡面至少包含兩點。
其一,開發目標。開發工程師的開發目標是使用,沒有使用價值的程式是沒有意義的;
其二,開發成本。既然是職業稱呼,開發工程師的工作往往由商業因素驅動,其開發特點突出表現為大量的功能需求和有限的成本。因此需要開發工程師具備在各種需求(包括時間成本等等)之間尋求平衡的能力。
程式設計師(Programmer)常常被簡單地被歸結為一群追求技術的狂熱分子,他們更多地由興趣驅動,開發一些有挑戰性的東西。這樣說也許並不確切,但毫無疑問,程式設計師這個名稱給人更多的技術感和理想色彩,以至於很多人把他作為自己引以為豪的稱號。我也喜歡自詡為程式設計師,甚至很多IT公司那些數年未寫一行程式碼的技術主管也喜歡自詡為程式設計師。
程式設計師開發習慣的一個顯著特點是追求極致:最新潮的方法,最小的二進位制檔案大小,最少的程式碼量,最強大的功能……時間?唔,開發時間從來不是程式設計師工作的決定因素,它甚至根本不被考慮;執行時間倒是個重要因素,所有程式設計師聽到這個就像貓聞到腥味一樣。
看上去,軟體開發工程師和程式設計師是多麼截然不同的兩種人。難怪有人說,軟體開發工程師來自火星,程式設計師來自金星。
另外一些人給兩種稱呼設定了等級,似乎程式設計師經過一段時間的成長才能成為一個軟體開發工程師。當然,我不認同這樣的說法:不同的追求導致不同的發展而已。
儘管我們給兩種稱呼對映了兩種截然不同的行為,然而實際上,這兩種行為常常同時出現在同一個人的身上:你可能上班時像個開發工程師,下班則更像個程式設計師;他可能對待一些問題時像個開發工程師,對待另一些問題時則更像個程式設計師。
很多軟體專案開發週期過長,一個重要原因就是由於軟體開發工程師在開發當中融入了過多的個人樂趣,開發出了很多個人認為很酷其實不必要的功能。而一個程式設計師哪怕是搗鼓一個只有他自己才用的軟體,他也需要在他力所能及的範圍(成本)內開發出自己滿意的功能。
與上面兩種稱呼不同,Coder(編碼員)常常被稱作軟體業的藍領工人(戲稱“人肉編碼機”)。沒有人願意做這樣的藍領工人,因為軟體業裡的體力勞動者幾乎就是笨蛋的代名詞。
其實,絕大多數開發人員會常常扮演編碼員的角色。想想你拷貝一大段程式碼,修修改改完成一個功能,然後又拷貝另一大段程式碼,修修改改完成另一個功能的經歷,這不正是個Coder的角色麼?要將這些“體力編碼”的片段跟“腦力編碼”的片段分割開來,派給兩種開發人員去做顯然是不切實際的。
即便存在Coder這樣的職業,只是從事將設計翻譯為程式碼的“體力”工作,他們的工作也仍然是舉足輕重並值得尊敬的。任何一個成功的軟體專案,除了得益於其成功的設計,編碼的質量一樣不可或缺。
如果你真的領導著一些商業性專案開發,你應該會深深體會到編碼質量對一個專案舉足輕重的影響,而一個編碼質量令人放心的開發人員在任何組織裡都不會是簡單的Coder角色。
再次強調,不管是SDE,程式設計師,還是Coder,我嘗試做出一些定義並不是為了讓你從無數開發人員當中區分出誰屬於哪一型別。恰恰相反,我認為對於絕大多數開發人員而言,他並不是一直扮演某一種角色,而是在不同時候,不同的方面,表現為不同的角色。
我們區分這些型別,只是為了闡述觀點時,有一個角色的定位。但是,你知道,世界是複雜的,而人不會是一成不變的。
公眾號內回覆“1”帶你進粉絲群!
相關文章
- 你是碼農,開發人員,程式設計師,還是工程師?程式設計師工程師
- 現在的你,是開發工程師、程式設計師還是碼農?工程師程式設計師
- 你是碼農 還是優秀程式設計師?程式設計師
- 【科普】碼農是程式設計師嗎?碼農與真正程式設計師的區別是啥?程式設計師
- 程式設計師是什麼讓你停滯不前—是安逸,還是….程式設計師
- 程式設計師?還是小丑?程式設計師
- 程式設計師40歲後還在寫程式碼,是幸福還是悲哀?程式設計師
- 你是一名努力工作的程式設計師,還是懶惰的程式設計師?程式設計師
- 你的程式設計師是在努力工作還是在偷懶?程式設計師
- 程式設計師or碼農程式設計師
- 老程式設計師被裁員,面試半年未果,同行:都四十了還是碼農,怪誰?程式設計師面試
- 作為程式設計師你是考慮在家辦公還是回程復工程式設計師
- 切圖是UI設計師的工作還是Web前端工程師的工作呢?UIWeb前端工程師
- 如果程式設計師是貓,你是哪隻貓?程式設計師
- 如果程式設計師是貓 你是哪隻貓?程式設計師
- 如何看出程式設計師是老碼農?這篇文章很正經程式設計師
- 你是浪漫的程式設計師嗎?程式設計師
- 碼農Coder、開發人員developer、程式設計師和軟體工程師有什麼區別?Developer程式設計師軟體工程工程師
- 程式設計師月薪2000美元,是多還是少?程式設計師
- 你是程式設計中的“快槍手”還是“慢悠悠”?程式設計
- 是成就還是削弱?AI程式碼生成工具與程式設計師的「相愛相殺」AI程式設計師
- 薑還是老的辣,程式設計師也不例外程式設計師
- 程式設計師你是如何降低NPE的?程式設計師
- 你是程式設計師這塊料嗎?程式設計師
- 程式設計師:你是一個產品程式設計師
- 你是優秀的程式設計師嗎?程式設計師
- 寫程式碼如坐禪:你是哪一類程式設計師程式設計師
- 寫程式碼如坐禪:你是哪一類程式設計師?程式設計師
- 52歲程式設計師的觀點:程式設計要快還是慢?程式設計師
- 用 Tab 還是 Space?谷歌程式設計師分析了10億份程式碼谷歌程式設計師
- 低程式碼開發平臺,真的是為了"幹掉"程式設計師嘛?程式設計師
- 為什麼你還是學不會程式設計程式設計
- CPO的職業定位,是CIO還是工程師?工程師
- 程式設計師不僅僅是寫程式碼程式設計師
- 新手程式設計師首份工作月薪三千,網友:3000元?你是在丟碼農的臉嗎程式設計師
- 【1024程式設計師節】程式設計師,你學程式設計的初衷是什麼?程式設計師
- 職場29歲:作為程式設計師是繼續打工還是創業?程式設計師創業
- 你是一個編寫可除錯程式碼的程式設計師嗎?除錯程式設計師