0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

編程面試的9大技巧

h1654155971.7688 ? 來源:21ic電子網(wǎng) ? 2019-12-09 15:34 ? 次閱讀

作為程序員,在面試過程中都需要經(jīng)歷一次又一次編程的考驗,這其中有何技巧可言?又該如何通關(guān)成功拿到心儀的 offer 呢?

關(guān)于編程面試中遇到的困難和算法問題,我們已經(jīng)討論了很多,但是首先在面試環(huán)境中讓自己保持舒適本身就是一種技巧。 除了提出正確的解決方案之外,在每次編程面試中,你還需要做一些額外的事情。

要求澄清問題。

運行你的算法并用測試用例進(jìn)行驗證。

主動提供算法的時間復(fù)雜度和空間復(fù)雜度信息。

很多時候,應(yīng)聘者會立即全神貫注于編寫代碼,而忽略了做上面的一件或多件事情,這會對他們的面試結(jié)果產(chǎn)生負(fù)面影響。面試官肯定會發(fā)掘出應(yīng)聘者編寫正確算法的能力,但他們也會基于溝通能力和驗證能力等其他技能來評估應(yīng)聘者。要求澄清問題 在開始編寫代碼之前,一個好的應(yīng)聘者總是會問清楚面試官提出的問題。這有三個主要目的:

它縮小了問題的范圍。例如,也許你會問面試官,“這個數(shù)組中的所有整數(shù)都是正的嗎?”。如果答案是肯定的,那么你就不必考慮整個負(fù)整數(shù)空間,這可能使問題更容易解決。

它向面試官表明你正在積極考慮邊緣案例。面試是為了證明你有能力進(jìn)行批判性和周密的思考,同樣也是為了證明你的原始編碼能力。

它允許你和面試官就問題的理解達(dá)成一致。因為有些時候,我給了應(yīng)聘者一個問題,他們提出的解決方案卻稍有偏差。所以在開始之前,確保你和面試官對你要解決的問題的理解一致。

驗證算法 在面試過程中,僅僅在黑板上寫好代碼并稱之為“完成”是不夠的。一個高質(zhì)量的應(yīng)聘者總是會用邊緣案例和例子逐步檢查他們的算法以找出任何錯誤。這是幾乎每個面試官都希望看到的關(guān)鍵步驟。 在驗證算法時,盡可能周密。下面是一些提示:

在算法的每個步驟,寫出存儲在任何數(shù)據(jù)結(jié)構(gòu)或變量中的內(nèi)容。

如果執(zhí)行for-或while循環(huán),請確保運行算法直到完成,以捕獲任何“off-by-one”錯誤或終止錯誤。

選擇non-trivial的測試用例??赡苁窃撍惴ㄟm用于特定的輸入集,但不適用于更復(fù)雜的輸入集。嘗試提出破壞算法的測試用例。

理想情況下,你寫的算法沒有任何缺陷,但現(xiàn)實中更可能發(fā)生的是,你會發(fā)現(xiàn)一些小錯誤。通過修改算法來修復(fù)這些錯誤,并再次運行幾個測試用例,將能很好地反映出你的代碼調(diào)試能力。 提供算法的時間復(fù)雜度和空間復(fù)雜度 幾乎每個面試官都會關(guān)心算法的時間復(fù)雜度和空間復(fù)雜度。主動提供這些信息,而不是等待他們詢問,可以向面試官表明你熟悉這些概念,并且可以輕松計算這些信息。 需要牢記的一些事情:

當(dāng)開始考慮一個問題時,試著想想絕對的最好和最壞情形時的復(fù)雜度是什么。例如,要在未排序的列表中查找某個元素,我們知道必須至少查看列表中的每個元素一次,所以這個算法的復(fù)雜度至少是O(n)。

試著用“壓力測試”測算一下你的算法的復(fù)雜度,尤其是當(dāng)它依賴于兩個或更多的變量時。例如,如果你的算法執(zhí)行次數(shù)是O(n*k):如果k非常小會發(fā)生什么?當(dāng)k接近n時會發(fā)生什么?有時,你會發(fā)現(xiàn)一個算法對于特定的n和k值是最優(yōu)的,另一個算法對于不同的n和k值是最優(yōu)的。

