寫這篇文章主要是因?yàn)榕既豢吹揭黄P(guān)于stackoverflow公司的面經(jīng)中提到了一個(gè)有趣的面試編程問題,如題所述:FizzBuzz問題。原文引用如下:

     “在一些公平的考驗(yàn)之后,我發(fā)現(xiàn)那些因?yàn)榇a而抓狂的人不是為了龐大的項(xiàng)目,而是在細(xì)小的地方就纏不休。所以我開始研究這些問題,收集這些編程人員的特點(diǎn) 和歸結(jié)成一類問題,取名為“FizzBuzz 問題”。 FizzBuzz問題是一種英國(guó)學(xué)校學(xué)生經(jīng)常玩的游戲。舉個(gè)“FizzBuzz 問題”的例子:

寫一個(gè)程序打印1到100這些數(shù)字。但是遇到數(shù)字為3的倍數(shù)的時(shí)候,打印“Fizz”替代數(shù)字,5的倍數(shù)用“Buzz”代替,既是3的倍數(shù)又是5的倍數(shù)打印“FizzBuzz”。

大部分優(yōu)秀的程序員都應(yīng)該能在紙上輕易地把這個(gè)程序?qū)懗鰜?,也就幾分鐘的事情。但你想知道一個(gè)令人震驚的事實(shí)嗎?多數(shù)計(jì)算機(jī)科學(xué)專業(yè)的畢業(yè)生不會(huì)做這道題。我還見過一個(gè)自稱是高級(jí)程序員的人做這道題,他居然花了10~15分鐘。

Dan Kegel在招聘初級(jí)程序員的時(shí)候,也經(jīng)歷了類似的事情:令人驚訝的是,有相當(dāng)一部分的應(yīng)聘者(包括那些獲得計(jì)算機(jī)科學(xué)專業(yè)的碩士或博士學(xué)位的人),當(dāng)他們被要求完成一個(gè)基本的編程任務(wù)時(shí),他們都通不過,因此面試失敗。舉例來說,我曾經(jīng)碰到過一些畢業(yè)生,他們居然回答不出"寫一個(gè)從1數(shù)到10的循環(huán)"或者"在16進(jìn)制里F后面的數(shù)是什么"之類的問題。如果務(wù)實(shí)一點(diǎn),我在面試中也碰到過很多應(yīng)聘者,他們不會(huì)用遞歸去解決一個(gè)實(shí)際的問題。但這些都是基本的技能。如果他們不會(huì),只能說明他們很可能根本就沒寫過程序。

      乍看這個(gè)問題的時(shí)候感覺題目敘述很清楚啊,思路也很簡(jiǎn)單啊,比現(xiàn)在很多公司用的字符串逆序,字符串空格替換啥的簡(jiǎn)單多了啊,為什么還會(huì)如此火地作為一個(gè)面試編程題?自己動(dòng)手寫了個(gè),1分鐘搞定,沒毛病。然后懷著疑問就去百度了下,還真有各種

網(wǎng)友評(píng)論