導航:首頁 > 程序命令 > 帶程序員的智力題

帶程序員的智力題

發布時間:2022-08-06 06:21:17

① 腦筋急轉彎題

1.什麼人專干」弄虛作假」.」無中生有」的事,卻不犯法?
演員
2.什麼公雞不打鳴兒?
鐵公雞
3.什麼狗不守夜?
走狗
4.什麼馬不拉車?
鞍馬

程序員面試 腦筋急轉彎 求答案

一般這句話用在「你不相信別人的時候」,你就會說:「程序員面試,你就 編 吧!
(這個應該不應解釋了吧,程序員的工作主要是編程
絕對准確,謝謝@!

③ 程序員最常去的酒吧腦筋急轉彎

答案:Foo Bar。

術語foobar, foo, bar, baz和qux經常在計算機編程或計算機相關的文檔中被用作佔位符的名字。當變數,函數,或命令本身不太重要的時候,foobar, foo, bar, baz和qux就被用來充當這些實體的名字,這樣做的目的僅僅是闡述一個概念,說明一個想法。

這些術語本身相對於使用的場景來說沒有任何意義。Foobar經常被單獨使用;而當需要多個實體舉例的時候,foo,bar,和baz則經常被按順序使用。

關於程序員的腦筋急轉彎

1、程序員什麼情況下會選擇離職?

答案:在他無法獲取到數組的時候(tips:arrays的發音)。

2、你怎樣才能知道一個計算機科學家是內向還是外向的?

答案:外向的計算機科學家在跟你說話的時候會看著你的鞋子。

④ 六年級數學趣味智力題(附上答案)

a、一個破車要走兩英哩的路,上山及下山各一英哩,上山時平均速度每小時15英哩問當它下山走第二個英哩的路時要多快才能達到每小時30英哩?

b、阿米巴用簡單分裂的方式繁殖,它每分裂一次要用3分鍾。將一個阿米巴放在一個盛了營養參液的容器內,1小時後容器內充滿了阿米巴,問如果先前以二個阿米巴開始而不是一個,那麽要多長時間才能使容器充滿?

2、他們會相遇嗎?
「你從哪兒打電話來?」伯特問道。此刻他正在默頓街和斯普路斯街交角處的辦公室里,一邊聽著電話,一邊透過窗戶注視著窗外擁擠的交通。
「在戴爾街和金街交叉處的一個公用話亭,」傳來的是本恩的微弱的回答,「從你那兒往南走四個街段,往東走幾個街段!」
伯特看了一下鍾,喊道:「你現在就開始走,我們在半路上碰面!」他砰地一聲放下電話。而只是在這個時候他才意識到自己剛才太快掛了電話,沒講清楚互相怎麼走法。
實際上,在兩個交叉點之間恰好有70種不同走法的線路,而且線路之間的選擇跟距離沒有什麼關系。
那麼,你怎麼理解本恩話中「幾個」的意思呢?

3、他的第一份工作
「嗨!約翰尼斯,」星期天喬在街上遇到一個年輕人向他喊道,「好久不見,我聽說你開始工作啦!」
「幾個星期了,」約翰尼斯回答道,「這是一份計件工作,我幹得挺好的。第一星期我得了四十多美元,而且後來每個星期都比前一個星期多賺99美分。」
「這真是巧事!」喬笑了笑並繼續說,「願你一如繼往都能這樣!」
「我估計用不了多久我一個星期便能賺到60美元,」年輕人告訴喬,「自從開始工作到現在,我已經賺了整整407美元。這的確不壞!」
試問,約翰尼斯第一個星期賺了多少?
4、聚會之後
「昨晚他們離開的時候似乎都還清醒,」鮑勃說著,此時他剛剛從辦公室回到家。
「我看不會比你更糟,」他妻子確信地信,「怎麼啦?」
鮑勃淡淡地笑了笑,「他們四個人整天都在給我打電話,」他告訴她,「我得去解開這個謎結。他們一個個都互相拿錯了別人的大衣和另一個人的帽子。」
「你到家的時候我就覺得有點不對勁,」貝蒂笑道,「繼續講你這個傷心的故事吧!」
「好吧,我分頭說:喬拿走了一個傢伙的大衣,而那個傢伙的帽子又被史蒂夫拿走;史蒂夫的大衣是被另一個人拿走的,而那個人又拿走了喬的帽子。」
「那麼羅恩又怎麼樣呢?」貝蒂對此頗感興趣。
「他第一個打電話來,」鮑勃回答,「他把多哥的帽子拿走了。」
這真是一次十足的聚會!試問,喬和史蒂夫拿走了誰的大衣和帽子?
5、一個彈子的游戲
「你們自己來,但每人只拿12個,」吉姆一邊說著一邊從盒子里摸出了一打彈子,「我們這里綠色的彈子比藍色的少,而藍色的彈子又比紅色的少。所以大家拿的時候,每人紅的要拿最多,綠的要拿最少。但每種顏色都要拿!」
吉姆自己這樣做後,其他的男孩也都照著做。這里總共只有三種顏色的彈子,而且盒子里彈子的數量也剛好夠大家拿。
「我們大夥拿法全都不一樣!」喬觀察了一下大家拿出的彈子說道。「只有我有四個藍的!」
「那又怎麼樣?」皮特發現自己在地下掉了一個綠色的彈子,於是把它撿了起來,「讓我們玩吧!」
於是他們開始玩起彈子的游戲。
這里總共有26個紅色的彈子。試問這里有多少個男孩呢?
6、頭發的顏色
在一個與外界不往來的村莊中,住了三個人。這三個人都不能說話,但都很聰明。這村莊人的頭發,不是黑色就是紅色。 這村莊也沒有任何可經由反射而看到自己的物體(如:鏡子,湖水)所以這三人都無法得知自己頭發的顏色。
這村莊有個習俗:知道自己頭發的顏色後再自殺,可以快樂的上天堂;若猜錯自己頭發顏色就自殺,那就會痛苦地下地獄。 這三個人都很想上天堂,但都苦於無法得知自己的發色而遲遲無法進行。 這三人每天中午都會在廣場上聚集,彼此相望,希望能得知自己的頭發顏色。 這種困境一直到一個外地人的介入而打破。
有一天,一個外地人進入了這村莊,在廣場碰到了這三人, 隨口說了一句話:「你們三人至少有一個是紅頭發。」說完便離開村莊了。 當天三人聽完這句話,都紛紛回家苦思。 第二天中午,三人依舊一起在廣場見面。第二天晚上回去,就有兩人自殺成功。 第三天中午,只剩一個人到廣場。此人回去後也自殺成功了。
請問:這三人的頭發分別為什麼顏色?
7、1=2的證明
推理的藝術觸及到我們生活的方方面面,比如決定吃什麼,用一張什麼樣的地圖,買一件什麼樣的禮物,或者證明一個幾何定理,等等。有關推理的種種技巧,都演入了問題的解決之中。在推理中一個小小的毛病都可能導致十分怪異和荒謬的結果。例如,你是一名計算機的程序員,你就會擔心由於某一步驟的忽略而導致了一種無限的循環。我們中間誰能保證在我們的解釋、解答或證明中不會發現一點錯誤呢?在數學中除以零是一種常見的錯誤,它能引發像下面「」1=2「」的證明那樣的荒謬的結果。你能發現它錯在哪裡嗎?
1=2?
如果a=b,且a,b>0,則1=2。
證明:
1)a,b>0 已知
2)a=b 已知
3)ab=bb 第2步「=」的兩邊同「×b」
4)ab-aa=bb-aa 第3步「=」的兩邊同「-aa」
5)a(b-a)=(b+a)(b-a) 第4步的兩邊同時分解因式
6)a=(b+a) 第5步「=」的兩邊同「÷(b-a)」
7)a=2a 第2,6步替換
8)a=2a 第7步同類項相加
9)1=2 第8步「=」的兩邊同「÷」
作者: T.帕帕斯
8、乘車兜風
「你在忙乎什麼吧,比爾,」教授留意地說。這時他的這位朋友正一口氣喝完剩下的咖啡,站起來要走。
「准備帶三個女孩乘車游覽!」比爾答道。
教授笑了:「原來如此!敢問三位佳麗芳齡幾許?」
比爾思考片刻說:「把她們年齡乘在一起得到2450,可她們年齡和恰是您年齡的兩倍」。
教授搖了搖頭說:「非常靈巧,但對她們的年齡仍然有疑問。」
比爾還在那裡,他補充道:「是的,我忘了提起,我的年齡至少要比那個歲數最大的小一歲。」而這使得一切都變得清楚了!
當然,教授是知道他朋友的年齡的,請問,你能算出他們的年齡嗎?
9、去別墅
「都已經把一家子都帶到別墅去了,」鮑勃說道,「那兒多好,晚上非常安靜,沒有汽車喇叭聲。」
「但你那兒警察照常上班,」雷恩評論說,「難道你那裡沒有警察?」
「我們不需要警察!」鮑勃笑道,「倒是有一個出現在我們駕車中的難題值得你想。情況是怎樣的:頭15英里我們平均時速40英里。接著大約在九分之幾的路上,我們開得快一些。而在剩下的七分之一路程上,我們一直開得很快。全程的平均車速正好是每小時56英里。」
「你說的『九分之幾』是什麼意思?」雷恩問。
「這里的『幾』是精確有整數,」鮑勃回答道,「而後面兩段路程上的車速,也都是每小時整數英里。」
鮑勃自然不會帶著一家子人用瘋狂的速度去駕駛,盡管也可能那段路上剛好沒有警察!
試問,在最後七分之一的旅途中,鮑勃他們的平均車速是多少?
10、一位在需要時候的朋友
點燃雪茄後約翰靠回到自己的椅子上,他顯得對自己的生活很滿意。「是的,」他開懷地笑著說,「在三十年前,當我們在一起還是十幾歲孩子的時候,我絕沒有想過後來會過得這么好。」
他的來訪者微微笑了笑。在過去那些日子,他們曾是好朋友,但那是很久以前的事了。今天當他急需一份工作的時候,一種古老的友誼又有什麼價值呢?「你的兩位兄弟怎麼樣?」他問道,「他們都比你年輕是嗎?」
約翰點點頭:「幹得不錯。本恩,就是最小的那個,已有近百萬家產。而泰德,就是原先愛耍小聰明的那個男孩,現在家住華盛頓。比爾,你過去好像計算上挺在行的,看看這樣一道問題怎麼樣?」
這位大亨潦草地寫著他的問題,而比爾卻在充滿希望中等待了幾分鍾:「本恩的年齡乘以我和泰德年齡的差,與我的年齡乘以他們之間年齡的差恰好少1。這里年齡都是取整年算的。」
「太糟了,」比爾傷心地搖頭道,「我本打算來你這兒求份工作,卻沒想到你倒向我經銷起自己的計算能力!」
比爾自然得到了工作。然而,找出那三個人的年齡無疑會給你帶來快樂。
11、一場溫和的賭博
「我沒有一美分的零幣,」漢克說著,一邊叮當地敲著他的錢幣,「你有多少?」
本恩查看了一下回答道:「正好五枚。怎麼啦?」
「想知道嗎?我想我們來一次小小的賭博游戲怎麼樣?」漢克一邊說一邊開始分牌,「規定這樣的:第一局輸的人,輸掉他錢的五分之一;第二局輸的人,輸掉他那時擁有的四分之一;而第三局輸的人,則須支付他當時擁有的三分之一。」
於是他們玩了,並且互相間准確付了錢。第三局本恩輸了,付完錢後他站起來聲明說:「我覺得這種游戲投入的精力過多,回報太少。直到現在我們之間的錢數,總共也只相差七美分。」
這自然是很小的賭博,因為他們合起來一共也只有75美分的賭本。
試問,在游戲開始的時候漢克有多少錢呢?
12、獎金
當秘書走進辦公室時,傑克微笑著說:「貝蒂,現在我事情已經做完,請把其他人都叫進來。」
很快,包括貝蒂在內的五個職員都來到他跟前,不知出了什麼事。但老闆很快使他們輕鬆起來。傑克告訴他們:「我想你們一定很高興知道,我在克萊蒙的交易最後贏利了,這里有一筆260美元的獎金,在你們之間分配,作個意思。」
貝蒂想自己職位較低,「也許輪不上我」這令人沮喪的念頭,刺傷了她的心。
但令人滿意的是,傑克繼續說道:「我已經算出了你們跟我工作的完整的年限,並按這個比例發放獎金,但允許男人比女孩每年多得一半。」他一邊說,一邊遞給每人一個信封。突發的感激,使雇員們顯得有些局促不安。
這對他們來說確是一種好運氣!
已知他們工作的完整年限分別是2,3,5,6和7年。請你算出在傑克的職員中女性有幾人?
12、狂怒的大女子主義者的寓言和股票市場
我寫這個寓言是在1997年10月股市大跌的一個星期之後。它發生在一個地點不明的愚昧的大女子主義村子裡。在這個村子裡,有50 對夫婦,每個女人在別人的丈夫對妻子不忠實時會立即知道,但從來不知道自己的丈夫如何。該村嚴格的大女子主義章程要求,如果一個女人能夠證明她的丈夫不忠實,她必須在當天殺死他。又假定女人們是贊同這一章程的、聰明的、能意識到別的婦女的聰明、並且很仁慈(即她們從不向那些丈夫不忠實的婦女通風報信)。假定在這個村子裡發生了這樣的事:所有這50個男人都不忠實,但沒有哪一個女人能夠證明她的丈夫的不忠實,以至這個村子能夠快活而又小心翼翼地一如既往。有一天早晨,森林的遠處有一位德高望重的女族長來拜訪。她的誠實眾所周知,她的話就像法律。她暗中警告說村子裡至少有一個風流的丈夫。這個事實,根據她們已經知道的,只該有微不足道的後果,但是一旦這個事實成為公共知識,會發生什麼?
答案是,在女族長的警告之後,將先有49個平靜的日子,然後,到第50天,在一場大流血中,所有的女人都殺死了她們的丈夫。要弄明白這一切是如何發生的,我們首先假定這里只有一個不忠實的丈夫A先生。
除了A太太外,所有人都知道A先生的背叛,因而當女族長發表她的聲明的時候,只有A太太從中得知一點新消息。作為一個聰明人,她意識到如果任何其他的丈夫不忠實,她將會知道。因此,她推斷出A先生就是那個風流鬼,於是在當天就殺了他。
現在假定有兩個不忠實的男人,A先生和B先生。除了A太太和B太太以外,所有人都知道這兩起背叛,而A太太只知道B太太家的,B太太只知道A太太家的。A太太因而從女族長的聲明中一無所獲。但是第一天過後,B太太並沒有殺死B先生,她推斷出A先生一定也有罪。B太太也是這樣,她從A太太第一天沒有殺死A先生這一事實得知,B先生也有罪。於是在第二天,A太太和B太太都殺死了她們的丈夫。
如果情形改為恰好有三個有罪的丈夫,A先生、B先生和C先生,那麼女族長的聲明在第一天不會造成任何影響,但類似於前面描述的推理過程,A太太、B 太太和C太太會從頭兩天里未發生任何事推斷出,她們的丈夫都是有罪的,因而在第三天殺死了他們。藉助一個數學歸納法的過程,我們能夠得出結論:如果所有50個丈夫都是不忠實的,他們的聰明的妻子們終究能在第50天證明這一點,使那一天成為正義的大流血日。
現在我們把森林遠處來的女族長的警告代替為對去年(1997)夏天泰國、馬來西亞和其他亞洲國家的通貨問題的警告;妻子們的緊張和不安代替為投資者的緊張和不安;妻子們只要自己的「公牛」沒有被刺傷就心滿意足代替為投資者們只要自己的「公牛」沒有被刺傷就心滿意足;殺丈夫代替為拋股票;警告和殺戮之間的50天間隔代替為東亞問題和大崩盤之間的延遲,你就會得到這次大崩盤的成因。更清楚地說,利益息息相關的金融集團們可能已經在懷疑其他的亞洲經濟是不堪一擊的,但直到某人如此公開地說,並最終發覺了他們自身的不堪一擊以前,他們是不會行動的。這樣,馬來西亞總理在1997年4月批評西方銀行的講話就起著女族長的警告那樣的作用,促成了他最擔心的這次危機。
幸好不像是故事中的丈夫們那樣,市場是能夠再生的。華爾街波濤後來的此起彼伏說明,如果妻子們能夠讓丈夫們在煉獄中短暫停留之後再復活的話,這種類比就會更加逼真。這就是地球村中的生與死、買和賣。
(註:本文是美國數學家珀洛斯(J. P. Paulos)1998年的科普暢銷書《從前有個數(Once upon a number)》的片斷。)
13、獵人的手錶
一個住在深山中的獵人,他只有一隻機械表掛在手上,這天,表因忘了上發條而停了,附近又沒有地方可以校對時間。
他決定下山到市集購買日用品,出門前他先上緊機械表的發條,並看了當時的時間是上午6:35(時間已經是不準了),途中會經過電信局,電信局的時鍾是很準的,獵人看了鍾並記下時間,上午9:00,到過市集采購完,又繞原路經過電信局,看了當時電信局的時鍾指在上午10:00,回到家裡,手上的表指著上午10:35。
獵人如何調校出正確的時間呢?此時的標准時間應該是多少?

