本·羅戈揚

軟體工程面試與其他技術面試一樣,需要充分的準備。有許多主題需要涵蓋,以確保您準備好應對有關演算法、資料結構、設計、最佳化以及不斷增長的主題的連續問題。

因此,我在最後一輪面試中建立了一個清單,涵蓋了許多熱門話題。

為了幫助您追蹤進度,我們針對下面列出的相同問題編制了一份全面的清單; 該列表可以在這裡找到

聆聽經典熱身

  1. fizzbuzz

  2. 子陣列和等於 K

  3. 陣列:左旋轉

  4. 字串:製作字謎詞

  5. 第 N 次斐波那契數

你怎麼做的?花點時間對這些經典作品進行評價。我們在面試過程中的某個時刻被問到了其中大部分問題,而且通常是在早期就被問到的淘汰式問題。它們通常與演算法和資料結構關係不大,但仍然需要對循環和陣列有很好的理解(是的,陣列是一種資料結構)。

演算法和資料結構

預習問題

在觀看有關資料結構和演算法的影片內容之前,請考慮嘗試以下這些問題。看看你能否回答他們。這將幫助您知道要關注什麼。

  1. 985. 查詢後偶數之和

  2. 657. 機器人回歸原點

  3. 961. 2N 陣列中的 N 重複元素

  4. 110.平衡二元樹

  5. 3. 最長無重複字元的子字串

  6. 19. 從清單結尾刪除第 N 個節點

  7. 23. 合併 k 個排序列表

  8. 31. 下一個排列

演算法和資料結構影片

資料結構

  1. 資料結構與演算法 #1 --- 什麼是資料結構? --- 影片

  2. 多調光--- 影片

  3. 動態陣列 --- 影片

  4. 調整陣列大小--- 影片

  5. 資料結構:鍊錶--- 影片

  6. 核心鍊錶與陣列--- 影片

  7. 指針到指針 --- 影片

  8. 資料結構:樹 --- 影片

  9. 資料結構:堆 --- 影片

  10. 資料結構:哈希表 --- 影片

  11. 電話簿問題---影片

  12. 資料結構:堆疊和佇列 --- 影片

  13. 使用堆疊後進先出--- 影片

  14. 資料結構:計算機科學速成課程#14 --- 影片

  15. 資料結構:嘗試 --- 影片

演算法

  1. 演算法:圖搜尋、DFS 和 BFS --- 影片

  2. BFS(廣度優先搜尋)和DFS(深度優先搜尋) --- 影片

  3. 演算法:二分查找---影片

  4. 二元搜尋樹回顧--- 影片

  5. 用於面試的 Python 演算法 --- 影片

  6. 演算法:遞歸---影片

  7. 演算法:冒泡排序--- 影片

  8. 演算法:歸併排序--- 影片

  9. 演算法:快速排序---影片

