軟件版從本周開始進(jìn)行話題討論,歡迎大家提出話題,更歡迎大家參與討論,我們共同分享。
 
12日午時(shí),強(qiáng)烈推薦WINDam的找工作經(jīng)驗(yàn)帖《一個(gè)計(jì)算機(jī)本科生的求職之路【by WINDam】》
http://forum.byr.edu.cn/wForum/disparticle.php?boardName=SoftDesign&ID=26595&pos=5
 
系列第二篇:【第二彈】尋找實(shí)習(xí)的思考【 by amiao】 http://forum.byr.edu.cn/wForum/disparticle.php?boardName=SoftDesign&ID=26677&pos=5
 
 
本周的一個(gè)話題是關(guān)于實(shí)習(xí)的準(zhǔn)備,尋找,經(jīng)歷,經(jīng)驗(yàn)等,主要面向技術(shù)方向的人士,也歡迎非技術(shù)的人們來分享。
小生不才,撰文一篇,拋磚引玉了。
由于文章比較長,話比較多,這篇文章關(guān)注實(shí)習(xí),下面我還會(huì)有一篇文章,關(guān)注工作,出國,讀研這三條路的選擇。希望能看到更多技術(shù)人員來分享實(shí)習(xí)的經(jīng)驗(yàn)和思考。
 
Ok, 言歸正傳,這篇文章分為兩大部分
第一部分是我這幾個(gè)月來尋找實(shí)習(xí)的一個(gè)過程和經(jīng)歷。
第二部分是我的一些思考和總結(jié)。

 
閱讀指南:
一不小心寫多了...快成流水賬了....
能看完的人,我佩服你的耐心。
第二部分的一些總結(jié),明天再寫了
紅色的部分是關(guān)鍵句
藍(lán)色部分是主要提綱
綠色的部分是一些比較冗長的細(xì)節(jié),沒有耐心直接略過
 
這部分的提綱如下:
1.情況介紹,去向
2.找實(shí)習(xí)的準(zhǔn)備過程
3.找實(shí)習(xí)的過程
4.筆面經(jīng)歷
5.筆面總結(jié)

 
金三銀四找實(shí)習(xí)
 
首先,把我的情況和找實(shí)習(xí)的結(jié)果總結(jié)一下
情況:

計(jì)科大三,在大二的時(shí)候我已經(jīng)決定要找工作,并且出去做開發(fā),這個(gè)思考有一個(gè)比較長期的過程,大一萌芽,大二思考,大三確定,具體我會(huì)在后一篇文章中說明。
主要方向是Linux/C/C++,坦白的說,我一開始的目標(biāo)是baidu,但是現(xiàn)在的情況有變化。
現(xiàn)任軟件版主,大家都多支持罷。
 
結(jié)果:
offer有兩個(gè),CA的研發(fā)和騰訊的后臺(tái)研發(fā),在這兩邊,據(jù)公司方面說,我都是唯一的一個(gè)本科生。其中騰訊由于北京研究院不接受本科研發(fā),我只能選擇深圳。
微軟,種種原因,和我擦肩而過,昨天剛剛在CA入職,接到微軟的電話,婉言謝絕了。
IBM,研發(fā),當(dāng)時(shí)已經(jīng)拿到CA的offer,于是據(jù)掉了面試通知。
百度,新產(chǎn)品部的研發(fā),筆試過后有消息說我的簡歷被鎖定了,但是到現(xiàn)在為止一直沒有通知,估計(jì)是被當(dāng)備胎了T_T
NOKIA:個(gè)人不是很想去,CA的offer拿到后就再?zèng)]考慮過了。
Google:研發(fā),清華筆試后,一面掛掉,第一次面試,認(rèn)了。當(dāng)然,我自己實(shí)力還不夠是主要因素。
 
 
 
過程:
 