⑤ 誰有程序員的面試題,例如東軟公司,或其他公司的程序員面試題

程序員面試一直是社區樂於討論的熱門話題。
這篇文章是站在面試官角度對於程序員面試問題的一個階段性反思和經驗總結。
【目標】
相信和不少朋友一樣,有了幾年工作經驗成為Senior後就開始了面試別人的經歷。作者在最初這個階段只是按照自己的想像把」找到基礎好的程序員「,」找到演算法能力優秀的程序員「,」找到有Android開發經驗的程序員「等作為面試的目標。但是,實際的經歷告訴作者,尤其是按「基礎好」,「演算法好」這些目標招到的人最終效果並不好。比如,有的面試者基礎知識和演算法掌握情況不錯,進程、線程、內存等概念清晰,基本的Hash,二叉樹,快速排序等數據結構和演算法也比較熟悉,但是進公司後在實際工作中表現得很糟糕。後來,作者才發現原來是作者的面試目標出了問題,作者原先的面試方法更像是大學的演算法或操作系統期末考試,按照這種方法讓許多並不合適的人通過了面試,同時也可能錯過了許多合適的人。
後來,作者的反思是,從公司的角度講,面試的根本目的是找到"能夠干好工作"的人,而「高學歷」,「演算法好」,「基礎好」,「有經驗」這些都是表象而不是根本,它們並不能直接和「工作好」劃等號。
【方法】
目標明確了,但接下來的問題是假設面試者是一個黑盒系統,「工作好」不是直接可觀測變數,你所能直接觀測的變數是基礎、演算法、經驗、學歷、性格、談吐、年齡等等。所以,實際上,你只能從「基礎好」,「演算法好」等可以直接觀測的量去推測「工作好」的概率,這就是一個在「X好「條件下"工作好「的條件概率問題:P(工作好 | X好)。
根據這個模型,面試所應該考察哪些方面就很明顯了,那就是選擇那種最具有區分性的方面來考察。比如,考察面試者的體型特徵沒有太大意義,因為P(工作好|高),P(工作好|矮),P(工作好|胖),P(工作好|瘦)的概率都差不多;所以,體型特徵不具有區分性,這不是面試所應該關注的內容。
面試官應當結合職位的要求明確哪些因素具有比較好的區分性。比如,如果要招一名技術門檻比較高的3D游戲引擎開發工程師,面試者A具有3D游戲引擎開發的經驗,但是在基礎知識和演算法面試方面表現一般;面試者B相反,基礎知識和演算法面試表現很好,但沒有游戲開發經驗,而你只能選擇其一。你選誰呢?其實,這就是兩個條件概率問題P(工作好|經驗好,基礎一般,演算法一般)和P(工作好|沒經驗,基礎好,演算法好)。這個問題就留給面試官來判斷了,就作者個人而言,對於技術門檻較高需要技術積累的職位,經驗更加說明問題,因此,作者更傾向於面試者A。
下面,作者再結合自己的經驗談談對面試中常見方面的看法。
【演算法】
演算法是Google和MS等大公司面試所重點考察的內容。作者個人很喜歡演算法,曾經參加ACM/ICPC拿過北京賽區的13名。但是,就個人經驗來看,作者所接觸過的絕大多數開發職位而言,演算法都不適合作為考察面試者優劣的主要因素。對於普通的非演算法性開發職位,考察面試者的演算法就相當於考察他打乒乓球好不好一樣,與目標「工作好」的相關性太低。就作者個人的經驗來看,差不多P(工作好|演算法好)=50%,也就是演算法面試沒有太大的區分性。
甚至,還有一種很不好的情況特別多地出現在演算法好的面試者身上,作者稱之為「只磨刀,不砍柴」。什麼意思呢?有類人只對什麼A*演算法,非同步編程,JVM類載入機制這種純技術問題感興趣,對實現用戶需求毫無興趣。這類人看起來有一定的技術能力,但是對公司來講貢獻十分有限,甚至不如技術一般但認真負責的人。所以,一旦遇到面試者演算法好,作者就特別留意考察會不會是這種「只磨刀,不砍柴」的人。
另外,雖然作者個人不了解Google和MS,但作者對於其特別重視考察演算法能力的面試策略是持懷疑態度的。即使在這樣的世界級大公司,演算法雖然重要,但可以想像在項目實施過程所遇到的各種各樣問題中,演算法問題絕大多數時候不會是主要瓶頸,沒有到那種需要每個人都是演算法高手的情況。實際上,絕大多數項目真正難點並不是一兩個演算法瓶頸,甚至也不是單點的技術瓶頸,而是系統性的組織、協調、設計、開發問題,有大量的看起來不是那麼有技術含量的臟活累活,也有許多問題是由於信息不足,並不是技術能力強就能克服這些困難。一個團隊最好優勢互補,有人演算法強,有人業務分析能力強,有人擅長後端服務,有人擅長前端界面,有人聰明,有人踏實,這是最好的。如果按照「演算法好」的單一標准選材,必定會把許多優秀的人才拒之門外。
補充:在更多地了解了Google和Facebook等一流公司的面試細節之後,作者對這個問題的認識有了一定的改變,實際上這些公司在面試過程中並不完全強調技巧性很強的演算法,而是更加註重編碼(Coding)能力,只是在進行編碼測試的過程中往往是通過一些簡單演算法題來進行的。作者對於這種面試方法越來越欣賞,並且也作為了作者們公司面試過程中的重點環節,因為編碼能力的測試是十分必要的,它有著知識性問題無法取代的作用,如果一個面試者連「判斷一個字元串是否是另一個字元串的子串」這樣的題目都無法正確並快速地實現,那麼基本上可以直接排除了。作者這里所強調的是不必考察高難度的演算法問題,並非不重視編碼能力測試,請讀者不要誤解
【基礎】
基礎面試是指考察諸如指針使用、進程線程概念等基礎知識的面試,十分類似於大學期末考試題。作者曾經以為基礎面試十分重要,但是現在不這么看了。在工作中基礎的確是重要的,但是在面試過程中,它必須具有區分性才有意義,也就是說P(工作好|基礎好)的概率要高,那麼考察指針使用,進程線程區別這樣的基礎題目才有它的意義。作者的實際經驗是,基礎面試並不具有很好的區分性,和演算法一樣, 差不多P(工作好|基礎好) = 50%。同時,基礎面試是最容易准備的,中國人有長期的應試教育經驗,要准備幾個把玩指針題目太容易了。
作者曾經遇到過這樣的面試者,他的C語言基礎和編譯、鏈接等原理掌握得非常好,給作者留下了深刻的印象,作者給的面試結論是:知識面不寬,只會C語言,但基礎很扎實,建議錄用。後來的事情證明了那個結論的前半部分是對的,但是」建議錄用「錯了。他在實際工作中表現得一塌糊塗,不理解需求,不理解整體架構;同時,上班時間不是花在項目上,而是花在閱讀諸如《程序員的自作者修養》之類的書籍上。最後,這位同事由於長期「不出活」離開了公司。
基礎不是不重要,而是「基礎好」不足以說明面試者能幹好工作,因為基礎是屬於局部性知識,而實際工作需要綜合性能力,二者有天壤之別。C語言、操作系統能考高分,但是不會寫程序的人在大學作者們還見得少嗎? 軟體開發就像蓋房子,綜合能力是設計和搭骨架,基礎知識是碼磚。張小龍原先Foxmail是Delphi開發的,他它不懂C#,你如果要招聘一個開發.NET Email客戶端的人,你考察他對CLR掌握得好不好有意義嗎? 讓張小龍來開發一個C#版的Foxmail真的會有困難嗎? 你招一個精通C#但沒有Email客戶端開發經驗的人來真的比張小龍靠譜嗎?
作者說基礎知識不重要,和古人說的「不積窪步無以至千里」是不是矛盾呢?不矛盾!「窪步」與「千里」是一種可累加關系,但再多的「基礎知識」都累加不成「綜合能力」。學習軟體開發要像持續集成一樣,一開始就是一個完整的系統,雖然規模不大,問題很多,但它麻雀雖小五臟俱全,從小系統到大系統,從簡單系統到復雜系統逐步演化。
所以,基礎好本身不足以說明太多的問題,必須進一步考察綜合能力。對於基礎面試表現不好的面試者,如果時間允許也要進一步考察,有的面試者其實是有能力的,只是沒有進行充分的准備。最理想的狀態當然是基礎和綜合能力俱佳,若不能兼顧,應當綜合能力優先。
【經驗】
這里所說的經驗不是通過工作了多少年來衡量的,而主要是指面試者的經歷,比如,是否完整地實現過一個軟體,或作為主要開發者完成過一個項目。經驗的重要性在於它能說明一個人的綜合能力。從項目的性質、規模和難度,面試官就可以大致判斷出面試者的綜合能力。如果一個面試者一直在大公司負責一個小模塊的開發維護,那麼基本可以判斷他不具備獨立或作為主要開發者承擔一個項目的能力,只適合在另一家大公司做類似的事情。對於門檻較高需要長期技術積累的職位,相關經驗更顯得尤為重要,比如,Linux內核開發,JVM開發,游戲引擎開發,資料庫實現,高級UX等。對於這類職位,沒有經驗的面試者即使綜合素質不錯也是需要長時間的學習和積累才能勝任。所以,基本上如果確定了你的職位屬於此類,那麼相關經驗毫無疑問應該成為首選因素,換句話說,P(工作好 | 相關經驗好)的概率是非常高的。
通過項目經驗判斷面試者的優劣比通過基礎和演算法測試更加靠譜,所以,面試過程中面試官應該花比較多的時間聽面試者介紹項目經驗,並進行深入地探討交流,了解面試者的知識面、思維能力、表達能力等。同時,可以結合項目提一些基礎知識和演算法的問題,比如,如果面試者做過C++相關的項目,那就可以問他如何進行內存管理?是否熟悉智能指針?如果面試者的回答不能令人滿意,那麼就基本上可以判斷他的項目做得不是很好。
要注意的是,經驗也是一個多維度的事物。比如,C++股票交易中間件系統,這就涉及(C++,中間件,股票) 3個維度。假如面試者A做過C++股票交易客戶端,面試者B做過C的股票交易中間件。從語言角度看,A最匹配,從項目性質看,B最匹配,你如何選擇?這就是在多個維度中,哪個維度更重要的問題,就這個例子而言,作者個人更傾向於B,因為作者認為中間件開發經驗是主要矛盾,而從C切換到C++並不是問題。所以,面試官需要判斷哪一種經驗是主要的,而哪一種經驗是次要的。比如,作者們招聘Android應用開發,這個職位的Android技術門檻並不高,它的真正難點在於做出好的用戶體驗(UX)。所以,如果一個面試者沒有Android的經驗作者們是可以接受的,但是作者希望他在UX方面有經驗,至少做過其他平台的移動應用開發。
【性格】
現在,作者來談作者認為最重要的因素:性格。這可能是許多初為面試官的朋友所難以想像的,怎麼會是性格最重要呢?說實話,當作者意識到這一點時,作者自己也很驚訝!說白了,還是 P(工作好|性格好)的概率最高啊。作者的實際經驗是,如果一個人的性格好,他能把工作做好的可能性是最高的,性格好遠比基礎好、演算法好要靠譜。
一個人如果技術上有缺陷,經驗上有不足,但性格好,在團隊中是很容易由其他人來補位的,他自己也很容易逐漸補起來;相反,如果一個人的性格不好,所有的技術優勢經驗優勢都發揮不出來,甚至還會起到負作用,而且性格缺點很難改變。作者一直談到實際工作所需要的是綜合性的能力,這種綜合能力的發揮中性格是至關重要的。項目中不止會遇到技術問題,要涉及溝通、協調,不同的人不同的部門既有合作又有磨擦,如何處理這些事情都需要一個良好的性格。可以說,在開發團隊里讓你與眾不同的不是你從哪個學校畢業,也不是你過去的經驗,而是你的性格
當然,性格是一個復雜的東西,它包含了很多的方面,並非所有方面都是程序員面試所需要關注的。作者的經驗是可以重點考察這些方面:
1) 態度積極還是消極。有的面試者在談吐中就會自然給你一種積極上進的感覺,或者你可以在他的經歷中發現他積極的因素,這些都不是太難看出來的。相反,有的面試者你能明顯感覺到他的消極情緒。積極性在工作中是十分重要的,積極的人能給團隊帶來朝氣,也更易於合作。基本上,如果確定面試者屬於態度積極的,他通過作者這一關的可能性就會大大增加;相反,如果確定屬於態度消極的,即使技術能力不錯作者也會十分謹慎。
2) IQ。作者的經驗是,總體來看,聰明的人在工作中的表現更為優秀。在面試中要考察一個人是否聰明並不一定要像Google和MS那樣找些專門測試IQ的智力題,其實,你只需要看他討論問題是不是很有邏輯性,思考和說話是不是反應敏捷就可以做出大致的判斷。另外,眼睛是人心靈的窗戶,一個人聰明與否,眼睛是會說話的。不過,聰明也不完全是優點,比如,當公司或項目遇到困難時,往往是聰明人先跑掉了,堅守的往往是IQ一般的人。
3) 語言表達能力。語言表達能力也是程序員十分重要的一項素質,它關繫到項目中的溝通是否順暢。面試官可以看看面試者能否用簡明的語言介紹清楚曾經做過的項目,能否抓住要點,能否考慮到聽者的相關背景。一般來講,語言表達能力強的人綜合能力都不會太差。(面試網 www.mian4.net)
4) 是否具有用戶意識。有人說程序員是做研發的,哪來什麼用戶?只有銷售、市場人員才會和用戶打交道。其實,這是完完全全的錯誤認識。你寫一個模塊,甚至一個API,只要有別人用,他就是你的用戶。有的程序員設計一個模塊或是一個軟體總是習慣於從使用者的角度來考慮,盡量地方便使用者,這就是一種良好的用戶意識。具有良好的用戶意識的人更能考慮別人的感受和整體的需要,而不是單純地從自己和局部來思考問題。當面試者談及過去的項目經驗時,面試官可以常常站在用戶的角度對其進行提問,從這個過程中觀察其是否具有良好的用戶意識。
5) 如何應對質疑和壓力。面試官應該對面試者的回答以及以往項目進行合理的質疑,看看他如何應對。曾經有一位面試者談到做游戲登錄伺服器的經歷,作者就問:「如果登錄伺服器掛了,怎麼辦呢」?他說原先雖然沒有考慮這個問題,但是可以怎麼怎麼改進。其實,大家都理解項目中有各種不完美,這裡面原因很多,只要面對質疑和壓力能從容應對努力往好的方向思考解決就可以了,不需要掩飾缺陷,更不應該有情緒。作者遇到過有的面試者,一旦你對其項目提出質疑,他馬上產生反抗情緒,或不高興,或不承認有問題,這很容易一下子看出來他在工作中容不得質疑和批評,這種人要想合作就很困難。
6) 個性特點。許多面試者喜歡在簡歷上寫「精通C++/Linux「,這些字眼看得人麻木,如果有人寫」喜歡C++/Linux「,作者就會有一種眼前一亮的感覺。「精通」是沒有感情色彩的敘述,而「喜歡」包含了面試者的個性,作者更願意看到面試者的個性。作者相信對某樣東西真正的熱情遠比你當前對它的掌握程度更為重要。其實,N年的經歷告訴作者們,同一個班的同學,同一個項目組的同事,雖然每天所學的知識,所接觸的工作都是相同的,但其實每個人的成績和表現差異是十分明顯的。那麼,到底本質的差異是什麼呢?其實,就是每個人的個性。是個性使得有的人業余時間去打球,有的人業余時間去看書,有的人喜歡Linux,有的人喜歡Mac。一個人在團隊中扮演的角色也和他的個性有很大的關系。面試官應該引導面試者展現自己的個性,並判斷其是否有益於團隊。
【總結】
最後總結起來,作者的經驗是:
1) 面試官的目標是找到」工作好「的人,一定要圍繞這個目標來進行面試,如果把面試當成了演算法或操作系統期末考試這就走入了誤區;
2) 面試過程是通過學歷、性格、基礎、經驗、演算法等可以測試的因素去綜合判斷面試者「工作好」的概率;

