軟體工程師 面試注意事項

敝公司最近在徵才(助理工程師/初級工程師),筆者有幸擔任其中一面的面試官,來分享一下筆者個人「面試」的心得,不代表所有面試官都是同樣的想法。

履歷

筆者有看到許多履歷的工作經歷都很簡短,例如:
    
工作經驗:

XX 公司 C# 維護工程師
		維護既有專案與完成主管交辦事務

XX 公司 C# 軟體工程師
		使用 C# 開發網頁
    

比較好的寫法應該要盡量把使用到的技術寫出來,一方便能夠更好的了解你的能力,至少你知道你所使用的技術,另外一方面人資使用關鍵字搜尋履歷時你的履歷才會跑出來,例如:
    
工作經驗:

XX 公司 C# 維護工程師
		使用 C# 和 JavaScript 維護既有的 ASP.NET Core 6 專案,負責部署和更新到 IIS
        使用 SQL 語法查詢和更新 Oracle 資料庫資料,建立了 3 個 view 和 2 個 Stored Procedures
        
XX 公司 C# 軟體工程師
		使用 ASP.NET Core MVC 8 建立 10 個 API ,使用 Entity Framework Core 連接 SQL Server 資料庫
        使用 Nuxt3 (Vue3) 建立 5 個功能頁面,採用 Tailwind CSS 和 shadcn-vue 元件
        專案採用前後端分離,使用 Git 版本控制,透過 Jenkins 自動部署到公司測試機
    

另外如果有提供可以下載的履歷、附件等,最好在前面加上自己的名字,因為面試官會下載很多檔案,如果每個下載的檔名都是:
  • 履歷表01.doc
  • 履歷表第二版
  • 英檢證明(1).jpg
這樣沒有打開檔案都不知道是誰的,每次下載都要手動重新命名。如果有好好命名,例如:
  • 王大頭_中文履歷.pdf
  • 王大頭_英文履歷.pdf
  • 王大頭_多益750分.pdf
面試官在印象上一定會有加分。

履歷中附上的連結請一定要使用「無痕分頁」檢查。有許多履歷中提供的連結都無法查看,點進去後會自動跳轉到該網站的登入頁面。分享連結時請確保這個連結別人可以閱讀,而不是只有登入自己帳號才能瀏覽(例如 /profile ,就會看到當前登入使用者的個人資料),面試官在看到這種時通常都會很傻眼,代表你沒有檢查或是你根本不了解這些最基礎的,非常扣分。

作品

筆者在面試前都會很認真的看求職者提供的 1~2 個專案,了解求職者的能力,並且嘗試找出一些問題或是可以討論的地方,如果沒有附上作品會比較難「開話題」。

因為目前面試的主要職缺是 初級工程師 ,這裡整理一下筆者在這些專案中比較常見的問題:
  • 編碼格式:專案中出現不同的編碼格式,例如 Big5 和 UTF-8
  • git commit 數量很少:有些人是把大家一起做的專案從別人的儲存庫中下載下來直接上傳,裡面就只有一個 commit ,很難區分這是誰做的。筆者就發生前一天好不容易看完你的程式碼,結果大部分都是同學寫的,你只有寫一個編輯頁面,難怪問什麼都不知道...
  • 不夠好的程式碼儲存方式:有許多人是把整個專案放到 Google 雲端硬碟中分享,還有看過把程式碼貼在 word 或圖片中當作附件下載的。如果不知道要放在哪裡,這裡一律建議使用 GitHub ,對於軟體工程師來說花點時間學習 GitHub 絕對不吃虧
  • 密碼使用明文儲存:一般都會把密碼進行雜湊再存到資料庫中,而不會直接把密碼直接儲存到資料庫中,非常不安全
  • 直接使用 id 驗證身份:有些人會把使用者 id 儲存在 cookie 或 LocalStorage 中,要驗證身份時直接看這裡面的 id ,但是這樣做非常不安全,那使用者不就可以一個一個嘗試修改 cookie 中的 id ,只要試成功了就可以冒充其他使用者?可以透過 JWT 來解決,有興趣的直接搜尋 JWT 這個關鍵字就可以了

衣著

以軟體工程師來說,絕大部分的公司上班都不需要穿西裝打領帶,基本上就是牛仔褲、西裝褲搭配比較休閒的襯衫、Polo 衫。
面試時也差不多就可以了,不需要西裝領帶,但是最基本一定要長褲+有領子的衣服,就像是:



千萬不要穿個 運動鞋 + 短褲 + T恤 就過來面試,筆者就有遇到一個應屆畢業生是這樣的穿著,請大家不要學習。

就算是視訊面試也不要因為是在家裡就隨便穿,請還是比照上面的建議穿著。另外如果是視訊面試請記得要整理房間,或是開啟背景,不然很亂的房間很可能會一直打擾到他的思緒。

準時

台北很難停車,如果騎機車/開車請一定要提早再提早出門,在不熟悉的地方光找車位很可能就要超過半小時了,如果早到也不要急著進去要面試的公司,可以先在附近了解一下環境,畢竟未來很有可能在這裡工作。太早到可以先在便利商店坐一下預想一下面試,大概提前 10~15 分鐘左右進要面試的公司就可以了。公司內大家都在上班,很可能有其他安排或是有其他人在面試,太早到會打擾到對方、對對方造成困擾。

具備的特質

除了寫程式本身以外,如過有以下能力/特質是非常加分的:
  • 持續學習:資訊科技日新月異,每天都有成千上萬的人免費的貢獻開源程式碼,新技術是怎麼學都學不完,一定要具備持續學習的能力/心態
  • 使用 AI:例如 GitHub Copilot,開發速度幾乎是 * 1.5 以上,就算看不懂錯誤,直接丟 ChatGTP 都可以替你解答大半。不是說要依賴 AI ,而是要願意接受新技術,AI 不會淘汰軟體工程師,但是會淘汰不會用 AI 的軟體工程師。

提問

通常最後都會讓你詢問想問的問題,這裡給予幾個筆者覺得問的比較好/印象深刻的問題:
  • 我應該要優先加強哪個部分才能勝任這個職缺?
  • 對於我剛入職的前一到三個月期望我完成什麼工作?達成什麼目標?
  • 你為什麼留在這家公司
  • 目前公司的程式碼開發流程和 Code review 機制是什麼?


歡迎補充~~~

祝大家求職順利!

留言

張貼留言

如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com