亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

范文資料網(wǎng)>人事資料>招聘與面試>《程序員電話面試常見問題

程序員電話面試常見問題

時(shí)間:2022-04-05 12:38:00 招聘與面試 我要投稿
  • 相關(guān)推薦

程序員電話面試常見問題

身為程序員,你肯定知道和其他技術(shù)工作面試比起來,編程工作的面試流程略有不同。

程序員電話面試常見問題

本文就程序員在編程面試中應(yīng)當(dāng)避免的10個(gè)問題進(jìn)行說明,同時(shí)也給出了如何解決這些問題的建議。

1.從未在紙上或白板上寫過代碼

這是求職者最容易犯的大錯(cuò)之一。絕大多數(shù)編程面試都會安排在紙上或白板上。而與電腦上大量的編碼練習(xí)相比,絕大多數(shù)求職者極少在紙上或白板上進(jìn)行編碼練習(xí)。

用慣了IDE(或是文本編輯器)的求職者會在如何保持紙間良好代碼規(guī)范這第一步上磕磕碰碰。眾所周知,編碼規(guī)范是編程面試的必要條件。而且,在紙上 寫代碼的時(shí)候,沒有編譯器幫你指出明顯的編譯時(shí)錯(cuò)誤。此外,在專家組前方的白板上編碼時(shí),絕大多數(shù)求職者會感到不安。所以面試前,做些紙上或白板上的編碼 練習(xí)吧。

2.不要硬記代碼

很多畢業(yè)新生會去背一些常見問題的答案。好比很多程序員都知道如何“用C中的位運(yùn)算來交換兩數(shù)”。但并不是所有人都知道那段代碼真正做了些什么,又是如何完成這項(xiàng)任務(wù)的。

死記硬背并不是C編程面試的捷徑。即便你僥幸答對了一兩題,如果不了解基礎(chǔ)概念還是無法通過整個(gè)面試。關(guān)鍵要了解編程背后的概念。重點(diǎn)并不在于你知道多少種語言,而在于你有多了解這些語言。

3.與面試官極少交流

覺得題目有問題或是有其他疑問時(shí),最好和面試官談?wù)劇?/p>

即便不知道某個(gè)特定問題的答案,比起靜靜坐著或是談些與該問題全然無關(guān)之物,誠實(shí)地承認(rèn)不知道會更好。你還可以講講其他與原來問題相關(guān)的話題,并告訴他們你在這個(gè)話題上很擅長。

4.不準(zhǔn)備電話面試

近來很多公司在讓求職者參與下一輪面試前會安排電話面試以便初步評定。電話面試與面對面面試有很大不同。電話面試要求良好的聽說技巧。

保證在回答前認(rèn)真聽問什么。面試官也許會給你一段代碼并讓你基于這段代碼回答一些問題。參加電話面試前手里有只筆,有張紙很重要。

還有,不要用精準(zhǔn)的書面用語回答所有問題,因?yàn)槟菢拥脑,面試官也許會覺得你答題時(shí)一直在完全搬照網(wǎng)上資料。

5.代碼凌亂

不要低估代碼規(guī)范的重要性。不管你多博聞強(qiáng)識,多有創(chuàng)造力,記得他們是在為你的編程技巧評定。面試官下任何結(jié)論前都要先讀懂你的代碼,如果你代碼很凌亂,面試官也許壓根就不想看。

面試官只是一方面,規(guī)范編碼還有助于求職者寫出正確的程序。相比一團(tuán)糟的代碼,規(guī)范編碼出bug的可能性更小。

6.對思路避而不談

面試官會對你解決問題的方法很感興趣。他們不期望你能解決所有提出的問題,但希望你能給出正確的思路。

例如,你正寫一個(gè)用C指針交換兩數(shù)的程序,正確的思路(即調(diào)用含待交換變量地址的函數(shù)并獲取指針參數(shù)地址)才是真正重要的。面試官應(yīng)該會在其他卡殼的地方提示你。

所以,答題時(shí)大聲說出你的思路把。這是讓面試官參與其中的好方法。

7.不好的函數(shù)、變量命名習(xí)慣

無論面試時(shí)用哪種語言解決問題,盡量用相關(guān)的變量和函數(shù)名,這會有助于代碼維護(hù)。