對于內(nèi)存限制,如果你確實需要跟蹤數(shù)據(jù)結(jié)構(gòu)中的所有值,請嘗試解釋。此外,還要認(rèn)識到一個事實,即不同編碼語言中的某些函數(shù)可能會使用額外的內(nèi)存。一個很好的例子是在Python中進(jìn)行列表切片,這會創(chuàng)建一個新的列表(可能會產(chǎn)生另一個O(n)內(nèi)存使用)。

編碼面試是很困難的,精通算法和編碼問題并不能保證總是能夠通過面試。幸運的是,有了這三個技巧,你可以更好地了解如何進(jìn)行編程面試。祝你好運! 你正在面試編程工作嗎,還是只是喜歡有趣的編程問題?查看我們的時事通訊-Daily Coding Problem,你就能每天在你的收件箱中收到一個關(guān)于編程的問題。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4552

    瀏覽量

    92027
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3521

    瀏覽量

    93276
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4671

    瀏覽量

    67771

原文標(biāo)題:9 大技巧拯救你的編程面試!

文章出處:【微信號:weixin21ic,微信公眾號:21ic電子網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    工業(yè)機(jī)器人的四種編程(示教編程、離線編程、自增強(qiáng)現(xiàn)實編程編程)剖析!

    當(dāng)前機(jī)器人廣泛應(yīng)用于焊接、裝配、搬運、噴漆及打磨等領(lǐng)域,任務(wù)的復(fù)雜程度不斷增加,而用戶對產(chǎn)品的質(zhì)量、效率的追求越來越高。在這種形式下,機(jī)器人的編程方式、編程效率和質(zhì)量顯得越來越重要。降低編程的難度
    的頭像 發(fā)表于 08-30 12:14 ?269次閱讀
    工業(yè)機(jī)器人的四種<b class='flag-5'>編程</b>(示教<b class='flag-5'>編程</b>、離線<b class='flag-5'>編程</b>、自增強(qiáng)現(xiàn)實<b class='flag-5'>編程</b>主<b class='flag-5'>編程</b>)剖析!

    面試嵌入式工作,會被問什么問題?

    面試嵌入式工作時,面試官可能會從多個方面考察應(yīng)聘者的知識、技能和經(jīng)驗。以下是一些常見的嵌入式工作面試問題,這些問題涵蓋了基礎(chǔ)知識、專業(yè)技能、項目經(jīng)驗和個人能力等方面
    的頭像 發(fā)表于 07-17 09:26 ?1198次閱讀
    <b class='flag-5'>面試</b>嵌入式工作,會被問什么問題?

    PLC的編程方式及編程語言

    在工業(yè)自動化領(lǐng)域,PLC(Programmable Logic Controller,可編程邏輯控制器)因其強(qiáng)大的控制功能和靈活的編程方式而得到了廣泛應(yīng)用。PLC的編程方式和編程語言是
    的頭像 發(fā)表于 06-27 14:08 ?416次閱讀

    編程電源如何編程

    編程電源如何編程? 可編程電源是一種可以調(diào)節(jié)輸出電壓和電流的電源設(shè)備,廣泛應(yīng)用于電子設(shè)備測試、研發(fā)和生產(chǎn)等領(lǐng)域。通過編程,用戶可以根據(jù)需要設(shè)置電源的輸出參數(shù),實現(xiàn)自動化測試和控制。本
    的頭像 發(fā)表于 06-10 15:24 ?793次閱讀

    數(shù)控銑床絕對編程和相對編程指令是

    數(shù)控銑床編程是數(shù)控加工技術(shù)中的重要組成部分,它涉及到數(shù)控銑床的控制和操作。在數(shù)控銑床編程中,絕對編程和相對編程是兩種常用的編程方式。本文將詳
    的頭像 發(fā)表于 06-07 11:12 ?640次閱讀

    fpga編程與單片機(jī)編程的區(qū)別

    FPGA編程與單片機(jī)編程的主要區(qū)別體現(xiàn)在以下幾個方面。
    的頭像 發(fā)表于 03-14 17:16 ?741次閱讀

    MAVLink在應(yīng)用編程中的編程原理和思路

    嵌入式開發(fā)過程中,UART、 CAN、 USB等通信基本離不開通信協(xié)議。 下面給大家分享一種通信協(xié)議(MAVLink)在應(yīng)用編程中的編程原理和思路。
    發(fā)表于 03-08 12:45 ?646次閱讀
    MAVLink在應(yīng)用<b class='flag-5'>編程</b>中的<b class='flag-5'>編程</b>原理和思路

    TCP協(xié)議面試常問知識點總結(jié)

    TCP 作為傳輸層的協(xié)議,是一個IT工程師素養(yǎng)的體現(xiàn),也是面試中經(jīng)常被問到的知識點。在此,我將 TCP 核心的一些問題梳理了一下,希望能幫到各位。
    的頭像 發(fā)表于 12-15 10:38 ?661次閱讀
    TCP協(xié)議<b class='flag-5'>面試</b>常問知識點總結(jié)

    海納AI獲數(shù)千萬A輪融資,繼續(xù)領(lǐng)跑AI面試測評市場

    數(shù)千萬融資加持AI面試賽道 海納AI(Hina.com)近日已完成數(shù)千萬元A輪融資,本輪融資由聯(lián)想創(chuàng)投獨家投資。這是2023年中國AI面試測評賽道公布的首筆融資,也是最近的AI 2.0大潮中,國內(nèi)
    的頭像 發(fā)表于 12-01 10:38 ?768次閱讀

    硬件工程師經(jīng)典面試題詳解

    硬件工程師經(jīng)典面試題詳解
    的頭像 發(fā)表于 11-20 15:08 ?1170次閱讀
    硬件工程師經(jīng)典<b class='flag-5'>面試</b>題詳解

    硬件射頻類面試注意事項

    射頻電路有微波和普通的頻率區(qū)別。 微波電路一般會問一些微波電路和實際理論的差距,差距的原因等等。 射頻電路一般會問設(shè)計思路是什么,設(shè)計的重點是什么等。 技術(shù)面之后就是綜合面試了 綜合面試就是場面話,對工作的規(guī)劃,工作地點的選擇,怎么看待行業(yè)等等了。
    的頭像 發(fā)表于 11-20 09:43 ?525次閱讀
    硬件射頻類<b class='flag-5'>面試</b>注意事項

    30道Linux面試題總結(jié)

    如果你是一名開發(fā)人員、系統(tǒng)管理員,或是僅僅對 Linux 感興趣,那么這個列表是為你準(zhǔn)備的。它包含了類 Unix 系統(tǒng)管理或編程職位面試中涉及 Linux 相關(guān)的所有常見問題。
    發(fā)表于 10-27 15:29 ?1911次閱讀
    30道Linux<b class='flag-5'>面試</b>題總結(jié)

    c語言面試題集(完整版)

    電子發(fā)燒友網(wǎng)站提供《c語言面試題集(完整版).pdf》資料免費下載
    發(fā)表于 10-20 11:20 ?2次下載
    c語言<b class='flag-5'>面試</b>題集(完整版)

    異步FIFO相關(guān)面試問題

    又到了一年一度的招聘季節(jié),有粉絲私信問了一個問題,一個關(guān)于以前流傳出來的大廠面試的題目,個人覺得算是比較經(jīng)典的題目,也是工作中經(jīng)常遇到的一個問題,所以準(zhǔn)備寫一篇回答下。
    的頭像 發(fā)表于 10-01 10:11 ?524次閱讀
    異步FIFO相關(guān)<b class='flag-5'>面試</b>問題

    硬件經(jīng)典面試100題分享

    學(xué)電人員必備;硬件經(jīng)典面試100題;面向電子行業(yè)的面試基礎(chǔ)問題,提前進(jìn)入職業(yè)的大門
    發(fā)表于 09-27 06:23