」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 我的 Amazon SDE 面試經驗 – 5 月 4 日

我的 Amazon SDE 面試經驗 – 5 月 4 日

發佈於2024-11-08
瀏覽:613

我的 Amazon SDE 面试经历 – 2024 年 5 月

2024 年 5 月,我有机会面试亚马逊的软件开发工程师 (SDE) 职位。这一切都始于一位招聘人员通过 LinkedIn 联系我。我很惊喜,因为它总是令人兴奋。

一切是如何开始的

招聘人员专业且清晰,为我提供了有关流程和角色的所有必要细节。交换了几条消息后,我收到了第一轮面试的测试链接,这是一个编码评估。该评估在 HackerRank 上托管,包括两个编码问题。

第一轮 - 编码测试

问题很简单,但有点冗长。详细介绍如下:

1。第一个问题:条形码生成
任务是根据一些预定义的参数生成条形码。虽然这个问题本质上并不复杂,但需要注意细节以确保满足所有条件。我有条不紊地解决了这个问题,将其分解为更小的部分,并用 JavaScript 实现了一个解决方案。重点是效率和清晰度,确保生成的条形码符合预期的格式和约束。

2.第二个问题:具有部署状态的数组处理

这更多的是数据操作任务。输入由对象组成,每个对象都有一个部署 ID 和一个部署状态。我的目标是根据这些输入返回一个数组。虽然问题看起来很简单,但它也存在一些边缘情况。例如,有些物品缺少钥匙,乍一看并不明显。然而,在提交我的初始解决方案后,我意识到需要考虑这种边缘情况。我很快修改了代码来处理这些情况,确保丢失的键不会导致错误或不完整的结果。

My Amazon SDE Interview Experience – May 4
我使用 JavaScript 解决了这两个问题,并且确信我的解决方案通过了所有测试用例,包括隐藏的测试用例。

如果候选人解决​​了所有编码问题并通过了所有测试用例,亚马逊往往会推动候选人在这个过程中前进。

之后接到招聘人员的电话,说他正在推进面试流程,这将是现场面试。我有 5 天的时间来准备。

过去三年我一直在远程工作,从未去过办公室,所以我更害怕的是办公室而不是面试??

进一步的面试

我去了亚马逊办公室,那里已经没有几个候选人了。我们都去面试了。那天我进行了3轮技术面试。

1. 故障排除回合

第一轮是一次以故障排除为重点的面试。我一走进房间,就受到了一位非常支持我的面试官的欢迎。他在整个会议期间一直保持微笑,这有助于缓解我的紧张情绪。

他递给我一张纸,并提出了几个与系统故障、网络和网络层相关的问题。他使用的方法特别有趣。他让我首先考虑基本的解决方案——本质上是鼓励我从头开始解决问题。当我给出答案后,他稍微改变了场景,每一步都增加了更多的复杂性。

例如,在讨论网络故障后,他将对话转移到网络的更深层次,并问如果标准解决方案不起作用我会怎么做。这促使我创造性地思考并考虑系统中的各种故障点,从最常见到更复杂的问题。

面试让我在外面等,然后一位招聘人员来了,说我要去第二轮。

2. DSA 轮

下一轮是深入研究数据结构和算法(DSA)。这次,我的面试官是亚马逊的一位高级SDE。她递给我一张纸,并提出了一个相当大且复杂的问题。当我通读它时,我很快意识到主要目标是找到图中的最短路径。此类问题在面试中很常见,但当涉及边缘情况时可能会变得棘手,她肯定会包括在内。

我问了一些澄清问题,以充分理解问题及其各种场景。一旦我有了信心,我就开始研究解决方案——直接在纸上写伪代码。当我解释我的方法和逻辑时,她不断深入探究,询问我为什么做出某些决定以及我如何处理图表的不同部分。我向她介绍了我的思考过程,讨论了权衡和优化。幸运的是,我能够完整、正确地解答这道题。

一旦她对我的图形解决方案感到满意,她就问我有关时间和空间复杂度的问题,我向她分析并向她解释了这一点。很有成就感,觉得这一轮进展顺利。

然而,她很快转向另一个更具挑战性的问题——这次涉及动态规划(DP)。这个问题涉及到一个矩阵,其中不同的作物需要以遵循一定规则的方式种植。这是一个更复杂的问题,我花了一些时间来完全理解它。我问了几个问题,以确保涵盖所有限制和边缘情况。

我编写了一个伪代码解决方案,但它没有完全优化。她给了我一些测试用例,虽然我的代码在其中大约 80% 上运行成功,但仍有一些边缘用例失败了。我此时变得紧张,她注意到了这一点。幸运的是,她提供了有用的提示,我尝试进一步优化我的解决方案。尽管我尽了最大努力,但我无法完全解决这个问题,可能是因为我的神经占据了主导地位。