舉個(gè)例子,假設(shè)你隨手為函數(shù)和變量命名,寫了成千上萬行代碼。現(xiàn)在,新人要加入并調(diào)試這段代碼?烧{(diào)試這種甚至無法理解變量代表什么的代碼,純粹是做夢。

面試官可能認(rèn)為這是一個(gè)缺點(diǎn),也可能不這樣認(rèn)為,但站在安全的一方總是更穩(wěn)妥。此外,編寫交換兩個(gè)變量的函數(shù)時(shí),明明可以取名為‘swap’非用‘func’做名字的行為是不會被賞識的。

8.簡歷中有你所不知道的技術(shù)

這是新手的另一大錯(cuò)。為了讓簡歷入圍,求職者會列很多編程語言以及很多不甚了解的技術(shù)名詞。雖然這也許能為你贏得面試機(jī)遇,但余下的經(jīng)歷肯定不會很愉快。幾分鐘內(nèi),面試官就能了解你的真正水平和技能。

9.沒有自信

和任何面試一樣,自信在編程面試中也很重要。有時(shí)面試官故意讓你回答一道錯(cuò)題。這種情況下,如果知識過硬也有信心的話,你可以輕易指出題目中的疏漏并向面試官提。

回答正確卻對自己的回答信心不足的話,入選幾率不會很高。這是因?yàn)闆]有公司愿意雇傭沒有自信的人。

10.壓力過大及睡眠不足

面試前不要熬夜準(zhǔn)備。面試過程中,你要保證頭腦清晰,精力充沛。

很多求職者在答題時(shí)頭腦一片空白,尤其是站在白板前面對專家組時(shí)。面試壓力使得這對求職者而言是常事。好好睡一覺,面試前盡量放松。

程序員面試要注意的問題2015-04-27 14:36 | #2樓

[導(dǎo)讀]當(dāng)您向一個(gè)對象發(fā)送一個(gè)autorelease消息時(shí),Cocoa就會將該對象的一個(gè)引用放入到最新的自動釋放池。它仍然是個(gè)正當(dāng)?shù)膶ο,因此自動釋放池定義的作用域內(nèi)的其它對象可以向它發(fā)送消息。當(dāng)程序執(zhí)行到作用域結(jié)束的位置時(shí),自動釋放池就會被釋放,池中的所有對象也就被釋放。

       1、自動釋放池是什么,如何工作?

當(dāng)您向一個(gè)對象發(fā)送一個(gè)autorelease消息時(shí),Cocoa就會將該對象的一個(gè)引用放入到最新的自動釋放池。它仍然是個(gè)正當(dāng)?shù)膶ο,因此自動釋放池定義的作用域內(nèi)的其它對象可以向它發(fā)送消息。當(dāng)程序執(zhí)行到作用域結(jié)束的位置時(shí),自動釋放池就會被釋放,池中的所有對象也就被釋放。 

       2、說一說static 關(guān)鍵字

(1)函數(shù)體內(nèi) static 變量的作用范圍為該函數(shù)體,不同于 auto 變量,該變量的內(nèi)存只被分配一次, 

因此其值在下次調(diào)用時(shí)仍維持上次的值; 

(2)在模塊內(nèi)的 static 全局變量可以被模塊內(nèi)所用函數(shù)訪問,但不能被模塊外其它函數(shù)訪問; 

(3)在模塊內(nèi)的 static 函數(shù)只可被這一模塊內(nèi)的其它函數(shù)調(diào)用,這個(gè)函數(shù)的使用范圍被限制在聲明 

它的模塊內(nèi); 

(4)在類中的 static 成員變量屬于整個(gè)類所擁有,對類的所有對象只有一份拷貝; 

(5)在類中的 static 成員函數(shù)屬于整個(gè)類所擁有,這個(gè)函數(shù)不接收 this 指針,因而只能訪問類的static 成員變量。  

     3、什么事單件實(shí)例

Foundation 和 Application Kit 框架中的一些類只允許創(chuàng)建單件對象,即這些類在當(dāng)前進(jìn)程中的唯一實(shí)例。舉例來說,NSFileManager 和NSWorkspace 類在使用時(shí)都是基于進(jìn)程進(jìn)行單件對象的實(shí)例化。當(dāng)向這些類請求實(shí)例的時(shí)候,它們會向您傳遞單一實(shí)例的一個(gè)引用,如果該實(shí)例還不存在,則首先進(jìn)行實(shí)例的分配和初始化。單件對象充當(dāng)控制中心的角色,負(fù)責(zé)指引或協(xié)調(diào)類的各種服務(wù)。如果類在概念上只有一個(gè)實(shí)例(比如 

NSWorkspace),就應(yīng)該產(chǎn)生一個(gè)單件實(shí)例,而不是多個(gè)實(shí)例;如果將來某一天可能有多個(gè)實(shí)例,您可 

