面試問題匯總 精選 分析 解答 職業規劃 part 2

面試困惑問與答(2)——感覺挺好,為啥被拒了?

問:技術面試的時候,題目挺簡單的,我覺得自己都做出來了。可最后怎么還是被拒了啊?

答:面試被拒有很多種可能,比如面試官認為你性格不適合、態度不夠誠懇等等。但在技術面試過程中,這些都不是最重要的。技術面試的面試官一般都是程序員,程序員通常沒有那么多花花腸子,他們只認一個理:題目做對、做完整了,就讓你通過面試;否則就沒戲。所以碰到簡單題目卻被拒的情況,應聘者還是要檢討題目是不是真的做對、做完整了。

???????????????舉一個微軟面試開發工程師時最常用的一個問題為例:把一個字符串轉換成整數。這個題目很簡單吧?很多人都能在三分鐘之類寫出如下不到十行的代碼:

int StrToInt(char* string)

{

???????int number = 0;

???????while(*string != 0)

???????{

???????????????number = number * 10 + *string - '0';

???????????????++string;

???????}

?

???????return number;

}

???????????????看了上面的代碼,你是不是覺得微軟很容易搞定?如果你真的這么想,不好意思,你可能又要被拒了。

通常越是簡單的問題,面試官的期望值就會越高。當題目簡單的時候,面試官就會期待應聘者能夠很完整解決問題,除了完成基本功能之外,能夠考慮各種邊界條件、錯誤處理等各個方面。像這道題,面試官不僅僅只是期待你能完成把字符串轉換成整數這個最最起碼的要求,而是希望你能考慮到各種特殊的輸入。如果我是面試官,我至少會期待應聘者能夠在不需要提示的情況下,考慮到輸入的字符串中有非數字字符和正負號,要考慮到最大的正整數和最小的負整數,以及溢出,同時還要考慮當輸入的字符串不能轉換成整數時,應該如何做錯誤處理。當把這個問題的方方面面都考慮到的時候,你也就不會再認為這道題簡單了。

除了問題考慮不全面之外,還有一個面試官不能容忍的錯誤就是程序不夠魯棒。以前面的那段代碼為例,只要輸入一個空指針,程序立即崩潰。這樣的代碼如果加入到軟件當中,將是災難。因此當面試官看到代碼中對空指針沒有判斷并加以特殊處理的時候,通常他連往下看的興趣都沒有。

當然,不是所有與魯棒性相關的問題都和前面的代碼那樣明顯。再舉一個很多人都被面試過的問題:求鏈表中的倒數第k個結點。有不少人先在網上看過這個題目,因此知道思路是用兩個指針,第一個指針先走k-1?步,然后兩個指針一起走。當第一個指針走到尾結點的時候,第二個指針指向的就是倒數第k個結點。于是他大筆一揮,寫下了下面的代碼:

ListNode* FindKthToTail(ListNode* pListHead,unsigned int k)

{

???????if(pListHead == NULL || k == 0)

???????????????return NULL;

?

???????ListNode *pAhead = pListHead;

???????ListNode *pBehind = NULL;

?

???????for(unsignedint i = 0; i < k - 1; ++ i)

???????{

???????????????pAhead = pAhead->m_pNext;

???????}

?

???????pBehind = pListHead;

?

???????while(pAhead->m_pNext != NULL)

???????{

???????????????pAhead = pAhead->m_pNext;

???????????????pBehind = pBehind->m_pNext;

???????}

?

???????return pBehind;

}

寫完之后,應聘者看到自己已經判斷了輸入的指針是不是空指針并做了特殊處理,于是心里洋洋得意以為這次面試必定順利通過了。可是,他沒有想到的是這段代碼中仍然有很嚴重的問題:當鏈表中的結點總數小于k的時候,程序還是會崩潰。因此,幾天之后他收到的仍然不會是Offer,而是拒信。