1.    前期準(zhǔn)備
a)    就像我前面提到的,找工作這個(gè)目的很早就明確了,基于自身的職業(yè)規(guī)劃,我于去年十月開始著手準(zhǔn)備尋找實(shí)習(xí)。
    實(shí)習(xí)的目標(biāo)很明確,能轉(zhuǎn)正,能積累經(jīng)驗(yàn),公司條件不錯(cuò),外企最好。如同前面提到的,我的核心目標(biāo)是baidu,這個(gè)很奇怪,之前的我對baidu有一種憧憬,沒有特別的原因,大概是baidu給我的印象非常好罷。
c)    于是,
    1.我收集了一些信息,包括查看baidu的招聘信息,另外請教了下牛人,和baicool聊聊天^_^。了解到baidu這邊需要三個(gè)方面的能力:
i.    1.Linux 編程。
ii.    2.算法和數(shù)據(jù)結(jié)構(gòu)
iii.    3.C++。
 
    2.明確路線和學(xué)習(xí)方式。明確了目標(biāo)以后,在軟件群里和大家請教了一番,基本摸索出一條路線,大三上學(xué)期的半年,踏上了每天自習(xí)的道路。可以說,那個(gè)學(xué)期的自習(xí),無論從時(shí)間,效率還是效果上,都是大一大二兩年加起來都無法比擬的。原因很簡單,我有一個(gè)明確的目標(biāo),所以也就有了明確的路線和有來源的動(dòng)力。
    再加上計(jì)科院大三的課程非常精彩,操作系統(tǒng),匯編,計(jì)算機(jī)網(wǎng)絡(luò),計(jì)算機(jī)組成,這些基礎(chǔ)課程,使得我對計(jì)算機(jī)科學(xué)和Programming的理解得到了一個(gè)質(zhì)的飛躍。同時(shí)也對我Unix/Linux編程的學(xué)習(xí)起到了非常大的作用。在這里,我必須強(qiáng)調(diào),對于一個(gè)技術(shù)人員來說,基礎(chǔ)是非常重要的,具體我會(huì)在后面談到。  
    那段時(shí)間,主要思考的問題是怎么學(xué)習(xí),怎么安排時(shí)間,怎么提高效率,怎么實(shí)踐。
 
h)    學(xué)習(xí)方法方面,這部分寫得比較冗長,沒有興趣的人直接跳過罷。
i)    1.學(xué)校的課程,得益于xxx同學(xué)的幫助xxx同學(xué),你看到了要笑一笑,我請你吃飯^_^),基本都在課堂時(shí)間搞定。概括一下就是:不用聽老師jjyy,找本好書,擬好自己的計(jì)劃,狂看就是了,絕對比跟老師的進(jìn)度效率高,效果好,而且能夠自己把握時(shí)間和重點(diǎn),結(jié)合自己的情況,關(guān)注自己感興趣的,有實(shí)用價(jià)值的知識(shí)點(diǎn),至于作業(yè)之類,下課后15分鐘就可以搞定,不要急著去擠食堂。操作系統(tǒng),計(jì)網(wǎng)的教材都是國外經(jīng)典書籍,相當(dāng)?shù)陌簦?jì)科的同學(xué),不要一味盲目的抱怨教材不好,踏踏實(shí)實(shí)的學(xué)習(xí)才是正道。當(dāng)然,教材不要的時(shí)候,也要果然放棄,自己尋找一本合適的書籍,學(xué)習(xí)只能靠自己負(fù)責(zé),學(xué)校只能給我們指出一條大概的路線,剩下的,靠自己了。這一學(xué)期的課程,是我學(xué)的最扎實(shí)的,也是受益最大的。
 