以使用單件實(shí)例機(jī)制,而不是工廠方法或函數(shù)。

     4、說說Objective-C,有哪些優(yōu)點(diǎn)哪些不足

objc優(yōu)點(diǎn): 

1) Cateogies 

2) Posing 

3) 動態(tài)識別 

4) 指標(biāo)計(jì)算 

5)彈性訊息傳遞 

6) 不是一個(gè)過度復(fù)雜的 C 衍生語言 

7) Objective-C 與 C++ 可混合編程 

不足: 

1) 不支援命名空間 

2)  不支持運(yùn)算符重載 

3)不支持多重繼承 

4)使用動態(tài)運(yùn)行時(shí)類型,所有的方法都是函數(shù)調(diào)用,所以很多編譯時(shí)優(yōu)化方法都用不到。(如內(nèi)聯(lián)函數(shù)等),性能低劣。 

      5、#import和#include的區(qū)別,@class代表什么?

@class一般用于頭文件中需要聲明該類的某個(gè)實(shí)例變量的時(shí)候用到,在m文件中還是需要使用#import

而#import比起#include的好處就是不會引起重復(fù)包含

     6、線程和進(jìn)程的區(qū)別?

進(jìn)程和線程都是由操作系統(tǒng)所體會的程序運(yùn)行的基本單元,系統(tǒng)利用該基本單元實(shí)現(xiàn)系統(tǒng)對應(yīng)用的并發(fā)性。

進(jìn)程和線程的主要差別在于它們是不同的操作系統(tǒng)資源管理方式。進(jìn)程有獨(dú)立的地址空間,一個(gè)進(jìn)程崩潰后,在保護(hù)模式下不會對其它進(jìn)程產(chǎn)生影響,而線程只是一個(gè)進(jìn)程中的不同執(zhí)行路徑。線程有自己的堆棧和局部變量,但線程之間沒有單獨(dú)的地址空間,一個(gè)線程死掉就等于整個(gè)進(jìn)程死掉,所以多進(jìn)程的程序要比多線程的程序健壯,但在進(jìn)程切換時(shí),耗費(fèi)資源較大,效率要差一些。但對于一些要求同時(shí)進(jìn)行并且又要共享某些變量的并發(fā)操作,只能用線程,不能用進(jìn)程。

     7、Object-C的內(nèi)存管理?

1.當(dāng)你使用new,alloc和copy方法創(chuàng)建一個(gè)對象時(shí),該對象的保留計(jì)數(shù)器值為1.當(dāng)你不再使用該對象時(shí),你要負(fù)責(zé)向該對象發(fā)送一條release或autorelease消息.這樣,該對象將在使用壽命結(jié)束時(shí)被銷毀.

2.當(dāng)你通過任何其他方法獲得一個(gè)對象時(shí),則假設(shè)該對象的保留計(jì)數(shù)器值為1,而且已經(jīng)被設(shè)置為自動釋放,你不需要執(zhí)行任何操作來確保該對象被清理.如果你打算在一段時(shí)間內(nèi)擁有該對象,則需要保留它并確保在操作完成時(shí)釋放它.

3.如果你保留了某個(gè)對象,你需要(最終)釋放或自動釋放該對象.必須保持retain方法和release方法的使用次數(shù)相等.

     8、屬性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那種情況下用?

readwrite 是可讀可寫特性;需要生成getter方法和setter方法時(shí)

readonly 是只讀特性  只會生成getter方法 不會生成setter方法 ;不希望屬性在類外改變

assign 是賦值特性,setter方法將傳入?yún)?shù)賦值給實(shí)例變量;僅設(shè)置變量時(shí);

retain 表示持有特性,setter方法將傳入?yún)?shù)先保留,再賦值,傳入?yún)?shù)的retaincount會+1;

copy 表示賦值特性,setter方法將傳入對象復(fù)制一份;需要完全一份新的變量時(shí)。

nonatomic 非原子操作,決定編譯器生成的setter getter是否是原子操作,atomic表示多線程安全,一般使用nonatomic