我又在外面等了,我对这一轮不是很高兴也没有信心,但是招聘人员又来了,说我的下一轮是系统设计。我好开心啊!

3. 系统设计回合

当天的最后一轮是系统设计面试,这是迄今为止最紧张、最疲惫的会议。面试官是亚马逊架构团队的一员,从一开始我就知道这一轮将具有挑战性。我们首先讨论了我的简历,重点讨论了我过去的项目以及我在之前工作中做出的设计决策。他问了几个关于我所开发的系统架构的问题,探讨了我的设计选择和我所做的权衡的细节。

经过初步讨论,他要求我为教育技术平台设计一个系统,特别关注视频流功能。目标是设计一个系统,教师可以在其中传输实时视频课程,学生可以在线参加这些课程。

我们从高层架构开始,讨论视频服务器、数据库和 API 等主要组件。我解释了我处理大量用户并确保流畅的视频流体验的方法。他不断询问可扩展性、可靠性和延迟问题,这对于实时视频平台至关重要。

当我们讨论完高层设计后,他将话题转向低层细节。这是讨论变得更加技术性的地方。我们探索了各种方法来优化系统、处理边缘情况,并确保即使在最坏的情况下也能为用户提供无缝体验。我必须迅速思考,为不同的问题提供解决方案和替代方案,包括处理用户流量峰值并确保最短的停机时间。

面试官不断地呈现不同的场景——如果视频服务器宕机了怎么办?您将如何处理网络拥塞?如何确保不同地理区域的学生的低延迟?每个场景都需要详细的答案,我发现自己完全沉浸在讨论可能性和设计模式中。

整个采访持续了大约1.5个小时,结束时我已经筋疲力尽了。这是一次精神上的疲惫,但也是我经历过的最有洞察力的采访之一。我们探索了各种架构挑战,感觉更像是一次协作解决问题的会议,而不是传统的采访。

所以我早上 9 点去了亚马逊办公室,晚上 5 点出来,我已经完成了所有轮次,招聘人员说他正在推进管理轮次, 尚未安排。

My Amazon SDE Interview Experience – May 4

无论如何忘了告诉你一件事,请在参加面试之前了解亚马逊的所有原则,他们每轮都会至少问2个问题。所以请也准备一下