3) 在各種因素中,性格 > 經驗 > 基礎 > 演算法。性格是最重要的,如果性格不好,所有技術能力都會大打折扣,而且技術缺陷容易彌補,性格缺陷很難改變;經驗體現了一個人的綜合能力,你可以從面試者過去的經歷中判斷他能從事哪種工作,不能從事哪種工作;基礎和演算法則主要起到輔助參考的作用,基礎好的程序員一般適應性比較強,學新技術更快,但是切忌單純從基礎來判斷一個人的能力。
更多程序員面試問題請登陸楚湘人才網

⑥ 20、老婆給當程序員的老公打電話:「下班順路買一斤包子帶回來,如果看到賣西瓜的,買一個。」當晚,程序

意思就是做程序員的人,思路類似於計算機而不是正常人的平常思維.

下班後,老公按照老婆的吩咐照做,順序是這樣的:

下班後,腦子里先載入一個買包子的業務需求.於是腦子里有了這么一個概念/變數 = 包子.

然後看到了賣西瓜的,在程序員的腦子里,思路就是類似如下的偽代碼:

如果(看見賣西瓜的) {
買一個.
}
//問題就出在這里.已經看到賣西瓜的了,就要執行這里的內容.但是買一個,買一個什麼呢?老婆沒有明確聲明這里的"一個"後面是什麼.那麼就默認調用已有的內容(也就是上面的包子)