要想很好地解決前面的問題,最好的辦法是在動手寫代碼之后想好測試用例。只有把各種可能的輸入事先都想好了,才能在寫代碼的時候把各種情況都做相應的處理。寫完代碼之后,也不要立刻給面試官檢查,而是先在心里默默地運行。當程序運行之前想好的所有測試用例都能得到合理的輸出時,再把代碼交給面試官。做到了這一步,通過面試拿到Offer就是水到渠成的事情了。

?

博主何海濤對本博客文章享有版權。網絡轉載請注明出處http://blog.csdn.net/cadcisdhht。整理出版物請和作者聯系。有任何建議或意見,歡迎在評論中告知,或者加我微博http://weibo.com/zhedahht與我交流。



面試困惑問與答(3)——題目沒弄懂,可以問面試官嗎?

問:面試的時候,面試官突然冒出一個之前沒有聽過的概念,請問我可以問面試官讓他把題目說清楚嗎?如果問的話他會不會覺得我很傻?

答:面試和筆試最大的區別是:面試是一個注重溝通交流的過程,而且溝通是雙向的。因此面試官可以問應聘者問題,同樣應聘者也可以問面試官問題。

???????????????通常在面試環節面試官的一個很重要的任務就是考察應聘者的學習愿望以及學習能力。學習能力怎么體現呢?面試官提出一個新概念,應聘者沒有聽說他,于是他在已有的理解的基礎上問進一步的問題,然后掌握了這個概念。這就是學習能力。通常學習能力強的人具有主動積極的態度。因此建議在應聘過程中碰到不明白的地方多提問,這樣面試官覺得你態度積極,求知欲望強烈,這樣會給面試結果加分。

???????????????舉個例子,google曾經有一道面試題:找出第1500個丑數。很多人都不知道丑數是什么。不知道怎么辦?面試官就坐在對面,可以問他啊。面試官會告訴你只含有2、3、5三個因子的數就是丑數。你聽了后,覺得聽明白了,但不太確定,于是可以舉幾個例子并讓面試確認你的理解是不是對的: 6、8、 10、12都是丑數,但14就不是,對嗎?當面試官給出肯定的答復,你就知道自己的理解是對的了。問題問的是第1500個丑數,與順序有關。可是哪個數字時第一個丑數呢,1是不是第一個?這個你可能也不能確定,怎么辦?還是問面試官,他會告訴你1是或者不是丑數。題目是他出的,他有責任把題目給你解釋清楚。

???????????????有些面試官甚至故意一開始不把題目描述的清楚,讓題目存在一定的二義性。他期待應聘者能夠一步步通過提問來弄明白題目的要求。這就是在考察應聘者的溝通能力。為什么要這樣考察?因為實際工作也是這樣,不是一開始項目需求就定義得很清楚了。程序員需要多次與項目經理甚至客戶反復溝通才能把需求弄清楚。如果沒有一定的溝通能力,當程序員面對一個模糊的客戶需求時,他就會覺得無處下手。

比如最近很流行的一個面試題,面試官最開始問:如何求樹中兩個結點的最近公共父結點。此時面試官對題目中的樹的特點完全沒有給出描述。他希望應聘者在聽到問題后會提出幾個問題,比如這棵樹是二叉樹還是普通的樹。

如果面試官說是二叉樹,應聘者可以繼續問該樹是不是排序的二叉樹。面試官回答是排序的。聽到這里,應聘者才能確定思路:從書的根結點出發遍歷樹,如果當前結點都大于輸入的兩個結點,則下一步遍歷當前結點的左子樹;如果當前結點小于輸入的兩個結點,則下一步遍歷當前結點右子樹。一直遍歷到當前結點比一個輸入結點大而比另一個小的時候,此時當前結點就是符合要求的最近公共父結點。

如果應聘者問樹是不是二叉樹的時候,面試官回答是任意的樹。此時應聘者可以接著提問在樹結點中有沒有指向父結點的指針,面試官將會給出肯定的回答。由于樹的結點中有指向父結點的指針,因此從輸入的結點出發,沿著指向父結點的指針一直到樹的根結點,可以看做是一個鏈表,因此這個題目的解法就和求兩個鏈表的第一個公共結點的解法是一樣的了。

