求職故事之程序員
每個(gè)人的求職經(jīng)歷都會(huì)不一樣,下面是應(yīng)屆畢業(yè)生小編給大家整理提供關(guān)于程序員的求職故事,快來(lái)隨小編一起閱讀了解吧。
我曾經(jīng)也參加過(guò)一些大大小小的公司筆試、面試,牛掰如阿里百度騰訊,犀利如Google,Mircosoft,盛大研究院,無(wú)一例外,均將我秒殺。讓我一度懷疑自己是否是程序員的料,幼小的心靈從那時(shí)起,留下了巨大的陰影。當(dāng)然,N次大公司的面試失敗以后,歸結(jié)成兩條經(jīng)驗(yàn)教訓(xùn):缺乏筆試面試的技巧,非科班出身(實(shí)質(zhì)是計(jì)算機(jī)知識(shí)不成體系)。
關(guān)于面試筆試,就六個(gè)字:技巧+實(shí)力+運(yùn)氣。
本文只涉及四個(gè)字:技巧+實(shí)力。當(dāng)然,本文的技巧,不同于一般意義的“技巧”。
面試筆試是需要技巧的
面試是需要技巧的,這一點(diǎn)沒(méi)有人否認(rèn)。筆試、面試時(shí)有相當(dāng)比例的題目的是跟程序員相關(guān),但又沒(méi)那么緊密相關(guān)的東西。比如考察邏輯思維能力、抽象思維能力的題目,大公司尤其注重這一點(diǎn),感覺(jué)有點(diǎn)測(cè)試智商的味道。好吧,我承認(rèn),我的智商有時(shí)候不夠用。不可否認(rèn)有極個(gè)別的聰明人存在,這些天才,思維活躍,面對(duì)一些極品難題,他們都能佛擋殺佛。但事實(shí)上大部分人的邏輯思維能力,都是通過(guò)平時(shí)有意識(shí)的鍛煉出來(lái)的,而不是與生俱來(lái)的。
我想說(shuō)的是:只要你不笨,只要你有意識(shí)去鍛煉自己這方面的能力,這個(gè)東西其實(shí)跟你的知識(shí)體系的`建立是一樣的,得靠積累。如果你沒(méi)事只知道刷微博,刷朋友圈,你的“智商”也永遠(yuǎn)是停留在那個(gè)水平。
曾遇到一個(gè)面試官問(wèn)了這么個(gè)題目,至今印象深刻,分享給大家,看看自己的腦袋還夠用不。
題目:
給你兩個(gè)一模一樣的玻璃球,已知這種玻璃球,從一棟總共有一百層樓的高樓的某一層樓X扔下來(lái),剛好破碎(即在X層以下不會(huì)摔碎,在X層以上均會(huì)摔碎)。讓你用最少的次數(shù)找出這個(gè)臨界樓層。(注意:你只有兩個(gè)玻璃球,所以只有兩次蛋碎的機(jī)會(huì)。并假設(shè),每扔一次球,如果球沒(méi)碎,它的堅(jiān)硬程度不發(fā)生改變)。
最差答案:
一種最差的解法如下:從第一百層樓開(kāi)始扔玻璃球,如果沒(méi)有摔碎,則跑到第99層樓扔,以此類推,最壞的情況是,在第一層樓扔的時(shí)候球才摔碎。因此最大需要扔100次才能找出臨界樓層。(這種解法,我們只用了一個(gè)玻璃球,另外一個(gè)玻璃球還沒(méi)用上啊!)
面試筆試是需要實(shí)力的
程序員面試筆試,考察的技術(shù)相關(guān)的東西主要有:編程語(yǔ)言、算法、設(shè)計(jì)模式、操作系統(tǒng)、項(xiàng)目經(jīng)驗(yàn)等等。基本功扎實(shí)了,面試筆試就有底氣了,如果再多點(diǎn)實(shí)際工程經(jīng)驗(yàn),那么面試對(duì)你來(lái)說(shuō),就是五個(gè)字:那都不是事
廢話說(shuō)了這么多,進(jìn)入本文主題,如何用一個(gè)月的時(shí)間去準(zhǔn)備google的技術(shù)面試??
這個(gè)問(wèn)題已經(jīng)被問(wèn)過(guò)無(wú)數(shù)多遍,也被無(wú)數(shù)人回答過(guò)。我結(jié)合自身的經(jīng)驗(yàn)教訓(xùn),來(lái)梳理總結(jié)一下。
一
1.1過(guò)一遍常用的數(shù)據(jù)結(jié)構(gòu):鏈表、二叉樹(shù)、堆樹(shù) (Tree+Heap)、(紅黑樹(shù)、AVL)(可選)。隊(duì)列、堆、棧、hash表。
1.2 研究一下上述數(shù)據(jù)結(jié)構(gòu)在你熟悉的編程語(yǔ)言中是如何實(shí)現(xiàn)的。例如,如果你熟悉Java,可以學(xué)習(xí)下HashMap、LinkedHashMap、TreeSet、HashSet等等這些常用數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)。
1.3自己動(dòng)手編碼實(shí)現(xiàn)這些數(shù)據(jù)結(jié)構(gòu),而不是僅僅寫(xiě)出偽代碼就完事了。
二
2.1過(guò)一遍你課堂上學(xué)過(guò)的經(jīng)典算法:各種排序算法、圖的遍歷算法、最短路徑算法等等。
2.2 知道怎么求一個(gè)算法的時(shí)間復(fù)雜度。
2.3 寫(xiě)代碼時(shí),有意識(shí)的關(guān)注程序的空間復(fù)雜度,這點(diǎn)在實(shí)際工作中很有用。因?yàn)閮?nèi)存很多時(shí)候會(huì)不夠用。
三
3.1 用你熟悉的編程語(yǔ)言實(shí)現(xiàn)第一、第二兩部分。在編碼實(shí)現(xiàn)的過(guò)程中,試著不借助任何參考資料來(lái)完成。
3.2 在完成3.1所說(shuō)的編碼后,試著從時(shí)間、空間兩個(gè)維度去優(yōu)化你所寫(xiě)的程序。
四
練習(xí)面試問(wèn)題。選擇一本面試相關(guān)的書(shū),例如《Cracking the coding interview》,親手練習(xí)一下書(shū)中的題目,在紙上書(shū)寫(xiě)或在IDE中編寫(xiě)都行。(PS:很多面試官都喜歡讓你在紙上寫(xiě)程序,所以,有意識(shí)的練習(xí)練習(xí)吧,不要太依賴IDE了)。在解答相關(guān)面試題時(shí),注意不斷改進(jìn)、優(yōu)化你的解法。例如,將時(shí)間復(fù)雜度從n*n優(yōu)化到nlogn。
五
練習(xí)在白板上分析、解決問(wèn)題,并能夠?qū)⒛憬鉀Q問(wèn)題的思路清晰的表達(dá)出來(lái)。(這一點(diǎn)要求比較高,尤其對(duì)一些“羞射”的程序員們)。在解決某一個(gè)給定問(wèn)題時(shí),對(duì)于你給出的解決方案,你得有充分的理由。你為什么選用這種數(shù)據(jù)結(jié)構(gòu),這種算法來(lái)解決這個(gè)問(wèn)題。
上述五大點(diǎn)是真的很重要,我自己曾經(jīng)在這上面就犯了眼高手低的錯(cuò)誤,只親手實(shí)現(xiàn)了其中的一部分。在只有一個(gè)月時(shí)間的情況下,時(shí)間安排如下:
1)最多用1.5周的時(shí)間完成第一點(diǎn)和第二點(diǎn)。
2 )至少花一周的時(shí)間徹底搞懂你尚未明白的問(wèn)題。
3 )然后剩下的時(shí)間,在白板上編碼實(shí)現(xiàn)吧
【求職故事之程序員】相關(guān)文章:
求職故事之求職奇遇07-09
求職故事之舍我其誰(shuí)06-27
求職故事之原則07-26
求職故事之替兒求職07-09
求職禮儀故事之電話求職技巧11-11
一個(gè)程序員的求職故事03-31
求職故事之你必須走人03-15
求職故事之給考官擦鞋08-15
松下幸之助求職故事03-31