對於那些不認識我的人來說,我是一名擁有10 多年經驗的前端工程師,他還創建了BigDevSoon - SaaS(下一代代碼學習平台,您可以通過從第一天開始構建東西來學習。
儘管我很喜歡在React 中建立現代UI,但多年來「前端」角色的轉變迫使我多次成為全端開發人員、創建BFF(前端的後端)、分析和思考大量的資料結構並使用資料庫。從其他方面來說,我們不再是「網站」開發者,為了跟上步伐,我們需要一直學習和適應。
在當今艱難的市場時期,我花了一個多月的時間才找到最新的工作,您可以在這裡閱讀這一歷程。透過經常進行 10 多個階段的馬拉松式面試,我了解了新模式以及我們需要如何更輕鬆地適應陸地工作。
我注意到的模式之一是溝通和軟技能,例如「錄製您的歡迎影片並向我們介紹一下您自己。」或3 次以上行為/文化訪談「在某種情況下你會做什麼,為什麼,請解釋一下。
上面我只會提到一件事,如果您還不是“影響者”,那麼值得做的就是嘗試記錄自己,甚至嘗試做您創建的演示功能、副項目或介紹您自己和您的職業(例如,最多3-5 分鐘總結您的履歷、經驗、過去的項目)。聽完這個後,您可能會發現自己的聲音太小了,或者您在鏡頭前壓力太大了。這是一個很好的練習,可以克服這種恐懼,想像一下通過 9/10 階段,卻因為沒有練習而未能與 CEO/TL/經理交談。那可惜了。
另一個主題是眾所周知的練習問題,但相信我,你不需要掌握整個 DSA,包括 Dijkstra 演算法或紅黑樹之類的東西(儘管這對你下次面試有幫助)。
所需要的只是一點點的磨練和準備,這樣你就不會措手不及,並且可以解決這些現在許多公司用來篩選候選人的“小問題”,而不是在長時間的面試上浪費時間透過投入資源(例如需要採訪的人等等)
新兵訓練營/課程後的許多“瀑布”開發人員缺乏的是解決問題的能力,這些程序經常牽著你的手,不允許你自己思考太多- 不是說這是錯的,而是要變得更好需要不同的技巧,要在壓力下順利面試,能夠快速拿出10 分鐘前承認的問題的解決方案,並且面試官希望它在不到一小時內解決,這是一個巨大的改變。
讓我們從我經歷過的一個例子中進一步了解這一點,然後我將分享一個在面試中幫助我的日常習慣,並提出一些有價值的解決問題的練習題。
所以回文是一個從向後或向前讀取相同的值。例如。 Racecar 是回文,但 hello 不是回文,因為當你反轉該值時,它會變成 olleh。
我正在與我所申請的一家公司的招聘人員通電話,我們進行了冷靜的閒聊,因為這是該公司的第一階段之一。現在,面試的最後 10 分鐘「嘿,最後一個問題,你能為回文問題編寫一個程式碼解決方案嗎?」…我有點措手不及。
但我們得到了這個,立即跳入 https://jsfiddle.net/ 並寫道:
function isPalindrome(string) { return string.split('').reverse().join('') === string; }
為自己感到驕傲,但招募人員說「請不要使用內建方法。」。
好的,沒問題,我們很快就沒有時間了,但我明白了。
花一些時間想出一個愚蠢的解決方案,如下所示:
function isPalindrome(string) { let isValid = true; for (let i = 0; i < string.length / 2; i++) { if (string[i] !== string[string.length - i - 1]) { isValid = false; } } return isValid; }
當然,招募人員開始談論大 O 表示法。我們又聊了一會兒,我又崩潰了,措手不及。
假設一個可接受的解是這樣的:
function isPalindrome(string) { const normalizedString = string .toLowerCase() // Convert to lowercase .replace(/[^a-z0-9]/g, ''); // Remove non-alphanumeric characters for (let i = 0; i < normalizedString.length / 2; i++) { if (normalizedString[i] !== normalizedString[normalizedString.length - i - 1]) { return false; } } return true; }
我們在這裡做了兩件事,首先,我們標準化了一個字串,因此對於一個男人,一個計劃,一條運河:Panama,我們得到了amanaplanacanalpanama,並且我們提前退出循環,而不是總是迭代「半通過字串值」。
這只是一個例子,但讓我們了解一下發生了什麼錯誤。
吸取教訓,我開始了 leetcode 的磨練。每天總是1+ 個問題,但大多從簡單/中等難度中進行選擇,並嘗試專注於“人性”的問題,因為招聘人員通常會使用這些問題,例如買賣股票的最佳時機我在接下來申請的一家公司中接到了一項任務,並解決了這個問題。我喜歡向 ChatGPT 詢問我正在申請的公司,並推薦可能相關的練習問題,甚至添加招聘人員的一些資訊作為額外的背景資訊。 (是的,如果他們解釋得不太清楚,你可以透過電子郵件詢問他們在面試過程中會發生什麼)。
一段時間後,您將開始看到模式、陣列問題、字串問題、連接部分,並且會變得更好,因為即使測試案例不同或問題性質不同,您用於解決這些問題的方法也可以共享完全不同。
隨著我們為平台添加越來越多的功能,我將在BigDevSoon 上無恥地提前插入練習題(目前有41 個),試圖讓事情變得簡單(KISS) 並策劃最相關的問題+還有一些熱身(簡單等級)。
我在下面列出了其中 10 個我認為值得解決的問題。
就是這樣!從這些練習題中可以學到很多東西,每一個都是激活大腦的有趣方式。
長期以來,我的目標是在社群中傳播基於專案的學習方法,並啟動並運行 BigDevSoon,這是我們在過去 3 年裡一直致力於開發的應用程式。這對我們來說是一項偉大的成就。
繼續編碼! ?♂️
以上是透過練習題提升面試遊戲水平的詳細內容。更多資訊請關注PHP中文網其他相關文章!