軟體工程師從優秀到卓越的進化之路

卓越的工程師能夠在完美主義和實用主義之間找到平衡——既能夠做出熟練、快速​​但是劣跡斑斑的解決方案,也能用簡潔、優雅並且健壯的方法解決問題,他們能夠明智地選擇適合於所給問題的解決方法。一些稍欠火候的工程師看起來缺少對於必要細節的極致追求。另一些則被困在完美主義者模式中。
評論
評論

本文轉自合作媒體伯樂在線 〈 卓越程序員和優秀程序員有哪些區別?〉。

「卓越(great)工程師和優秀(good)工程師有哪些區別?」這個問題來自 Quora。本文摘編了兩個熱門回覆。

Russel Simmons(Yelp 前 CTO &聯合發起人)

對這個問題來說,我的答案不具有普遍性,但是我確實注意到在一些卓越的工程師身上有一些不凡的品質。

  • 能夠在完美主義和實用主義之間找到平衡——卓越的工程師既能夠做出熟練、快速

    但是劣跡斑斑的解決方案,也能用簡潔、優雅並且健壯的方法解決問題,他們能夠明智地選擇適合於所給問題的解決方法。一些稍欠火候的工程師看起來缺少對於必要細節的極致追求。另一些則被困在完美主義者模式中。
  • 樂意進行除錯與 Bug 修正——平庸的工程師經常對 debug 感到厭惡和恐懼,即便是他們自己的程式也是如此。卓越的工程師則會以丘吉爾般的堅韌潛入和深挖。如果最終證明 bug 在他們自己的程式之外,他們可能也不會對此感到高興,但是一定會找到它。
  • 良性的懷疑態度——一個優秀的工程師會得出一個看起來可行的解決方案後收工。但是一個卓越的工程師直到進行了大量的測試之後才會相信他們自己的程式。這在數據分析和系統管理中也很常見。普通工程師可能在看到一個看似無害的不符合之處時,並不在意。如果一個卓越的工程師看到同樣的東西,他就會懷疑這可能是造成更大問題的導火索,並且深入研究。卓越的工程師總是傾向於做更多的事。

Davin Lafon(Davin Lafon)

  1. 優秀的工程師會寫自己必須寫的程式,而卓越的工程師還會寫自己本不需要寫的程式。
  2. 從程式的行數來講,成為卓越的工程師並不是意味著他們可以多快地寫出一個程式庫,而是可以多快地在不丟棄功能和性能的條件下縮減其程式。
  3. 如果你開始跟他們爭論「最好的程式語言是什麼」這個問題,他們會微笑著還是看起來厭煩地換個話題?或者他們開始向你喋喋不休地講述?如果是最後一種,那他就不是一個卓越的工程師。
  4. 與程式或者語言無關。也與「痴迷」、「訣竅」、「天賦」或者其他任何假掰術語無關。很簡單地——他們是否對軟體工程的理解超越了程式的層次?他們是否對軟體工程的理解達到了架構級別?或者他們是否能夠深謀遠慮?他們能否在對問題的數學抽象和和軟體工程之間平滑地轉化?他們能夠和股東工作並且理解他們對於系統的需求嗎?還是他們開發出自己想要編寫的系統,然後認為這就是你真正應該想要的系統?有人可以成為卓越的駭客或者工程師,但那並不意味著他是一個卓越的軟體工程師。我這麼說並沒有用來價值衡量——一個卓越的工程師的確就是一個卓越的工程師…但是你畢竟不能讓一個天才焊接工去設計一座橋。
  5. 當其他人都在屋子裡迷戀某個解決方案或者新的東西時他們能否「發現缺陷」,更甚,他們是否能用他們能聽懂的方式向屋子裡的人解釋這個重要的缺陷。
  6. 能否傾聽?如果不能,那就不是卓越的軟體工程師。

還意猶未盡的讀者,也可以參考 〈 六大特質看出軟體工程師好壞 〉。

《延伸閱讀》

向矽谷的 90 後取經 如何成為受歡迎的工程師?

我是怎麼靠自學成為工程師的:懂原理比應用更重要

為何工程師完成最後 20% 的工作時間跟之前的 80% 一樣多?

5 種高效率的軟體工程師角色

做一個網站多少錢:如果你不是工程師,不要說簡單!

40 歲的哀愁:拼不過新鮮的肝靈活的腦,工程師面臨中年危機

下班後,堅持自學有多難?

工程師的江湖:技術為外功,思維乃內力

歡迎加入「Inside」Line 官方帳號,關注最新創業、科技、網路、工作訊息

好友人數

精選熱門好工作

Software Manual Test 手動測試工程師

樂購蝦皮股份有限公司
臺北市.台灣

獎勵 NT$15,000

iOS 工程師

FunNow
臺北市.台灣

獎勵 NT$15,000

iOS工程師

Omlet Arcade 美商歐姆雷特
臺北市.台灣

獎勵 NT$15,000

評論