j)    2.有了前面的基礎(chǔ),課程都在課堂時(shí)間解決。騰出來的課余時(shí)間的精力,就可以全部投入到自己的學(xué)習(xí)中去。那個(gè)學(xué)期,主要看了三本書,C++ Primer Plus,Assembly Language on intel-based computers,Advanced Programming on Unix Environment(APUE),其中APUE花了我最長的時(shí)間,也是我的重點(diǎn),大概有3個(gè)月罷。我看書的習(xí)慣比較奇怪,我不僅會(huì)看這個(gè)東西是什么,同時(shí),我會(huì)思考,這個(gè)東西為什么是這樣,為什么被設(shè)計(jì)成這樣,它會(huì)起到什么樣的作用,它存在的目的是為了什么。所以一般我的看書速度是非常慢的,但是相應(yīng)之下,收獲非常大。也正因?yàn)槿绱耍枰?jǐn)慎的選擇一本好書,否則這么大的投入就白費(fèi)了。當(dāng)然,看書的方式,也要針對不同的書籍,不同的情況,有的書就應(yīng)該瀏覽,有的書就值得細(xì)嚼慢咽。都是大學(xué)生了,大家應(yīng)該學(xué)會(huì)怎樣學(xué)習(xí),怎樣看書。
 
k)    這里有個(gè)插曲,我一直以為我看的primer plus就是primer,結(jié)果后來郁悶了。不過得益于我看書的方式,我個(gè)人感覺,我的C++基礎(chǔ)不會(huì)比看primer的人差。同樣的原因,在看APUE時(shí),正好在學(xué)習(xí)操作系統(tǒng)課程,兩邊一結(jié)合,使得我對Unix系統(tǒng)也有了一個(gè)初步的了解。

 
 
 
2.    金三銀四找實(shí)習(xí)
 
a)    時(shí)間到了大三下,按照我的計(jì)劃,應(yīng)該是四月份開始尋找實(shí)習(xí)。但是08年的3月份,剛來到學(xué)校,關(guān)注了一下Hiall和各大實(shí)習(xí)信息發(fā)布站點(diǎn),發(fā)現(xiàn)3月份才是實(shí)習(xí)的井噴,幾乎每天都有海量的實(shí)習(xí)信息發(fā)布,后來思考了一下,應(yīng)該是因?yàn)槟旰箅x職的人員較多,各個(gè)地方都比較缺人。
b)    于是,我花了兩天的時(shí)間制作了第一版簡歷,這份簡歷后來到了第三版。同時(shí)找了一些師兄師姐老師,幫我修改簡歷。
 
c)    之后,就是一個(gè)月的海投,同時(shí),我加快了準(zhǔn)備實(shí)習(xí)的知識(shí)積累,借著ACM校內(nèi)賽的機(jī)會(huì),著手算法和數(shù)據(jù)結(jié)構(gòu)的準(zhǔn)備,依靠的是兩本書:INTRODUCTION TO THE DESIGN AND ANALYSIS OF ALGORITHMS 和 CLRS(算法導(dǎo)論),同時(shí)在OJ上刷了一些題目。由于我的目標(biāo)是做開發(fā),所以我認(rèn)為沒有必要像ACM那樣極端的,過于重視算法。
 
d)    3月份大概投了30份簡歷,幾乎全部石沉大海,后來總結(jié)了一下,這一階段公司都是希望有實(shí)際經(jīng)驗(yàn),過來就能用的實(shí)習(xí)生,而這些條件,我還不能滿足,我還非常缺乏開發(fā)經(jīng)驗(yàn),這于是導(dǎo)致了我的下一個(gè)決定:寫一個(gè)FTP Server。具體后面再說。
 