版本聲明 本文轉載於:https://dev.to/naweli_verma/my-amazon-sde-interview-experience-may-2024-3nf6?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 沒有明確設定 CSS 高度時如何取得 Div 的高度?
    沒有明確設定 CSS 高度時如何取得 Div 的高度?
    在沒有明確CSS 規則的情況下確定Div 高度如果CSS 中沒有明確設定高度,則取得div 的高度可能會很困難。雖然 .height() jQuery 方法通常用於此目的,但它需要現有的 CSS 規則才能實現正確的功能。這是另一種方法:jQuery 高度函數jQuery 提供了一系列高度函數,即使沒...
    程式設計 發佈於2024-12-23
  • Golang的`atomic.LoadInt32/StoreInt32(64)`函數如何保證並發程式設計中的資料完整性?
    Golang的`atomic.LoadInt32/StoreInt32(64)`函數如何保證並發程式設計中的資料完整性?
    理解golang原子LoadInt32/StoreInt32的用法(64)原子操作在並發編程中起著至關重要的作用,保證多個goroutines之間共享資料的完整性。 sync/atomic 套件提供專門用於操作 32 位元和 64 位元整數的原子載入和儲存操作。 原子操作的目的與常規加載和存儲不同,...
    程式設計 發佈於2024-12-23
  • MySQL 連線錯誤 2002:我的主機名稱不正確嗎?
    MySQL 連線錯誤 2002:我的主機名稱不正確嗎?
    MySQL 連線無法運作:定址主機名稱當嘗試透過PHP 建立MySQL 連線時,您可能會遇到錯誤「沒有這樣的檔案」或目錄」(錯誤代碼2002)。無法找到指定的檔案或路徑。不是使用通常指本機的「localhost」。 mysql_connect('127.0.0.1', 'US...
    程式設計 發佈於2024-12-23
  • 如何在 Python 中優化海龜動畫速度:為什麼 ontimer() 勝過 True 和 Sleep()?
    如何在 Python 中優化海龜動畫速度:為什麼 ontimer() 勝過 True 和 Sleep()?
    Python 中的海龜動畫性能優化專業人士經常會遇到海龜動畫執行速度不理想的情況。雖然 tracer() 方法並在其中嘗試各種數字可能看起來不夠,但一個簡單而有效的解決方案就在別處。 要使用 Turtle 實現正常的動畫速度,避免依賴 while True: 或sleep() 在事件驅動的環境中建構...
    程式設計 發佈於2024-12-23
  • 為任何中型線程創建 RSS 來源!
    為任何中型線程創建 RSS 來源!
    週末,我正在瀏覽 30 分鐘內完成的專案創意,以便快速複習,並偶然發現了 codementor.io 那麼,RSS Feed 到底是什麼? RSS 代表「真正簡單的聯合」 — 它是一種透過 XML 檔案存取網站元資料的方法。 例如,Medium 上有大量的文章和出版物,將所有帶有摘要的連結都放在...
    程式設計 發佈於2024-12-23
  • HTML 格式標籤
    HTML 格式標籤
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    程式設計 發佈於2024-12-23
  • 大批
    大批
    方法是可以在物件上呼叫的 fns 數組是對象,因此它們在 JS 中也有方法。 slice(begin):將陣列的一部分提取到新數組中,而不改變原始數組。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index ...
    程式設計 發佈於2024-12-23
  • 如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    在 PHP 中組合關聯數組在 PHP 中,將兩個關聯數組組合成一個數組是常見任務。考慮以下請求:問題描述:提供的代碼定義了兩個關聯數組,$array1 和 $array2。目標是建立一個新陣列 $array3,它合併兩個陣列中的所有鍵值對。 此外,提供的陣列具有唯一的 ID,而名稱可能重疊。要求是建...
    程式設計 發佈於2024-12-23
  • 為什麼我在 Laravel 收到「Session store not set on request」錯誤?
    為什麼我在 Laravel 收到「Session store not set on request」錯誤?
    Laravel:解決「Session store not set on request」錯誤簡介使用Laravel 時,遇到「未根據請求設定會話儲存」錯誤可能會令人沮喪。本文旨在提供對該問題的清晰解釋和逐步解決方案。 錯誤是什麼? “Session store not set on” request...
    程式設計 發佈於2024-12-23
  • 儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    解決PHP 中的POST 請求故障在提供的程式碼片段:action=''而非:action="<?php echo $_SERVER['PHP_SELF'];?>";?>"檢查$_POST陣列:表單提交後使用 var_dump 檢查 $_POST 陣列的內容...
    程式設計 發佈於2024-12-23
  • 在 Go 中使用 WebSocket 進行即時通信
    在 Go 中使用 WebSocket 進行即時通信
    构建需要实时更新的应用程序(例如聊天应用程序、实时通知或协作工具)需要一种比传统 HTTP 更快、更具交互性的通信方法。这就是 WebSockets 发挥作用的地方!今天,我们将探讨如何在 Go 中使用 WebSocket,以便您可以向应用程序添加实时功能。 在这篇文章中,我们将介绍: WebSoc...
    程式設計 發佈於2024-12-23
  • 如何在同一目錄中組織一個庫和 CLI 的 Go 專案?
    如何在同一目錄中組織一個庫和 CLI 的 Go 專案?
    在多包專案中組織程式碼在同時需要庫和命令列介面(CLI) 的Go 專案中,經常會遇到以下問題在同一目錄中有多個包。 這樣的專案架構:whatever.io/ myproject/ main.go myproject.go套件 main 和 func main ...
    程式設計 發佈於2024-12-23
  • 如何在 Android 中選擇後保持 ListView 項目突出顯示?
    如何在 Android 中選擇後保持 ListView 項目突出顯示?
    如何在Android 中選擇後保持ListView 項目突出顯示在Android 中,維護ListView 項目的選定狀態可以透過提供以下功能來增強使用者體驗:目前選擇的清晰視覺指示器。然而,有時開發人員會遇到這樣的問題:所選項目在某些事件(例如捲動或與 ListView 進一步互動)後失去突出顯示...
    程式設計 發佈於2024-12-23
  • 如何使用自訂 CSS 在 Bootstrap 3 中建立全高列?
    如何使用自訂 CSS 在 Bootstrap 3 中建立全高列?
    Bootstrap 3 全高列:自訂CSS 解決方案簡介:創建Twitter Bootstrap 3 的全高佈局可能具有挑戰性。雖然Bootstrap的原生類別不支援此功能,但可以使用自訂CSS來實現此效果。 自訂CSS方法:設定100% 高度:將body、container 和row 元素的高度設...
    程式設計 發佈於2024-12-23
  • 如何在不使用連結的情況下為 Span 元素添加工具提示?
    如何在不使用連結的情況下為 Span 元素添加工具提示?
    向不帶連結的Span 元素添加工具提示將滑鼠懸停在span 元素上時,通常需要向用戶提供附加資訊.這可以使用工具提示來實現,而不依賴連結。 解決方案:要使用內建HTML 屬性將工具提示新增至span 元素,只需如下使用title 屬性:<span title="My tip"...
    程式設計 發佈於2024-12-23

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3