2024-08-28|閱讀時間 ‧ 約 21 分鐘

[前端自學轉職攻略] 28. 怎麼準備面試:編碼面試篇(coding)?

練習不同的資料結構與演算法的 LeetCode 題目


「編碼面試」一般會詢問一個需要實作的問題,如:

給定一個整數數組(nums)和一個目標值(target),
請在數組中找出相加等於目標值的兩個元素,並返回它們的索引。


學習演算法跟資料結構


準備編碼面試不外乎就是上 LeetCode 刷題。但最好不要光隨機選題,而是把主要的資料結構和演算法做過一輪。


資料結構 (Data Structures)

  • 陣列 (Array)
  • 鏈結串列 (Linked List)
  • 堆疊 (Stack)
  • 佇列 (Queue)
  • 雜湊表/哈希表 (Hash Table)
  • 堆積 (Heap)
  • 樹 (Tree)
  • ...

演算法 (Algorithms)

  • 排序 (Sorting)
  • 搜尋 (Search)
  • 滑動視窗 (Sliding Window)
  • 雙指標/雙指針 (Two Pointers)
  • 最短路徑演算法 (Shortest Path Algorithm)
  • 動態規劃 (Dynamic Programming, DP)
  • ...



編碼面試的類型


線上測試(Machine Coding)


線上測試是讓受試者直接在網站上進行線上測驗。平台會針對正確性(correctness) 與效能(efficiency) 來核算分數。由於通過後可能還會有人工驗證,因此仍需要考慮程式碼的可讀性。


真人面試(In Person)


另一種類型是在面試官前即時作答,這種類型不要埋頭寫 code,多跟面試官討論。實作前最好先寫 psudo code 說明想法。

為什麼明明可以用機器考,卻要浪費錢安排一個人看著你寫程式?
除了避免作弊外,很重要的一點是能評估求職者是否為理想的合作對象。因此,若能在面試過程中展現出好的溝通能力,像是提出好的問題、清楚的表達自己的想法等,都能夠提高面試的通過機率。

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.