//於是就買了"一個"包子/

所以要是男朋友是程序員,笑話里的老婆有兩種方法來避免上面的問題:
要麼,在"順路買一斤包子帶回來"這句話之後,明確告訴老公,買包子的事情已經到此告一段落.後面的事情和買包子無關.
要麼,在"買一個"之後明確指出是買一個"西瓜"而不是包子.

⑦ 所提問題為程序員問題,或者可以理解為腦筋急轉彎。 現有從1到100這一百個整數,數據是無序排列的,

你告訴我就行了唄

⑧ 很難的智力題

1
有十隻錢袋,每隻錢袋裡分別裝著十個銅板,其中有一個袋子裝的是每枚九克的銅板,另外的九隻錢袋裝的全是每枚十克的銅板。問:只許你稱一次,你能稱出哪只錢袋裡裝的是每枚九克的銅板。
參考答案
第一個袋子里拿出1個銅板,第二個袋子拿2個,第三個拿出3個。。。以此類推,一共拿出55個銅板,把55個一起稱,看稱出的實際重量比550克少多少克,就等於是一共有多少個9克的銅板,而9克銅板的數量等於裝9克銅板的袋子號(例如少一克就是第一個袋子,少2克就是第二個袋子。。)

2(猜牌問題)
S先生、P先生、Q先生他們知道桌子的抽屜里有16張撲克牌:紅桃A、Q、4 黑桃J、8、4、2、7、3 草花K、Q、5、4、6 方塊A、5。約翰教授從這16張牌中挑出一張牌來,並把這張牌的點數告訴 P先生,把這張牌的花色告訴Q先生。這時,約翰教授問P先生和Q 先生:你們能從已知的點數或花色中推知這張牌是什麼牌嗎? 於是,S先生聽到如下的對話: P先生:我不知道這張牌。Q先生:我知道你不知道這張牌。 P先生:現在我知道這張牌了。 Q先生:我也知道了。 聽罷以上的對話,S先生想了一想之後,就正確地推出這張牌是什麼牌。 請問:這張牌是什麼牌?
解題思路:
由第一句話「P先生:我不知道這張牌。」可知,此牌必有兩種或兩種以上花色,即可能是A、Q、4、5。如果此牌只有一種花色,P先生知道這張牌的點數,P先生肯定知道這張牌。由第二句話「Q先生:我知道你不知道這張牌。」可知,此花色牌的點數只能包括A、Q、4、5,符合此條件的只有紅桃和方塊。Q先生知道此牌花色,只有紅桃和方塊花色包括A、Q、4、5,Q先生才能作此斷言。 由第三句話「P先生:現在我知道這張牌了。」可知,P先生通過「Q先生:我知道你不知道這張牌。」判斷出花色為紅桃和方塊,P先生又知道這張牌的點數,P先生便知道這張牌。據此,排除A,此牌可能是Q、4、5。如果此牌點數為A,P先生還是無法判斷。 由第四句話「Q先生:我也知道了。」可知,花色只能是方塊。如果是紅桃,Q先生排除A後,還是無法判斷是Q還是4。綜上所述,這張牌是方塊5。
參考答案:
這張牌是方塊5。

