軟體工程師需要具備什麼樣的特質?面試前你需要知道的事
Facebook分享縮圖

軟體工程師需要具備什麼樣的特質?面試前你需要知道的事

軟體工程師需要具備什麼樣的特質?面試前你需要知道的事
作者: Vivian Yeh     來源: Vivian Yeh| 2022-02-23
你必須常常自省,並且時常檢視自己哪裡有問題、可以怎麼優化,這樣自學自省的模式可以說是軟體工程師必備的技能。

讀者 C 常常私訊我有關程式學習的問題,在初期我會試著引導他自己找到解決的方案,然而當我透過對話越了解這位讀者時,我才漸漸觀察出,為什麼有些人可以成功轉職,但有些人不行的脈絡。
 
我在職場很仰慕的開發者們,在遇到問題時,往往會來一句:「耶?怎麼會這樣?」搭配手邊的鍵盤啪啪啪,一直不斷 Google 尋找能夠解決當下問題的方式,也許當下並不能馬上解決問題,但他們一定很清楚知道自己的問題是出在哪裡。
 
然而我觀察到類似於讀者 C 這樣,常常在學習程式的過程中遇到瓶頸的人,遇到問題時第一步往往不是「找辦法」,而是直接放棄,又或者是抱怨連篇,嫌棄課程教得不好。
 
有些人甚至不曉得自己目前的「問題點」出在哪,往往要仰賴第三人主動點出他們問題。
 
而當別人點出問題時,這樣類型的人往往不會服氣,甚至會開始變本加厲的幫自己找一堆理由。
 
很明顯地,上述特質完全與軟體工程師的本質背離,於是你就可以常常看到面試官問:「如果發生_____問題,你會怎麼跟跨部門的人溝通?你會怎麼解決?平常會自主進修嗎?」
 
為了讓大家能更了解軟體工程師的工作型態,我整理了幾個在職場觀察到的幾個通常軟體工程師看重的特質,雖然有些看起來有點困難,但相信我,這些特質絕對是可以靠後天養成的。
 
 
 
資源整合的能力
 
身為一個軟體工程師,或者是想要進入軟體領域的人,首先一定要學會資源整合的能力。
 
這裡說的資源整合,不一定說你要很了解公司所擁有的籌碼,進而利用、帶出產值,而是所謂「自我盤點、資料蒐集」的資源整合。
 
讓我們先來聊聊如何「盤點自身優勢」,我們又為什麼需要盤點自身優勢?
 
你可以將職涯想像成做菜,如果你想要做出一道道的好菜的話,請問第一件事會是什麼?我相信大家多數的人的一個念頭會是:「那⋯⋯我要做什麼菜?」這時候我們就會打開冰箱看看,自己到底會有哪一些好料可以用?
 
如果沒有任何材料可以做菜那又該怎麼辦?一定要做這道菜嗎?或是有沒有其他選擇?
 
做菜的過程就好像人的職涯,當你要開始找工作,你會開始思考你可以做哪些工作,而這些工作又需要什麼能力?
 
於是你會開始「檢視」自己擁有哪些條件,而這些條件是否可以支持你找到一份理想工作時,這樣的過程就是「盤點自身優勢」。
 
可以協助你盤點技能的工具有很多,舉幾個對我個人非常有幫助的技巧:
 
1.定期編修履歷
2.拿紙筆記錄自身優勢
3.與身邊同儕進行深度的討論,從他人眼中取得對於自我的優勢
 
以上就是屬於關於「盤點個人自身優勢」的資料蒐集,相對於外在訊息的資料搜集,你會發現像是要撰寫自己的優勢,這種自我探索、自我的檢視有時候反而是更困難的,往往需要我們花上一段時間。
 
接著我們來說說什麼叫做「外部資料的整合」:對於軟體工程師的工作日常是這樣的,使用者端會提供功能上的需求,然後我們就要開始進行開發,開發到一半開始有些狀況,於是大部分的軟體工程師會有以下幾個行為:
 
1.Google
2.看書
3.整理好問題問坐你隔壁的某人
4.整理好問題問網路上的人
 
基本上,光是要做到以上一點就足以滿足「外部資料整合」的特質,我會這麼說的原因是,很多人在轉職時基本上就是仰賴隔壁鄰居說、我同學說、我朋友說,而缺乏事實的驗證,或是多方意見的參考,然後你就在還沒開始轉職前,就先敗在這些單純想吃瓜的民眾手上。
 
養成以上提到的這樣兩點技能,可以確保你在未來進入職場時,不會過度鑽牛角尖在單一的技術上,而是學會多方嘗試、尋找不一樣資源,讓自己更有餘韻的解決問題。
 
 
 
不要太差的溝通能力
 
我聽過最有趣的說法就是:「工程師只要會寫程式就夠啦!」
 
你真的以為只會寫程式就足以讓你在軟體業生存了嗎?
 
前幾天我一位認識的軟體業 PM 分享他在公司遇到的趣事,他請後端工程師開發「使用者搜尋」的功能,結果對方做成「搜尋使用者」。
 
