軟件版從本周開始進行話題討論,歡迎大家提出話題,更歡迎大家參與討論,我們共同分享。
12日午時,強烈推薦WINDam的找工作經驗帖《一個計算機本科生的求職之路【by WINDam】》
http://forum.byr.edu.cn/wForum/disparticle.php?boardName=SoftDesign&ID=26595&pos=5
系列第二篇:【第二彈】尋找實習的思考【 by amiao】
http://forum.byr.edu.cn/wForum/disparticle.php?boardName=SoftDesign&ID=26677&pos=5
本周的一個話題是關于實習的準備,尋找,經歷,經驗等,主要面向技術方向的人士,也歡迎非技術的人們來分享。
小生不才,撰文一篇,拋磚引玉了。
由于文章比較長,話比較多
,這篇文章關注實習,下面我還會有一篇文章,關注工作,出國,讀研這三條路的選擇。希望能看到更多技術人員來分享實習的經驗和思考。
Ok, 言歸正傳,這篇文章分為兩大部分
第一部分是我這幾個月來尋找實習的一個過程和經歷。
第二部分是我的一些思考和總結。
閱讀指南:
一不小心寫多了...快成流水賬了....
能看完的人,我佩服你的耐心。
第二部分的一些總結,明天再寫了
紅色的部分是關鍵句
藍色部分是主要提綱
綠色的部分是一些比較冗長的細節,沒有耐心直接略過
這部分的提綱如下:
1.情況介紹,去向
2.找實習的準備過程
3.找實習的過程
4.筆面經歷
5.筆面總結
金三銀四找實習
首先,把我的情況和找實習的結果總結一下
情況:
計科大三,在大二的時候我已經決定要找工作,并且出去做開發,這個思考有一個比較長期的過程,大一萌芽,大二思考,大三確定,具體我會在后一篇文章中說明。
主要方向是Linux/C/C++,坦白的說,我一開始的目標是baidu,但是現在的情況有變化。
現任軟件版主,大家都多支持罷。
結果:
offer有兩個,CA的研發和騰訊的后臺研發,在這兩邊,據公司方面說,我都是唯一的一個本科生。其中騰訊由于北京研究院不接受本科研發,我只能選擇深圳。
微軟,種種原因,和我擦肩而過,昨天剛剛在CA入職,接到微軟的電話,婉言謝絕了。
IBM,研發,當時已經拿到CA的offer,于是據掉了面試通知。
百度,新產品部的研發,筆試過后有消息說我的簡歷被鎖定了,但是到現在為止一直沒有通知,估計是被當備胎了T_T
NOKIA:個人不是很想去,CA的offer拿到后就再沒考慮過了。
Google:研發,清華筆試后,一面掛掉,第一次面試,認了。當然,我自己實力還不夠是主要因素。
過程:
1. 前期準備
a) 就像我前面提到的,找工作這個目的很早就明確了,基于自身的職業規劃,我于去年十月開始著手準備尋找實習。
實習的目標很明確,能轉正,能積累經驗,公司條件不錯,外企最好。如同前面提到的,我的核心目標是baidu,這個很奇怪,之前的我對baidu有一種憧憬,沒有特別的原因,大概是baidu給我的印象非常好罷。
c) 于是,
1.我收集了一些信息,包括查看baidu的招聘信息,另外請教了下牛人,和baicool聊聊天^_^。了解到baidu這邊需要三個方面的能力:
i. 1.Linux 編程。
ii. 2.算法和數據結構
iii. 3.C++。
2.明確路線和學習方式。明確了目標以后,在軟件群里和大家請教了一番,基本摸索出一條路線,大三上學期的半年,踏上了每天自習的道路。可以說,那個學期的自習,無論從時間,效率還是效果上,都是大一大二兩年加起來都無法比擬的。原因很簡單,我有一個明確的目標,所以也就有了明確的路線和有來源的動力。
再加上計科院大三的課程非常精彩,操作系統,匯編,計算機網絡,計算機組成,這些基礎課程,使得我對計算機科學和Programming的理解得到了一個質的飛躍。同時也對我Unix/Linux編程的學習起到了非常大的作用。在這里,我必須強調,對于一個技術人員來說,基礎是非常重要的,具體我會在后面談到。
那段時間,主要思考的問題是怎么學習,怎么安排時間,怎么提高效率,怎么實踐。
h)
學習方法方面,這部分寫得比較冗長,沒有興趣的人直接跳過罷。
i)
1.學校的課程,得益于xxx同學的幫助(
xxx同學,你看到了要笑一笑,我請你吃飯^_^),基本都在課堂時間搞定。概括一下就是:不用聽老師jjyy,找本好書,擬好自己的計劃,狂看就是了,絕對比跟老師的進度效率高,效果好,而且能夠自己把握時間和重點,結合自己的情況,關注自己感興趣的,有實用價值的知識點,至于作業之類,下課后15分鐘就可以搞定,不要急著去擠食堂。操作系統,計網的教材都是國外經典書籍,相當的棒,計科的同學,不要一味盲目的抱怨教材不好,踏踏實實的學習才是正道。當然,教材不要的時候,也要果然放棄,自己尋找一本合適的書籍,學習只能靠自己負責,學校只能給我們指出一條大概的路線,剩下的,靠自己了。這一學期的課程,是我學的最扎實的,也是受益最大的。
j) 2.有了前面的基礎,課程都在課堂時間解決。騰出來的課余時間的精力,就可以全部投入到自己的學習中去。那個學期,主要看了三本書,C++ Primer Plus,Assembly Language on intel-based computers,Advanced Programming on Unix Environment(APUE),其中APUE花了我最長的時間,也是我的重點,大概有3個月罷。我看書的習慣比較奇怪,我不僅會看這個東西是什么,同時,我會思考,這個東西為什么是這樣,為什么被設計成這樣,它會起到什么樣的作用,它存在的目的是為了什么。所以一般我的看書速度是非常慢的,但是相應之下,收獲非常大。也正因為如此,更需要謹慎的選擇一本好書,否則這么大的投入就白費了。當然,看書的方式,也要針對不同的書籍,不同的情況,有的書就應該瀏覽,有的書就值得細嚼慢咽。都是大學生了,大家應該學會怎樣學習,怎樣看書。
k) 這里有個插曲,我一直以為我看的primer plus就是primer,結果后來郁悶了。不過得益于我看書的方式,我個人感覺,我的C++基礎不會比看primer的人差。同樣的原因,在看APUE時,正好在學習操作系統課程,兩邊一結合,使得我對Unix系統也有了一個初步的了解。
2. 金三銀四找實習
a)
時間到了大三下,按照我的計劃,應該是四月份開始尋找實習。但是08年的3月份,剛來到學校,關注了一下Hiall和各大實習信息發布站點,發現3月份才是實習的井噴,幾乎每天都有海量的實習信息發布,后來思考了一下,應該是因為年后離職的人員較多,各個地方都比較缺人。
b) 于是,我花了兩天的時間制作了第一版簡歷,這份簡歷后來到了第三版。同時找了一些師兄師姐老師,幫我修改簡歷。
c)
之后,就是一個月的海投,同時,我加快了準備實習的知識積累,借著ACM校內賽的機會,著手算法和數據結構的準備,依靠的是兩本書:INTRODUCTION TO THE DESIGN AND ANALYSIS OF ALGORITHMS 和 CLRS(算法導論),同時在OJ上刷了一些題目。由于我的目標是做開發,所以我認為沒有必要像ACM那樣極端的,過于重視算法。
d) 3月份大概投了30份簡歷,幾乎全部石沉大海,后來總結了一下,這一階段公司都是希望有實際經驗,過來就能用的實習生,而這些條件,我還不能滿足,我還非常缺乏開發經驗,
這于是導致了我的下一個決定:寫一個FTP Server。具體后面再說。
e)
3月份有唯一的一個例外,敬業的微軟ATC,給了我一個電面,我的簡歷沒有被淹沒掉。電面的過程非常順利,因為是我對口的Linux Programming,剛剛又參加完ACM,算法非常熟悉。電面后寫了一份代碼發過去,對方也非常滿意。然而,我made a mistake,在面試官詢問我是否能全職時,我猶豫了一下,保守的選擇了一周三天。結果后來杳無音信,最后得到消息,那邊的評價很高,但是就是因為這個原因,雖然已經安排了HR面,但可能最后尋找到了時間更合適的人,我的簡歷被掛起來,推薦到其他部門去了。后來又參加MS的筆試,直到昨天,才再次收到MS的電話。這個事情,直接導致了我3月實習尋找的失敗,4,5月份實習完全空白,讓我郁悶了好一陣,后來想通了,我和Sigmal的緣分還不夠罷。
f)
教訓是,兄弟姐妹們以后一定要說:我太TMD能全職了。
g)
關于具體筆試面試的內容,準備和注意事項,我會在后面專門總結。
h)
回到FTP Server的話題。沒有項目經驗的時候,自己寫一個東西,也是非常搶眼的。這是總結自cool的成功范例,哈哈,GMoto告訴我的,感謝moto。好處是,1.自己感興趣,有動力。2.熟練技能,提高自己。3.簡歷好看,證明自己的能力。由于這學期過于忙碌,現在,這個miaoftpd也還沒有到beta版本,雖然我本來的期望是盡早放出測試。希望暑假實習之余能夠完成罷。
i)
miaoftpd對我的幫助是巨大的,后來面試騰訊,CA,大部分的項目經驗相關話題,都在聊它,可以說是這學期的前期準備中,最成功的地方。
j)
4月份,各大公司的Summer Intern開始,我被迫開始落后于自己計劃的,選擇Summer Intern。需要說明的是,我之前的規劃,是找到一份能在4月份就開始干的實習。于是我投了MS,Google,IBM,NOKIA,百度,騰訊,CA。
k) 這個月先后筆試了Google,百度和微軟。面試了Google,結局非常慘,一面被刷掉,當時有些過于興奮了,畢竟是第一個面試,結果把非遞歸的中序遍歷二叉樹給理解成層次遍歷了,寫了個完全錯誤的程序,于是sb了…..
l)
5月份的第一個星期,無比郁悶,沒有baidu,微軟速度太慢。在baidu新產品質量部實習的同學要推薦我過去,結果說研發部那邊盯上我了,不方便,我FT,當備胎真慘。雪上加霜的是,騰訊把我簡歷給bs掉了,可能是因為我投的時候騰訊的簡歷系統還不完善,后來又一直沒有修改,這是個教訓了:要注意調整自己的簡歷。Anyway,我一怒之下去霸王筆了,之后非常順利的一路三面。巧合的是,面試騰訊的同一天,我參加了CA的筆試,一個禮拜后面試。
m)
5月中下旬是收獲的季節,先后拿到了騰訊和CA的offer,我陷入一種兩難的境地,最終我選擇了CA,非常非常內疚,非常違心的拒了QQ,其中的原因我會在后面細說。第二天,我的電腦就徹底掛掉了,RP爆減。事實證明,拿多了offer不是好事,因為必然要據掉n-1個。本身我,是比較守信,非常的反感違約的。
n)
我經常這樣想,其實找實習也好,找工作也好,就像談一場戀愛,一切隨緣,順其自然。這個比喻會貫穿我后面的文章。在這里,情況就像,你有了兩個非常喜歡的女孩,必須選擇其中一個,無論如何,這個選擇都是痛苦的。
o) 當然,我不希望有更多的女孩摻和進來,讓事情變得更麻煩,我是個比較專一的人(炫耀一下)。之后我陸續據掉了MS和IBM的面試。不得不感嘆,我和MS暫時還缺乏一點緣法,擦肩而過。
p)
最后,就是昨天剛剛CA入職,也有不少收獲,我會在關于工作,讀研,出國的文章里說明。
3. 筆試和面試經歷的總結,過于具體的東西,不便透露,畢竟簽了保密協定。
a) MS,我投的是測試部門的Linux職位
i. 電面問一些Linux多線程,網絡編程相關的問題。包括同步互斥機制,異步IO等。另外,還有例行的項目經驗的介紹。也問了一些基本算法,包括時空復雜度的分析。最后讓寫一段字符串處理相關的代碼,發到郵箱里。
ii. 筆試三個小時,200分,題目有選擇題,編程題,分析題,設計題,難度我感覺是最大的,涵蓋編程語言,算法,數據庫,正則表達式,軟件工程,操作系統,計算機網絡等等。由于不同的部門關注不同的題目,所以總分不決定一切。貌似沒有120分及格的…我深刻的體會了自己的弱小…
后面的都是研發職位了
b) Google
i. 筆試也是一些基礎的東西,算法,離散數學,比較簡單。
ii. 一面基本算法+開放設計題。
c) 百度
i. 筆試三題基礎選擇,然后兩題程序設計,最后一題系統設計,難度適中吧。
ii. 面試比較正規,一面基礎,二面項目,三面HR,可惜沒有機會去體驗下。
d) 騰訊
i. 非常平易近人,筆試題目就像學校考試。半個小時交卷閃人……
ii. 面試也是傳統的三面,面試官和HR都非常的Nice,一面之后就開始聊天了,呵呵,很贊。非常喜歡和他們聊天~ 一面主要在聊miaoftpd,問了一些具體實現的問題。二面在聊看過的書籍,學習的方法和方式,一些職業規劃。三面和HR gg繼續聊。那天聊的真的很high。另外非常感謝他們給我的一些建議,非常的中肯。
e) CA
i. 筆試題也非常博雜,我除了C++,Linux和DB以外,Win32,.Net,MFC,com基本上都不會….
ii. 面試只有一面,是team member + team leader二人一起面,先是在墻上畫圖講解一個自己的項目,然后問一些C++,C#,Window的細節問題。C#和Windows我都不熟悉,細節都不清楚,于是我就講了一些我對Windows機制的推測和理解,以及對C#的委托,反射等機制的理解。最后問了一些開放性的問題,包括團隊的理念等。其中有個問題很有趣“你做過的最創新的事是什么”,我思考了一會,和他們聊起大二下在學生會發起,策劃,實施宏福科技節的事情。挺有意思。
iii. 這個面試是我面的難度最大的一個面試,感覺是完全問出你有多少水平的那種,很多問題我都答不上來。最后我詢問面試官的建議,其中一個帥哥說:不能說,說了你就知道結果了。讓我直接暈掉了,惴惴不安的等了一個多星期….
iv. 關于CA的面試,我所在的那個部門做的事情比較繁雜,而且一直追著最新的技術跑(過去要寫WPF,真贊..),據他們說是比較注重的學習能力。我想可能是這個原因罷。
4. 筆試和面試的總結
a) 前期準備:我基本都完全不做任何準備,因為很多東西不是短時間能準備來的,我一直的觀點是,實力和平時的積累是最重要的,臨場突擊沒有什么意義。騰訊面試的時候,有個哥們捧著本C++ PRIMER看在基本類型和運算符,讓我汗的不行。當然,做一些往年的題目,看看筆面經,熟悉一下風格,還是有必要的。
b) 筆試的內容:筆試主要考察基礎知識,一般會包括C++這樣的語言細節,計算機組成,操作系統,計算機網絡,算法與數據結構,數據庫,軟件工程,設計模式,Linux/Windows相關機制(同步和互斥),網絡編程等等。所以可以看到,這么廣泛的內容,我覺得準備沒有什么意義。當然,做題型的人也是有的,那不是我的風格了。實在需要臨時磨槍,我的建議是:熟悉一下基本算法和數據結構(排序,查找,二叉樹,動態規劃,貪婪,圖論),基本網絡知識(TCP/UDP,OSI分層),系統知識(進程,線程,調度,地址空間,虛擬內存,同步互斥機制),數據庫知識(MS的筆試中出了一個BCNF,印象深刻),正則表達式,計算機組成(補碼反碼,大端小端)等
c) 面試:我的建議,以及我和面試官聊天的共識是:
Just be yourself。因為1.如前面所說,就像談戀愛,順其自然,合適的話自然會在一起。撒謊沒有什么意思,只能維持一時,即便勉強成功,終究會露底,在不合適的,能力不到的地方,自己過的也很郁悶,知道強顏歡笑的感覺么?2.這樣能夠最自然,最淋漓盡致的發揮自己3.面試官,HR,大都是久經沙場,而且技術面試,你那點底子很容易就能問出來,人家也許不明說,但是作假只能降低好感度。
一不小心寫多了,最近期末比較忙,還有一些總結,明天再寫,提綱大概如下:
1. 為什么要找實習
2. 尋找實習的關鍵因素
3. 為什么選擇CA,關于公司和方向的選擇
4. 對技術人員的建議:不要浮躁,踏實基礎