其實自己的求職之路是從寒假就開始了,漫漫長路,從開始準備,到拿到offer,差不多有四個月吧!不算艱辛,不算輕松,寫下這點東西,一方面是對自己的總結,另一方面是希望能幫助需要的人!
首先,真的要聲明,小本小渣,沒有任何的謙(zhuang)虛(b i),看完保證你自信心爆棚,真的!!!之前寒假面了幾個大公司,都掛在二面,包括阿里!所以,真的很渣!!!
【方向】
好了,言歸正傳,繼續求職之路。首先,最最重要的是,一定要知道自己想干什么,想朝哪個方向,互聯網行業的方向我知道的有
PHP, Java(安卓,JavaEE),C++,C# (.NET),Python,IOS,Web前端等
確定了哪個方向,才能為之努力,否則做的永遠是無用功。知識結構永遠是金字塔型的,至少大部分人是這樣的!( PS:什么都想要的人請略過這篇文章,大牛也忽略這篇文章吧!)
【簡歷】
確定了方向后,就可以開始做簡歷了。做簡歷的建議,自己設計的好,就盡量自己做,感覺自己做的不好,就去網上下個模板,但是最好別一模一樣,肯定要改,萬一運氣不好,有很多人跟你一樣就完了。我是網上下載了一個,然后改的“面目全非”(沒辦法啊,藝術細菌幾乎為0),最后變成自己的!簡歷上沒有太好的經驗,大家去看看大牛是怎么做的。我的簡歷是從簡,項目說的詳細一點,大致包括:求職意向,個人信息,聯系方式,博客,github,優秀課程,學習成績(寫前3%就可以了),項目經驗,獲得獎項證書,意向城市(我個人建議要,因為很多公司有分公司,在不同地方),自我評價(可寫可不寫)。簡歷這關一定要過,不然后面都是空的。簡歷文件(pdf或者word格式文件)標題命名為:求職意向+姓名+手機號+入職時間(可寫可不寫).pdf。建議都用pdf吧,不會有亂七八糟的格式問題。
【基礎篇】
因為自己本科是計算機科學與技術專業,所以這里只說計算機的。基礎一般就是指筆試要考的,一面技術面問的。一言以蔽之,最重要的四門課:數據結構和算法,操作系統,計算機網絡,數據庫。筆試考的都是基礎,最最基礎的東西,只要你認真看書,沒有不過的道理。**360,網易,阿里等大部分的大公司筆試題我都是秒殺。
**
針對筆試題和一面建議:
1.刷一遍《劍指offer》,在我博客里有刷題記錄和代碼需要的可以去參考,題目不多,50個小算法題,但都是經典;(一本劍指offer能秒殺國內大部分的互聯網公司,如果要去硅谷那些公司,最好刷一下leetcode,劍指offer是不夠的,我以前去做谷歌的題,三題一題都不會做啊!根本沒有思路!!!)
2.Java推薦看《Java編程思想》,C++推薦《深度搜索C++對象模型》《C++ primer》《STL 源碼剖析》;
3.重點放在基本的語法機制,包括多態,繼承,多線程,網絡編程,IO,基本的輸入輸出等;
4.過一遍上面介紹的本科教材,推薦看考研對應的教輔書,薄而且歸納的非常好
5.算法方面,不會太難,排序,線性表,二叉樹,B樹B+樹,紅黑樹,KMP,遞歸,迭代,動態規劃,背包,貪心等等。
【一面】
一面其實是基礎面,面試官考查你的基礎功底,只要能在3秒鐘反應過來并回答,都OK的,我一面就很輕松的就過了。面試官打電話來是在下午快4點的時候,當時我在趴著睡,突然發現是杭州打電話來的,嚇我一跳,一開始以為是廣告,后來想想不對,最近投了很多簡歷,不能任性的掛電話了!!接起來果然第一句話是:您好,請問是###嗎,我是網易杭州的! oh god 能不能有點征兆啊!趕緊跑出圖書館,開始了自我介紹,因為根本沒有想到來的那么突然,過于緊張導致說話結結巴巴,想到什么說什么,管他那么多!!!
1.說綠島開發的幾個網站,說喜歡技術,說基礎扎實,說成績很好,說經常逛技術社區等等balabala。真是嚇的心臟都要跳出來了。然后面試官說,好,不用緊張,開始吧!
2.說說樂觀鎖和悲觀鎖的區別。哈哈......心里一陣樂呵,此等問題怎能難我,終于開始平靜下來了。然后說的面試官挺滿意,我又擴展了一下,說數據庫里有表鎖,行鎖,頁鎖,虛擬機里有偏向鎖和自旋鎖等等,面試官說不錯,你知道的太多了.......(后面這個是自己加的!!!)
3.第二個問題是Java Object里有什么方法,基本答出來了,然后問為什么wati()和notify()要放在object類里。這個問題我以前想過,但是當時沒有及時去解決,緊急之下,我說這個問題我沒有考慮過,但是我可以猜測一下嗎,面試官說可以。我說因為Java多線程里,線程爭奪的資源說到底就是對象里的資源,那么每一個對象就必須具備有維護線程隊列的能力,所以需要有這兩個方法,一個阻塞,一個喚醒。面試官說分析的不錯,貌似對我很滿意吧,我又更有信心了。
4.然后說你懂Java多線程嗎?我說懂一點,你可以問。他又balabala的問了很多,舉幾個線程安全的類,如何實現線程安全的HashMap,我說了兩個,一個是Java里的 collection.synchronizedmap提供的幫助類,可以強制把hashmap里的方法都變為同步,第二個是Java 底層與硬件交互的JNI方法,將hashmap操作分片,轉化為原子操作,又一個滿分的答案。然后問了我平時會用哪些集合框架,看過源碼沒,我說源碼都看過了,并且自己還用代碼實現過,然后問我hashmap的底層數據結構,我說是數組+鏈表,并把沖突處理機制跟他說了一番.
5.于是繼續深入問我,處理沖突的方法,我說一般來說有四點:
1開放地址法(線性,二次,偽隨機);
2 鏈地址法
3 再哈希
4 建立公共溢出區。
面試官又夸了下我!然后問我數據庫方面的,具體問題我就不說了,反正大致都回答上來了,有一道海量數據處理的問題,之前看到過,給他具體分析了一下,大致的問題包括索引,事務,觸發器,存儲過程,主從等等,95%都回答上來了。然后問我JVM的垃圾回收機制,這個因為寒假看過,先總起說是分代收集,新生代停止復制算法,老生代標記整理算法,永久代基本不清理,當然可以設置參數讓它回收。
(這里只是簡寫,GC機制我說了大概15分鐘,把我理解的并且自己舉例子,結合操作系統的知識,讓講解盡量生動一點)。總之一面雖然非常緊張,但是大部分的問題都回答的不錯, 最后面試官問我有什么問題想問的嗎?我傻逼的問,我今天面試表現怎么樣?(大家千萬別這么問啊,我是腦子犯二了嘛!!!)面試官笑笑,說準備二面吧,過一周左右。頓時心里的石頭都落下了,哈哈。。。真是嚇了一身冷汗!!
一面建議:基礎要扎實,半吊子是不行的,基本概念要理清,不要稀里糊涂的,不會的也不要亂猜,不然就是要在原有理論的基礎上去猜,天馬行空也不行,這不是玩想象力。知識面要廣。一面還是那幾本核心課課本,加分項:軟件工程和設計模式。**
【二面-經驗面】
二面是過了四天,當時HR加了我微信,然后要我視頻面試,因為一開始網有點問題,然后就等了一會。過了一會,她拉來了一個人,一介紹是郵件事業部后端技術部的組長,頓時被震懾到了,隔著屏幕我都感覺到了殺意。深吸一口氣,開始了面試。上來就問我做過什么項目,我說自己是綠島的人啦,然后扯了四五個不起眼的項目,然后問我Java的項目,我說JSP+Servlet寫過一個個人博客,Struts2搭過一個站點,在tomcat上能跑,hibernate和spring了解機制,但是項目倒是真心沒有做過。然后組長就深挖我的項目,讓我詳細的描述,然后問我某個地方能不能改善,怎么優化,如果碰到新的業務,該如何擴展。好吧,其實這些我都會,哈哈!!!然后問我Java虛擬機優化方面懂不懂,我說知道原理,然后又讓我簡單的說了一下,反正二面雖然看似兇殘,但我早已視死如歸了。反正后面還問了點spring和servlet的東西,回答的不是很好。中途讓我寫了個算法和單例模式,需要線程安全的,雙重鎖搞定,并解釋了一下為什么要雙重鎖。最后組長感覺問的也差不多了,該會的都會,不會的怎么提示都跟傻逼一樣!然后就結束了,讓我回去等消息。聽到這句話,我就真的以為自己掛了,哎。。算了,早就料到了。。。。。
【三面-HR面】
HR面就相對比較輕松了,HR聲音真的蠻好聽的,跟聽廣播一樣。基本就是聊天式的,問我一些規劃,問我為什么選擇Java,今后的人生打算,還有什么時候能過來,然后告訴入職的時間,我說6月中上旬能過去。然后就是掛了電話,等offer了。一切都來的太突然!!
【感悟】
從寒假開始準備找工作開始,到現在,跌跌撞撞的走了幾個月,著實不容易。幾點建議:
- 基礎要扎實,幾門核心課多看幾遍
- 項目做的不多沒關系,把做過的整理一下,看看有沒有可以深入的地方
- 要自信一點,我感覺自己不夠自信,可能是跟學校有關系吧
- 多看互聯網的新聞,這樣你就有得扯,久而久之就有自己的觀點
最后,希望大家找工作順利!!!
--by 冰天百華
2015年上半年