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