我們可以看出面試官給出不同的條件,將是兩個兩個完全不一樣的題目。如果一開始應聘者沒有弄清楚面試官的意圖就貿然動手解題,那結果很有可能是離題千里。從中我們也可以看出在面試過程中溝通的重要性,當覺得題目的條件、要求不夠明確的時候,一定要多提問來消除自己的疑惑。

?

博主何海濤對本博客文章享有版權。網絡轉載請注明出處http://blog.csdn.net/cadcisdhht。整理出版物請和作者聯系。有任何建議或意見,歡迎在評論中告知,或者加我微博http://weibo.com/zhedahht與我交流。


面試困惑問與答(4)——最后該問什么?

問:每次面試的時候,面試官都會問我有沒有什么問題要問他。我可以問什么問題呢?

答:面試官讓應聘者問問題,主要是想了解應聘者最關心的問題有哪些。因此,首先至少要問一兩個問題。不然面試官就會覺得你對我們公司、職位等都不感興趣,那你來面試做什么?但是也不是什么問題都可以在這個時候問。如果問題問得比較合適,對應聘者來說是個加分的好機會;但如果問的問題不太合適,面試官對你的印象就會大打折扣,相當于跳入面試官的陷阱了。

???????????????先談談不適合問的問題。首先是問和自己的職位沒有關系的問題,比如問“公司未來五年的發展戰略是什么”。如果你面試的職位是CTO,而你的面試官是CEO,這倒是個合適的問題。如果面試的職位只是個程序員,那這個問題離你就太遠了,與你的切身利益沒有多少關系。再說,坐在你對面的面試官很有可能也只是個程序員,你讓他怎么回答這個關系公司發展戰略的問題呢?

???????????????其次是問薪水。技術面試不是談薪水的時候。要談工資,等通過面試之后和HR談。這個問題在前面的第一個困惑中已經講過,不在贅述。

???????????????第三是立即打聽面試結果,比如問“您覺得我能拿到Offer嗎”之類的問題。現在大部分公司的面試都有好幾輪,最終決定應聘者能不能通過面試,是要把所有面試官的評價綜合起來的。問這個問題相當于白問,因為問了面試官也不可能告訴你結果。

???????????????筆者推薦問的問題是與招聘的職位或者項目相關的問題。如果這種類型的問題問得很到位,那么面試官就會覺得你對應聘的職位很有興趣。不過要問好這種類型的問題也不容易,因為首先對應聘的職位或者項目的背景要有一定的了解。我們可以從兩方面去了解相關的信息。一是面試前做足功課,到網上去搜集一些相關的信息,做到對公司成立時間、主要業務、職位要求等都了然于胸。二是面試過程中注意面試官說過的話。有不少的面試官在面試之前會對招聘的職位相關的項目會做簡單介紹,其中會包含其他渠道無法得到的信息,比如項目進展情況等等。應聘者可以從中找出一兩個點,然后向面試官問。

???????????????舉幾個我當時來思科面試的時候問的幾個問題。一個面試官介紹項目時說這次招聘是項目組第一次在中國招人,目前這個項目所有人員都在美國總部。那一輪我最后問的問題是:這個項目所有的老員工都在美國,那怎么對中國這一批新員工進行培訓?中國的新員工有沒有機會去美國總部學習?最后一輪面試是老板面試,她介紹我要加入的項目組是負責開發思科測試供應商生產出來的網絡設備的測試系統。當時我最后問的幾個問題是:這個組是做測試系統的,那這個組的人員是不是也要參與網絡設備的測試,是不是需要學習硬件測試相關的知識?因為我們測試的對象是網絡設備,那么這個職位對網絡硬件的掌握程度有沒有要求?

?

???????????????博主何海濤對本博客文章享有版權。網絡轉載請注明出處http://blog.csdn.net/cadcisdhht。整理出版物請和作者聯系。有任何建議或意見,歡迎在評論中告知,或者加我微博http://weibo.com/zhedahht與我交流。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/news/453602.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453602.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453602.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