智力題3(燃繩問題) 燃繩問題
燒一根不均勻的繩,從頭燒到尾總共需要1個小時。現在有若干條材質相同的繩子,問如何用燒繩的方法來計時一個小時十五分鍾呢?
解題思路:
燒一根這樣的繩,從頭燒到尾1個小時。由此可知,頭尾同時燒共需半小時。同時燒兩根這樣的繩,一個燒一頭,一個燒兩頭;當燒兩頭的繩燃盡時,共要半小時,燒一頭的繩繼續燒還需半小時;如果此時將燒一頭的繩的另一頭也點燃,那麼只需十五分鍾。
參考答案:
同時燃兩根這樣的繩,一個燒一頭,一個燒兩頭;等一根燃盡,將另一根掐滅備用。標記為繩2。再找一根這樣的繩,標記為繩1。一頭燃繩1需要1個小時,再兩頭燃繩2需十五分鍾,用此法可計時一個小時十五分鍾。

4 乒乓球問題
假設排列著100個乒乓球,由兩個人輪流拿球裝入口袋,能拿到第100個乒乓球的人為勝利者。條件是:每次拿球者至少要拿1個,但最多不能超過5個,問:如果你是最先拿球的人,你該拿幾個?以後怎麼拿就能保證你能得到第100個乒乓球?
解題思路:
1、我們不妨逆向推理,如果只剩6個乒乓球,讓對方先拿球,你一定能拿到第6個乒乓球。理由是:如果他拿1個,你拿5個;如果他拿2個,你拿4個;如果他拿3個,你拿3個;如果他拿4個,你拿2個;如果他拿5個,你拿1個。2、我們再把100個乒乓球從後向前按組分開,6個乒乓球一組。100不能被6整除,這樣就分成17組;第1組4個,後16組每組6個。3、這樣先把第1組4個拿完,後16組每組都讓對方先拿球,自己拿完剩下的。這樣你就能拿到第16組的最後一個,即第100個乒乓球。
參考答案:
先拿4個,他拿n個,你拿6-n,依此類推,保證你能得到第100個乒乓球。
試題擴展:
1、假設排列著100個乒乓球,由兩個人輪流拿球裝入口袋,能拿到第100個乒乓球的人為勝利者。條件是:每次拿球者至少要拿2個,但最多不能超過7個,問:如果你是最先拿球的人,你該拿幾個?以後怎麼拿就能保證你能得到第100個乒乓球?(先拿1個,他拿n個,你拿9-n,依此類推)2、假設排列著X個乒乓球,由兩個人輪流拿球裝入口袋,能拿到第X個乒乓球的人為勝利者。條件是:每次拿球者至少要拿Y個,但最多不能超過Z個,問:如果你是最先拿球的人,你該拿幾個?以後怎麼拿就能保證你能得到第X個乒乓球?(先拿X/(Y+Z)的余數個,他拿n個,你拿(Y+Z)-n,依此類推。當然必須保證X/(Y+Z)的余數不等於0)