大 O 表示法

  1. 大 O 表示法與時間複雜度簡介(資料結構與演算法 #7) --- 影片

  2. 哈佛 CS50 --- 漸近符號--- 影片

  3. 演算法複雜度分析的簡單介紹--- Post

  4. 備忘錄--- 帖子

動態規劃

  1. 動態規劃(像程式設計師一樣思考)---影片

  2. 演算法:記憶化與動態規劃 --- 影片

  3. 6 .006:動態規劃 I:斐波那契、最短路徑 --- 影片

  4. 6.006:動態規劃 II:文字對齊、二十一點 --- 影片

  5. 動態規劃 --- 帖子

字串操作

  1. 編碼面試問答:最長的連續字元--- 影片

  2. Sedgewick --- 子字串搜尋--- 影片

面試問題演練

  1. 谷歌編碼面試 --- 普世價值樹問題--- 影片

  2. Google 編碼面試問題和答案 #1:第一個重複出現的字元--- 影片

  3. 在二元搜尋樹中找到最小和最大元素--- 影片

  4. 求二元樹的高度--- 影片

  5. 檢查二元樹是否為二元搜尋樹--- 影片

  6. 什麼是尾遞歸?為什麼這麼糟? --- 影片

學後問題

現在您已經學習了一些,並觀看了一些影片,讓我們嘗試更多問題!

  1. 越大越好

  2. 6.之字折線轉換

  3. 7. 反轉整數

  4. 40. 組合和 II

  5. 43. 字串相乘

  6. 拉里的陣列

  7. 短回文

  8. 65. 有效號碼

  9. 越大越好

  10. 完整計數排序

  11. 莉莉的家庭作業

  12. 普通孩子

  13. 459. 重複子字串模式

  14. 27. 刪除元素

  15. 450. 刪除 BST 中的節點

  16. 659. 將陣列分割成連續的子序列

  17. 最大值有界的子陣列數

  18. 組合和 IV

  19. 買賣股票的最佳時機(有冷卻時間)

  20. 最長重複字元替換

  21. 成對交換節點

  22. 二元樹右側視圖

  23. 展平嵌套列表迭代器

  24. 二元樹層次順序遍歷

  25. 二元搜尋樹迭代器

  26. 對鏈最大長度

  27. 將鍊錶拆分為多個部分

操作性程式設計問題

有些公司不會問你演算法問題。相反,他們可能會更專注於實施和營運問題。這些通常更小眾,涉及實際問題,例如循環資料和執行某種任務。這些類型的問題通常不需要太多練習,因為更多的是了解陣列和 HashMap 等基本概念並追蹤您對它們所做的事情。

  1. 袋鼠問題

  2. 打破記錄

  3. 查找字串迭代器

  4. 不知道!

  5. 程式設計師的日子

  6. 排行榜

  7. 詞序

  8. 夏洛克和方塊

  9. 均衡陣列

  10. 蘋果和橘子

  11. 更多操作風格問題

系統設計影片

系統設計問題是至關重要的問題,表明您不僅僅是一名編碼員。身為工程師,您需要能夠思考大局。某些服務屬於哪裡,您需要什麼樣的伺服器,您將如何管理流量等等。所有這些想法都表明您能夠設計軟體,而不僅僅是編寫人們告訴您編寫的程式碼。

  1. 停車場系統---影片

  2. 什麼是應用程式--- 影片

  3. 優步設計---影片

  4. Instagram --- 影片

  5. Tinder 服務--- 影片

作業系統

作業系統問題比較少見,但是對執行緒、調度、記憶體等概念有紮實的理解是有好處的,即使只是基本的理解。當被問到進程和線程有什麼區別而不知道答案時,這是非常尷尬的。

  1. 常見作業系統面試問題

  2. 什麼是翻譯後備緩衝區?

  3. 為什麼循環法可以避免優先反轉問題?

  4. 中斷與系統呼叫---檔案系統中的「inode」是什麼?

  5. 作業系統面試題目及答案 --- 第一部分

  6. 什麼是內核 --- Gary 解釋

  7. 循環演算法教程(CPU調度)

  8. LRU 快取的魔力(Google 開發 100 天) --- 影片

  9. MIT 6.004 L15:記憶體層次結構--- 影片

  10. 中斷---影片

  11. 調度---影片

執行緒數

  1. 用戶級線程與內核級線程

  2. 行程和線程簡介--- 影片

  3. 進程和線程之間的區別 --- 佐治亞理工學院 --- 高級操作系統--- 影片

  4. 分叉和多線程之間的區別

物件導向

與作業系統類似,並不是每次面試都會問你有關物件導向程式設計的問題,但你永遠不知道。您需要確保記住計算機 162 課程中的基礎知識。

  1. Java 程式設計教學 --- 49 --- 繼承--- 影片

  2. Java 程式設計教學 --- 55 --- 多態性簡介--- 影片

  3. Java 程式設計教學 --- 58 --- 抽象類別與具體類別--- 影片

  4. Java 程式設計教學 --- 57 --- 重寫規則--- 影片

  5. Java 程式設計教學 --- 59 --- 保存物件的類

  6. 物件導向程式設計---影片

設計模式

如果您像我們一樣,我們不會被教導所有各種設計模式。因此,最好了解它們的工作原理以及使用它們的原因。一些面試問題可以很簡單,例如“為什麼要使用工廠類?”

  1. 工廠設計模式---影片

  2. 觀察者設計模式---影片

  3. 適配器設計模式---影片

  4. 立面設計模式---影片

  5. 責任鏈設計模式---影片

  6. 解譯器設計模式---影片

  7. 單例設計模式教學--- 影片

  8. 第 6 章(第 1 部分)--- 模式(影片) --- 影片

  9. Head First 設計模式--- 影片

SQL

這是最後一節。你們中的許多人可能不會被問到那麼多 SQL 問題。不過,我始終認為放在後口袋是件好事。

SQL --- 問題

  1. 262. 行程和用戶

  2. 601. 體育場人流量

  3. 185. 部門前三薪資

  4. 626.交換席位

  5. 駭客排名報告

  6. 177.第N最高薪水

  7. 對稱對

  8. 職業安置

  9. 奧利凡德的庫存

SQL --- 影片

  1. IQ15:6 個 SQL 查詢面試問題--- 影片

  2. 了解 ROW_NUMBER 和分析函數--- 影片

  3. 分析函數的高級實現--- 影片

  4. 分析函數的高級實現第 2 部分--- 影片

  5. 聰明的貓頭鷹 SQL 影片--- 影片

SQL 後問題

  1. 二元樹節點

  2. 氣象觀測站 18

  3. 挑戰列印素數

  4. 595.大國

  5. 626.交換席位

  6. SQL 面試問題:3 個技術篩選練習(針對資料分析師)

面試可能會很困難,因為你會覺得自己沒有任何進展。擁有本學習指南將幫助您追蹤您的進度並讓您更好地了解自己的表現!

祝你好運!

另外,如果您想閱讀/觀看更多精彩的貼文或影片:

在 SaturnCloud 上使用 Jupyter Notebook 連接到大查詢第 2 部分

身為資料科學家你應該閱讀的三本書

Hadoop 與關聯式資料庫

算法如何變得不道德和有偏見

如何改善資料驅動策略

如何開發穩健演算法

資料科學家必須具備的 4 項技能

SQL 最佳實踐 - 設計 ETL 影片


原文出處:https://dev.to/seattledataguy/the-interview-study-guide-for-software-engineers-764


共有 0 則留言