js順序加載

2019獨角獸企業重金招聘Python工程師標準>>> js想要順序加載&#xff0c;分開js代碼塊&#xff0c;jsp頁面在加載的時候&#xff0c;是順序加載&#xff0c;遇到<script></script>代碼塊&#xff0c;先加載完成&#xff0c;然后繼續往下&#xff0c;遇到…

java swingworker_Java中的SwingWorker

L&#xff06;F物質的輸出(因為您對EDT的不確定性有待測試)run:JButton openDialog >>> Is there EDT ??? trueWorker started >>> Is there EDT ??? falsewaiting 30secondsWorker endeded >>> Is there EDT ??? falsebefore JOptionP…

持續交付與滾動升級

介紹 持續交付是頻繁對軟件應用程序持續更新的概念. 這個想法使在大量頻繁的更新面前, 你不必等待在一個指定的特殊時間點, 并且使你的組織在響應過程中變得更好. 一些 Ansible 用戶每小時都在部署更新給他們的最終用戶甚至更加頻繁 – 每時每刻都有代碼修改的批準. 要實現這一…

2-05 使用固態存儲SSD或PCIe卡

在大量并發的情況下&#xff0c;才能體現固態磁盤的吞吐量&#xff0c;在大并發下提供良好隨機io的性能&#xff0c;這正是關系型數據庫所需要的&#xff0c;相對應機械磁盤&#xff0c;固態磁盤更容易損壞&#xff08;第三點是固態磁盤的缺點&#xff09;&#xff0c;由于固態…

面試問題匯總 精選 分析 解答 職業規劃 part 3

《劍指Offer——名企面試官精講典型編程題》已經出版 非常感謝博客上的讀者&#xff0c;是大家的關心、支持和鼓勵讓我有信心寫完這本書并最終出版發行&#xff08; china-pub互動網、 亞馬遜卓越網、 淘寶網、 京東網、 當當網上有售&#xff09;。網友們的鼓勵讓我在 博客上的…

java 分布式rpc框架_分布式RPC框架Apache Dubbo(一)

4 Dubbo快速入門Dubbo作為一個RPC框架&#xff0c;其最核心的功能就是要實現跨網絡的遠程調用。本小節就是要創建兩個應用&#xff0c;一個作為服務的提供方&#xff0c;一個作為服務的消費方。通過Dubbo來實現服務消費方遠程調用服務提供方的方法。4.1 服務提供方開發開發步驟…

輕松獲知數據庫事務

標題索引事務作用事務流程隔離級別實例驗證事務作用事務是確保數據庫系統數據的完整性的功能&#xff0c;如現在互聯網行業支付業務&#xff0c;不管服務器出于什么原因異常中斷&#xff0c;客戶要么支付成功要么支付不成功&#xff0c;支付成功數據庫金額即會發生變化&#xf…

Python冒泡排序(4)

Python代碼&#xff1a; """ 冒泡排序&#xff08;4&#xff09;在未排序的數中&#xff0c;通過兩兩比較[換位]的方式&#xff0c;將最小的數移至首位 N個數排序&#xff0c;則需要執行N-1輪&#xff0c;第1輪比較N-1次&#xff0c;后續每輪比上一輪少比較1次本…

打印hello world java_java – 如何打印“hello world”?

數字4946144450195624適合64位&#xff0c;其二進制表示為&#xff1a;10001100100100111110111111110111101100011000010101000該程序對每5位組的字符進行解碼&#xff0c;從右到左00100|01100|10010|01111|10111|11111|01111|01100|01100|00101|01000d | l | r | o | w | | o…

研發人員為什么留不住

研發人員為什么留不住&#xff1f;(1)——問題與現象 研發團隊做為公司的核心&#xff0c;承擔了完成項目為公司賺錢的目的。研發人員在公司倍受重視的同時&#xff0c;并沒有降低流失率。 問題與現象 以下問題相信您會在朋友口中&#xff0c;甚至自己的公司聽到。 老板說&a…

算法與編程--1