5(喝汽水問題)
喝汽水問題
1元錢一瓶汽水,喝完後兩個空瓶換一瓶汽水,問:你有20元錢,最多可以喝到幾瓶汽水?
解題思路1:
一開始20瓶沒有問題,隨後的10瓶和5瓶也都沒有問題,接著把5瓶分成4瓶和1瓶,前4個空瓶再換2瓶,喝完後2瓶再換1瓶,此時喝完後手頭上剩餘的空瓶數為2個,把這2個瓶換1瓶繼續喝,喝完後把這1個空瓶換1瓶汽水,喝完換來的那瓶再把瓶子還給人家即可,所以最多可以喝的汽水數為:20+10+5+2+1+1+1=40
解題思路2:
先看1元錢最多能喝幾瓶汽水。喝1瓶餘1個空瓶,借商家1個空瓶,2個瓶換1瓶繼續喝,喝完後把這1個空瓶還給商家。即1元錢最多能喝2瓶汽水。20元錢當然最多能喝40瓶汽水。
解題思路3:
兩個空瓶換一瓶汽水,可知純汽水只值5角錢。20元錢當然最多能喝40瓶的純汽水。N元錢當然最多能喝2N瓶汽水。
參考答案:
40瓶

試題拓展:
1、1元錢一瓶汽水,喝完後兩個空瓶換一瓶汽水,問:你有N元錢,最多可以喝到幾瓶汽水?(答案2N) 2、9角錢一瓶汽水,喝完後三個空瓶換一瓶汽水,問:你有18元錢,最多可以喝到幾瓶汽水?(答案30) 3、1元錢一瓶汽水,喝完後四個空瓶換一瓶汽水,問:你有15元錢,最多可以喝到幾瓶汽水?(答案20)
智力題6(分割金條) 分割金條
你讓工人為你工作7天,給工人的回報是一根金條。金條平分成相連的7段,你必須在每天結束時給他們一段金條,如果只許你兩次把金條弄斷,你如何給你的工人付費?
解題思路:
本題實質問題是數字表示問題。由1、2兩個數字可表示1-3三個數字。由1、2、4三個數字可表示1-7七個數字(即1,2,1+2,4,4+1,4+2,4+2+1)。由1、2、4、8四個數字可表示1-15十五個數字。依此類推。
參考答案:
把金條分成1/7、2/7和4/7三份。這樣,第1天我就可以給他1/7;第2天我給他2/7,讓他找回我1/7;第3天我就再給他1/7,加上原先的2/7就是3/7;第4天我給他那塊4/7,讓他找回那兩塊1/7和2/7的金條;第5天,再給他1/7;第6天和第2天一樣;第7天給他找回的那個1/7。