e)    3月份有唯一的一個(gè)例外,敬業(yè)的微軟ATC,給了我一個(gè)電面,我的簡歷沒有被淹沒掉。電面的過程非常順利,因?yàn)槭俏覍诘腖inux Programming,剛剛又參加完ACM,算法非常熟悉。電面后寫了一份代碼發(fā)過去,對方也非常滿意。然而,我made a mistake,在面試官詢問我是否能全職時(shí),我猶豫了一下,保守的選擇了一周三天。結(jié)果后來杳無音信,最后得到消息,那邊的評價(jià)很高,但是就是因?yàn)檫@個(gè)原因,雖然已經(jīng)安排了HR面,但可能最后尋找到了時(shí)間更合適的人,我的簡歷被掛起來,推薦到其他部門去了。后來又參加MS的筆試,直到昨天,才再次收到MS的電話。這個(gè)事情,直接導(dǎo)致了我3月實(shí)習(xí)尋找的失敗,4,5月份實(shí)習(xí)完全空白,讓我郁悶了好一陣,后來想通了,我和Sigmal的緣分還不夠罷。
 
f)    教訓(xùn)是,兄弟姐妹們以后一定要說:我太TMD能全職了。
g)    關(guān)于具體筆試面試的內(nèi)容,準(zhǔn)備和注意事項(xiàng),我會(huì)在后面專門總結(jié)。
 
h)    回到FTP Server的話題。沒有項(xiàng)目經(jīng)驗(yàn)的時(shí)候,自己寫一個(gè)東西,也是非常搶眼的。這是總結(jié)自cool的成功范例,哈哈,GMoto告訴我的,感謝moto。好處是,1.自己感興趣,有動(dòng)力。2.熟練技能,提高自己。3.簡歷好看,證明自己的能力。由于這學(xué)期過于忙碌,現(xiàn)在,這個(gè)miaoftpd也還沒有到beta版本,雖然我本來的期望是盡早放出測試。希望暑假實(shí)習(xí)之余能夠完成罷。
i)    miaoftpd對我的幫助是巨大的,后來面試騰訊,CA,大部分的項(xiàng)目經(jīng)驗(yàn)相關(guān)話題,都在聊它,可以說是這學(xué)期的前期準(zhǔn)備中,最成功的地方。
 
j)    4月份,各大公司的Summer Intern開始,我被迫開始落后于自己計(jì)劃的,選擇Summer Intern。需要說明的是,我之前的規(guī)劃,是找到一份能在4月份就開始干的實(shí)習(xí)。于是我投了MS,Google,IBM,NOKIA,百度,騰訊,CA。
k)    這個(gè)月先后筆試了Google,百度和微軟。面試了Google,結(jié)局非常慘,一面被刷掉,當(dāng)時(shí)有些過于興奮了,畢竟是第一個(gè)面試,結(jié)果把非遞歸的中序遍歷二叉樹給理解成層次遍歷了,寫了個(gè)完全錯(cuò)誤的程序,于是sb了…..
 
l)    5月份的第一個(gè)星期,無比郁悶,沒有baidu,微軟速度太慢。在baidu新產(chǎn)品質(zhì)量部實(shí)習(xí)的同學(xué)要推薦我過去,結(jié)果說研發(fā)部那邊盯上我了,不方便,我FT,當(dāng)備胎真慘。雪上加霜的是,騰訊把我簡歷給bs掉了,可能是因?yàn)槲彝兜臅r(shí)候騰訊的簡歷系統(tǒng)還不完善,后來又一直沒有修改,這是個(gè)教訓(xùn)了:要注意調(diào)整自己的簡歷。Anyway,我一怒之下去霸王筆了,之后非常順利的一路三面。巧合的是,面試騰訊的同一天,我參加了CA的筆試,一個(gè)禮拜后面試。
 
m)    5月中下旬是收獲的季節(jié),先后拿到了騰訊和CA的offer,我陷入一種兩難的境地,最終我選擇了CA,非常非常內(nèi)疚,非常違心的拒了QQ,其中的原因我會(huì)在后面細(xì)說。第二天,我的電腦就徹底掛掉了,RP爆減。事實(shí)證明,拿多了offer不是好事,因?yàn)楸厝灰獡?jù)掉n-1個(gè)。本身我,是比較守信,非常的反感違約的。
 
