隨著科技的進步,工程師成為許多人選擇的職業,而優秀的工程師與糟糕的工程師究竟有什麼差別?是超高的智商與天分?有耐心又耐操?本文整理了幾個傑出工程師的特質,身為工程師的你,可以檢視自己是否符合這些特質!如果你想轉職工程師,也可以看看自己是否具備成為優秀工程師的特質!

對新技術接受度高
資訊科技產業的變遷往往是瞬息萬變,即便是再永久不衰的程式語言,都有版本更新的時候,更不用說程式語言如雨後出筍般冒出。因此,是否願意學習新技術就成了能否續航的關鍵。身為一名傑出的工程師,必須擁有學習新技術的熱忱與態度,保持與時俱進的學習狀態。想像今天你是一名資工系學生,花了四年時間精通某一種程式語言,但當你出了社會找到第一份工作後,才發現這幾年的科技發展早已將你學習的這門程式語言打入冷宮,曾經的專業如今失去了價值,不但浪費時間成本,所費的心力也付諸東流。
另外,一般的工程師,通常是因為工作需要才去學習某項技能,而傑出的工程師會時常保持敏銳的市場嗅覺、注意趨勢話題,對於各種新知保持開放的學習心態,提早學習新技術,而不是等到工作需要才匆忙學習。更重要的是 - 學習新技術之後,你必須知道如何應用?可以用在哪裡?越早意識到這一點,越能領導市場。
不知道當紅科技趨勢?快來趨勢專欄、議題專欄跟上潮流!
細心、耐心、好邏輯!
程式就像一台機器,而程式碼是大大小小的零件,環環相扣,若缺少一個便會影響運轉。因此寫程式必須要經常留意細節,以免一步錯,步步錯。此外,debug 的過程,細心也是非常重要的,除了細心以外,耐心、邏輯清楚也是可以找出錯誤的關鍵。
程式當中的邏輯首先出現在語言本身 - 語言架構的撰寫、演算法和資料架構的運算。而當工程師接手一個案子的初期,必須先將執行目標轉換成程式語言,再將語法組織起來,並且不斷的優化、debug,這樣無限循環的過程往往容易消磨人的耐心;除此之外,工程師在開發軟體時,會閱讀大量的技術文件,需要花費大量的精力與時間,這就考驗了工程師的邏輯能力與耐心程度。 畢竟,在遇到問題時,不能單單靠猜想來解決,而是得透過不斷的分析以及執行測試,由此可知,擁有系統性的邏輯思維在撰寫程式時能提升不少開發效率。
【延伸閱讀】 當個有戰力的工程師!先搞清楚修Bug和理解使用者其實是同一件事! 寫程式不再崩潰!介紹5個Google工程師都在用的好習慣
學習換位思考!
「我明明就做得很好,是他自己不會操作」,這可能是許多工程師的 OS,另外,也有許多公司在研發新產品或新功能時,經常在產品上架後,才不斷補充功能介面。
因為你自己是設計者,往往最熟悉界面的操作,所以在設計的過程中,必須訓練自己換位思考,用「使用者」的角度去修改、開發。這部分也考驗了你的溝通能力及團隊合作 - 寫程式絕不是閉門造車,你不可能只與機器溝通!工程師必須有賴其他部門成員的支援,不斷的跟各部門協調、配合,才能做出理想的產品。
不論你是初學者還是程式老手,快加入程式丼起來,一起跟大家交流更多知識吧!
創造力及變通力
與其複製、貼上程式碼,不如好好整理自己的思路,創造出屬於符合自己需求且有用的程式 - 沒有絕對正確的程式碼,只有適合的程式碼,並不是每個程式碼都適用於每個情況,因此即使你參考了別人的程式,也需要變通、修改。
另外,寫程式時還必須考慮到程式碼的簡潔性。「寫代碼的碼農」跟「刪代碼的清道夫」究竟誰該被嘉獎?其實,企業愛用懂得刪程式碼的人才 - 你必須知道那些程式碼是冗餘的,刪除這些程式碼才能確保程式在保證功能完整性的情況下高效運作。
【延伸閱讀】 會寫程式只是基本,「懂得刪程式碼」的工程師才是企業要的人才!
開發節省時間的工具
曾經負責 Facebook 軟體基礎建設團隊的軟體工程師 Bobby Johnson 觀察,團隊中表現出色的人多數開發了工具,這個動作看似和績效沒有直接的關係,但卻大大提升了往後工作的效率,這些工具包含部署程式、監測系統等。你也可以想想生活中有沒有什麼重複性高的工作項目,例如:數據結構化、測試數據的生成等,把這些工作透過程式語言來節省工作時間。
【延伸閱讀】 靠Python甩掉機械式作業!7大常見煩人場景,用程式語言來解放
總結
眼尖的你應該有發現,以上這四大優秀工程師的特質,都和技術本身無關。其實工程師並非如大部分的人想像的,只需要擁有技能就足以勝任,要成為一位傑出的工程師,「硬技能」和「軟實力」都是不可或缺的! 如果你是正準備踏入程式圈的新鮮人,不妨提前培養這些特點,讓自己在往後的工程師之路能更順利。
你想學習更多嗎?
從LeetCode學演算法

- LeetCode平台的使用方法導引
- 面對程式面試的準備策略和建議
- 詳細解說演算法基礎,加強相關概念
- 透過題目演練深化演算法理解,並強化自身解題能力