從這個例子就不難看出,學會與其他人溝通、協作是多麽重要的一件事,有品質的溝通可以確保雙方的認知是在同一條線上,而不是你猜我猜大家猜猜猜,互相通靈對方要什麼功能
 
你一定多少有聽過前輩會說過:「啊有問題要問。」但重點在於大部分的人就是死不問。
 
當然很多人還是認為工作跟談戀愛一樣,需要旁敲側擊,說話不要太直接。
 
Sorry,那一套在軟體開發領域根本一點用處都沒有!
 
而很多人甚至會敗在:「吼唷⋯⋯人家女森不敢問。」「啊我男生欸,去問問題多沒面子。」這種沒關緊要的面子問題。
 
事實是長這樣子的:你要有能力表述目前你的實力在哪、開發中遇到什麼問題,而你嘗試用了什麼方法解決,當其他人不認同,你要有能力去說服、整理證據給對方,並且採用你的作法。
 
從這裡可以看出,如果你的資源整合能力夠強,再加上你是一個正常可以好好說話的人,又會寫程式,基本上可以打趴很多競爭者了。
 
進了職場會發現,只要你還可以清晰表述出你的問題在哪、可以相互確認需求,同事對你態度至少會尊敬一點,畢竟也是有不少工程師真的以為自己會寫 code 就夠了。
 
 
 
自學自省的能力
 
有一位讀者 W 在自學的過程中,不斷失敗、再爬起來的過程中,跟我分享了幾個狀況:
 
1.他覺得程式很難不知道該怎麼辦
2.會一直到處問人程式很難該怎麼辦
3.別人給的建議他不會聽,他就是覺得程式很難不知道該怎麼辦
 
轉職會失敗有一個很常見的問題是,大家往往會想要把責任往外丟,舉凡是課程有夠爛、電腦有夠爛、家人有夠爛、老師有夠爛、同事有夠爛。
 
追根究底,不就是推卸責任很輕鬆?反正爛的都是別人,有問題的不是我,當然這也有可能是大部分人舒壓的一個管道,但請記得:抒發完情緒依然要知道目前的自己處在什麼狀況。
 
許多人在面對挫折無法調適時,主要是缺乏自學自省的管道,還以為就見招拆招好棒棒,問題怎麼發生不重要,有在採取行動就好棒棒了。
 
但事實是,你必須常常自省,並且時常檢視自己哪裡有問題、可以怎麼優化,這樣自學自省的模式可以說是軟體工程師必備的技能。
 
不然程式有 Bug 怎麼辦?難道你要罵老闆很爛嗎?
 
這不對吧,程式是你寫的,責任就是你的,一定要有辦法可以解決,就好像人生一樣,沒人可以幫你負責。
 
最重要的核心是,即便你進到一間有前輩的公司,在你的職責內依然會有只有你可以處理的問題,別人也不一定有能耐可以幫你解決,此時你也只能加強自己自我解決問題的能力了。
 
那我們該怎麼培養這個特質呢?
 
想要優化自己自學自省的能力有很多種方式,最簡單的就是直接把你目前遇到的問題具象化,看是要用寫的、畫的、說的,找一個你自己習慣的方式,充實自己的自省力吧!
 
 
 
善於閱讀
 
相信大家在職場中,會有很多時候是需要「通靈的」。
 
舉例來說,老闆要你做某個專案時,跟你說:「我要有一種溫暖的感覺!」欸,這個時侯你就要想辦法揣摩老闆的想法了。
 
做了這麼多工作,我覺得軟體工程師很多時候也會接收到一些虛無飄渺的指令,這時候工程師也只能去做一些我們能努力的事:大量閱讀。
 
這裡的閱讀泛指文字相關的渠道,諸如:別的開發者的 github、可以實現此功能的套件官方文件、stack overflow、別人寫的文章、市面上的書籍。
 
以上這些資料都只能透過閱讀來快速吸收,不太可能當有一個使用者的功能需求來了,你還在慢慢看課程吧?
 
所以我會認為閱讀絕對是軟體工程師要養成的一個技能,撇除閱讀障礙的可能性,我們一般人基本上可以用一些方式來讓自己規律的閱讀,並且刻意養成這樣的技能。
 
有閱讀的習慣,不僅可以讓你的人生更加充實,更能在你面對開發上的問題時,有能力快速讀取、吸收新技術,並應用在專案中。
 
這也是為什麼假設你有閱讀的習慣、撰寫筆記的習慣,往往會被面試官所親睞的原因。
 
相信這篇文章中所分享的幾個特質,絕對是去面試時用人主管特別在意的重點中的重點,即便你暫時沒有打算要面試,培養這幾個特質也會讓你在軟體開發的職涯中更加順遂!
 
我是Vivian,我們下次見。
 
關於我:
一名從英文系畢業的前端工程師,喜歡閱讀、寫東西及自我成長。
 
|聯絡我:vivian.enlife@gmail.com
 
本文由vivian授權轉載並同意修訂標題

搶進高科南科

熱門文章