n)    我經(jīng)常這樣想,其實(shí)找實(shí)習(xí)也好,找工作也好,就像談一場戀愛,一切隨緣,順其自然。這個(gè)比喻會(huì)貫穿我后面的文章。在這里,情況就像,你有了兩個(gè)非常喜歡的女孩,必須選擇其中一個(gè),無論如何,這個(gè)選擇都是痛苦的。
 
o)    當(dāng)然,我不希望有更多的女孩摻和進(jìn)來,讓事情變得更麻煩,我是個(gè)比較專一的人(炫耀一下)。之后我陸續(xù)據(jù)掉了MS和IBM的面試。不得不感嘆,我和MS暫時(shí)還缺乏一點(diǎn)緣法,擦肩而過。
p)    最后,就是昨天剛剛CA入職,也有不少收獲,我會(huì)在關(guān)于工作,讀研,出國的文章里說明。
 
 
3.    筆試和面試經(jīng)歷的總結(jié),過于具體的東西,不便透露,畢竟簽了保密協(xié)定。
 
a)    MS,我投的是測試部門的Linux職位
i.    電面問一些Linux多線程,網(wǎng)絡(luò)編程相關(guān)的問題。包括同步互斥機(jī)制,異步IO等。另外,還有例行的項(xiàng)目經(jīng)驗(yàn)的介紹。也問了一些基本算法,包括時(shí)空復(fù)雜度的分析。最后讓寫一段字符串處理相關(guān)的代碼,發(fā)到郵箱里。
ii.    筆試三個(gè)小時(shí),200分,題目有選擇題,編程題,分析題,設(shè)計(jì)題,難度我感覺是最大的,涵蓋編程語言,算法,數(shù)據(jù)庫,正則表達(dá)式,軟件工程,操作系統(tǒng),計(jì)算機(jī)網(wǎng)絡(luò)等等。由于不同的部門關(guān)注不同的題目,所以總分不決定一切。貌似沒有120分及格的…我深刻的體會(huì)了自己的弱小…
后面的都是研發(fā)職位了
 
b)    Google
i.    筆試也是一些基礎(chǔ)的東西,算法,離散數(shù)學(xué),比較簡單。
ii.    一面基本算法+開放設(shè)計(jì)題。
 
c)    百度
i.    筆試三題基礎(chǔ)選擇,然后兩題程序設(shè)計(jì),最后一題系統(tǒng)設(shè)計(jì),難度適中吧。
ii.    面試比較正規(guī),一面基礎(chǔ),二面項(xiàng)目,三面HR,可惜沒有機(jī)會(huì)去體驗(yàn)下。
 
d)    騰訊
i.    非常平易近人,筆試題目就像學(xué)校考試。半個(gè)小時(shí)交卷閃人……
ii.    面試也是傳統(tǒng)的三面,面試官和HR都非常的Nice,一面之后就開始聊天了,呵呵,很贊。非常喜歡和他們聊天~ 一面主要在聊miaoftpd,問了一些具體實(shí)現(xiàn)的問題。二面在聊看過的書籍,學(xué)習(xí)的方法和方式,一些職業(yè)規(guī)劃。三面和HR gg繼續(xù)聊。那天聊的真的很high。另外非常感謝他們給我的一些建議,非常的中肯。
 
e)    CA
i.    筆試題也非常博雜,我除了C++,Linux和DB以外,Win32,.Net,MFC,com基本上都不會(huì)….
ii.    面試只有一面,是team member + team leader二人一起面,先是在墻上畫圖講解一個(gè)自己的項(xiàng)目,然后問一些C++,C#,Window的細(xì)節(jié)問題。C#和Windows我都不熟悉,細(xì)節(jié)都不清楚,于是我就講了一些我對Windows機(jī)制的推測和理解,以及對C#的委托,反射等機(jī)制的理解。最后問了一些開放性的問題,包括團(tuán)隊(duì)的理念等。其中有個(gè)問題很有趣“你做過的最創(chuàng)新的事是什么”,我思考了一會(huì),和他們聊起大二下在學(xué)生會(huì)發(fā)起,策劃,實(shí)施宏福科技節(jié)的事情。挺有意思。
 