試題拓展:
1、你讓工人為你工作15天,給工人的回報是一根金條。金條平分成相連的15段,你必須在每天結束時給他們一段金條,如果只許你三次把金條弄斷,你如何給你的工人付費?(1/15,2/15,4/15,8/15)2、你讓工人為你工作31天,給工人的回報是一根金條。金條平分成相連的31段,你必須在每天結束時給他們一段金條,如果只許你四次把金條弄斷,你如何給你的工人付費?(1/31,2/31,4/31,8/31,16/31)3、你讓工人為你工作(2^n)-1天,給工人的回報是一根金條。金條平分成相連的(2^n)-1段,你必須在每天結束時給他們一段金條,如果只許你n-1次把金條弄斷,你如何給你的工人付費?(1/((2^n)-1),2/((2^n)-1),4/((2^n)-1),...)4.人民幣為什麼只有1、2、5、10的面值?(便於找零錢。理想狀態下應是1、2、4、8,在現實生活中常用10進制,故將4、8變為5、10。只要2有兩個,1、2、2、5、10五個數字可表示1-20。)

6小明一家過一座橋,過橋時候是黑夜,所以必須有燈。現在小明過橋要1秒,小明的弟弟要3秒,小明的爸爸要6秒,小明的媽媽要8秒,小明的爺爺要12秒。每次此橋最多可過兩人,而過橋的速度依過橋最慢者而定,而且燈在點燃後30秒就會熄滅。問小明一家如何過橋?