1、編寫一個程序&#xff0c;將a.txt文件中的單詞與b.txt文件中的單詞交替合并到c.txt文件中&#xff0c;a.txt文件中的單詞用回車符分隔&#xff0c;b.txt文件中用回車或空格進行分隔。 package com.test;import java.io.File; import java.io.FileNotFoundException; import …

Safari支不支持HTML5錄音? 現在瀏覽器中最好的解決方案是WebRTC下的 navigator.getUserMedia API。...

先放結論&#xff1a;Safari支不支持HTML5錄音&#xff1f; ——據我調查&#xff0c;不支持。 現在瀏覽器中最好的解決方案是WebRTC下的 navigator.getUserMedia API。 可是當使用Can I use查看兼容性的時候&#xff0c;我發現 不過這個是有歷史原因的&#xff0c;我記得RTC是…

python lambda map reduce_簡單了解python filter、map、reduce的區別

這篇文章主要介紹了簡單了解python filter、map、reduce的區別,文中通過示例代碼介紹的非常詳細&#xff0c;對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下python中有一些非常有趣的函數&#xff0c;面試的時候可能會遇到。今天也來總結一下&#xff0c;不…

面試問題匯總 精選 分析 解答 職業規劃 part 4

程序員做業余項目、記筆記和寫博客的重要性【經典】 編程是一種創造過程&#xff0c;業余項目允許程序員在沒有截止日期或各種限制的條件下&#xff0c;以探索形式編程。業余項目之所以重要&#xff0c;有以下幾個原因。 探索新技術 每天都會不斷有新技術出現&#xff0c;而…

NB-IOT連接移動onenet平臺流程

1. 先創建賬號&#xff0c;然后創建產品 2. 創建設備&#xff0c;用ATCGSN和ATCIMI查詢NB-IOT的IMEI和IMSI填寫上去。 3. 創建好的設備。 轉載于:https://www.cnblogs.com/429512065qhq/p/8359247.html

sort,uniq,wc指令簡單用法

sort用于排序&#xff0c;可以根據不同的數據類型來進行排序&#xff0c;例如想要查看最后一個登陸的用戶信息&#xff0c;可以把last和sort結合起來使用&#xff0c;按照登陸時間排序。 使用sort排序&#xff1a; sort常用參數&#xff1a; -f &#xff1a;忽略大小寫的差異 -…

java ejb jsp 架構_JavaEE架構

B/S 體系結構image.pngJava EE 經典架構image.pngJava EE 13規范JDBCimage.pngJDBC 對象與接口java.sql.DriverManager&#xff1a;用于管理JDBC驅動的服務類&#xff0c;當JDBC驅動加載至內存后&#xff0c;DriverManager會自動注冊JDBC驅動&#xff0c;然后通過getConnection…

音視頻中的CBR,VBR,ABR

視頻碼率CBR和VBR 固定碼率&#xff08;CBR&#xff09;與可變碼率&#xff08;VBR&#xff09; 一般在我們輸出視頻文件的時候都會碰到一個選擇即CBR與VBR&#xff0c;CBR的英文全稱是Constant Bit Rate翻譯過來是固定碼率&#xff0c;就是說每一秒種的畫面如果看做是一個…

fifo java_java – 如何保證ThreadPoolExecutor中的FIFO執行順序

我用這行代碼創建一個ThreadPoolExecutor&#xff1a;private ExecutorService executor new ThreadPoolExecutor(5, 10, 120, TimeUnit.SECONDS, new ArrayBlockingQueue(20, true));然后,我運行25個任務(T01到T25),所以情況是&#xff1a;>目前正在運行的5個任務(T01到T0…

HihoCoder 1671 DFS

本以為是個簡單的水題&#xff0c;好吧&#xff0c;其實就是個水題&#xff0c;雖然我還是…… 題意的理解上有一點小小的問題orz&#xff0c;這里的括號里的字母是可以看成一個整體的&#xff0c;可以看作一個字母來進行反轉&#xff0c; 比如說&#xff0c;(abc(de))&#xf…