iii.    這個(gè)面試是我面的難度最大的一個(gè)面試,感覺是完全問出你有多少水平的那種,很多問題我都答不上來。最后我詢問面試官的建議,其中一個(gè)帥哥說:不能說,說了你就知道結(jié)果了。讓我直接暈掉了,惴惴不安的等了一個(gè)多星期….
iv.    關(guān)于CA的面試,我所在的那個(gè)部門做的事情比較繁雜,而且一直追著最新的技術(shù)跑(過去要寫WPF,真贊..),據(jù)他們說是比較注重的學(xué)習(xí)能力。我想可能是這個(gè)原因罷。
 
 
4.    筆試和面試的總結(jié)
 
a)    前期準(zhǔn)備:我基本都完全不做任何準(zhǔn)備,因?yàn)楹芏鄸|西不是短時(shí)間能準(zhǔn)備來的,我一直的觀點(diǎn)是,實(shí)力和平時(shí)的積累是最重要的,臨場突擊沒有什么意義。騰訊面試的時(shí)候,有個(gè)哥們捧著本C++ PRIMER看在基本類型和運(yùn)算符,讓我汗的不行。當(dāng)然,做一些往年的題目,看看筆面經(jīng),熟悉一下風(fēng)格,還是有必要的。
 
b)    筆試的內(nèi)容:筆試主要考察基礎(chǔ)知識(shí),一般會(huì)包括C++這樣的語言細(xì)節(jié),計(jì)算機(jī)組成,操作系統(tǒng),計(jì)算機(jī)網(wǎng)絡(luò),算法與數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)庫,軟件工程,設(shè)計(jì)模式,Linux/Windows相關(guān)機(jī)制(同步和互斥),網(wǎng)絡(luò)編程等等。所以可以看到,這么廣泛的內(nèi)容,我覺得準(zhǔn)備沒有什么意義。當(dāng)然,做題型的人也是有的,那不是我的風(fēng)格了。實(shí)在需要臨時(shí)磨槍,我的建議是:熟悉一下基本算法和數(shù)據(jù)結(jié)構(gòu)(排序,查找,二叉樹,動(dòng)態(tài)規(guī)劃,貪婪,圖論),基本網(wǎng)絡(luò)知識(shí)(TCP/UDP,OSI分層),系統(tǒng)知識(shí)(進(jìn)程,線程,調(diào)度,地址空間,虛擬內(nèi)存,同步互斥機(jī)制),數(shù)據(jù)庫知識(shí)(MS的筆試中出了一個(gè)BCNF,印象深刻),正則表達(dá)式,計(jì)算機(jī)組成(補(bǔ)碼反碼,大端小端)等
 
c)    面試:我的建議,以及我和面試官聊天的共識(shí)是:Just be yourself。因?yàn)?.如前面所說,就像談戀愛,順其自然,合適的話自然會(huì)在一起。撒謊沒有什么意思,只能維持一時(shí),即便勉強(qiáng)成功,終究會(huì)露底,在不合適的,能力不到的地方,自己過的也很郁悶,知道強(qiáng)顏歡笑的感覺么?2.這樣能夠最自然,最淋漓盡致的發(fā)揮自己3.面試官,HR,大都是久經(jīng)沙場,而且技術(shù)面試,你那點(diǎn)底子很容易就能問出來,人家也許不明說,但是作假只能降低好感度。
 
一不小心寫多了,最近期末比較忙,還有一些總結(jié),明天再寫,提綱大概如下:
1.    為什么要找實(shí)習(xí)
2.    尋找實(shí)習(xí)的關(guān)鍵因素
3.    為什么選擇CA,關(guān)于公司和方向的選擇
4.    對技術(shù)人員的建議:不要浮躁,踏實(shí)基礎(chǔ)