。但是換個思路,我們根據具體情況來決定誰持燈來去,只要稍稍做些變動即可:第一步,小明與弟弟過橋,小明回來,耗時4秒;第二步,小明與爸爸過河,弟弟回來,耗時9秒;第三步,媽媽與爺爺過河,小明回來,耗時13秒;最後,小明與弟弟過河,耗時4秒,總共耗時30秒。

7 每個飛機只有一個油箱, 飛機之間可以相互加油(注意是相互,沒有加油機) 一箱油可供一架飛機繞地球飛半圈, 問題:為使至少一架飛機繞地球一圈回到起飛時的飛機場,至少需要出動幾架飛機?(所有飛機從同一機場起飛,而且必須安全返回機場,不允許中途降落,中間沒有飛機場,)
假設地球一圈要耗油量為20,飛一半同時也是飛機攜帶量為10
讓abc三飛機向東(假設了東西兩相反方向),飛到八分之一之一時每個飛機都消耗了2.5的油量。abc此時都有7.5 讓後c返回 並各注入2.5到其餘2飛機上使得ab還是10在飛八分之一 此時離開初始點為四分之一路程。需要5的油量返回,而ab都還有7.5 貢獻掉b飛機的2.5,讓b回城。此時a孤軍作戰還有10的滿油量 可以使勁飛個2分之一地球 。。。然後同理def三家飛機再來接那剩餘的四分之一路程 一路走來按照bc的貢獻方法使f接到快掛的a時候有10的油量,此時a和f一起用10的油量跑完剩餘的5的路程

abcdef。。。。。六架嘛

⑨ 中國第一位程序員腦筋急轉彎

英國著名詩人拜倫的女兒Ada Lovelace曾設計了巴貝奇分析機上解伯努利方程的一個程序。她甚至還建立了循環和子程序的概念。由於她在程序設計上的開創性工作,Ada Lovelace被稱為世界上第一位程序員。

⑩ 程序員智力題

1、32

2、1號周二,共30天,30號周三

3、各行、列、對角線和都是15(所有數和的1/3),具體解法很多,自行搜索「九宮格」「數獨」

4、畫個圖表求解很容易,X表示休息,O表示上班(圖中的第幾天不代表星期幾)

剩下的就簡單了,因為有一天(周日)三家都不上班,明顯只有第二天可以,所以第二天就是周日,而有一天三家都上班,明顯只有第七天可以

所以結果是:A休息日,周三、六、日;B休息日周二、四、日;C休息日周一、四、日;周五大家都上班





閱讀全文

與帶程序員的智力題相關的資料

熱點內容
培訓班出來的程序員解決問題很差 瀏覽:961
程序員那麼可愛25集 瀏覽:753
伺服器地址和ip地址一樣不 瀏覽:664
php中括弧定義數組 瀏覽:602
php列印堆棧 瀏覽:516
華為adb命令行刷機 瀏覽:965
人像攝影pdf 瀏覽:761
解壓文件密碼怎樣重新設置手機 瀏覽:1001
高考指南pdf 瀏覽:695
爬蟲python數據存儲 瀏覽:240
u盤怎麼取消加密 瀏覽:431
567除以98的簡便演算法 瀏覽:342
pdf手機如何解壓 瀏覽:21
python描述器 瀏覽:60
戰地聯盟3解壓密碼 瀏覽:805
s型命令 瀏覽:25
php年薪5年 瀏覽:71
如何上網上設個人加密賬戶 瀏覽:45
linux打開ssh服務 瀏覽:79
微信位置可以加密嗎 瀏覽:471