非計算機專業研究生自學進BAT的經歷!(轉)
昨天阿里的師兄帶我到部門看了一下,團隊的氛圍很和諧,主管人也很好,看到我來了也主動跟我打招呼。也跟著團隊們聽了一個技術講座,還有可樂零食吃。整個過程就感覺像一個班級再開個會,可以發言,可以開玩笑,很有校園的感覺。同時,牛人們聽的過程中也在除錯自己的程式,估計學習下操作流程就夠我忙一陣子了……明天就要入職,今天晚上主管團隊吃飯,師兄也把我喊過去了,跟大家熟悉了一下,感覺還是挺能融入進去的,哈哈~~
今天想把對我意義重大的2014年總結下,給我以後也是一種激勵。
本來我是很想學數字積體電路設計的,尤其是對半導體工藝方面的東西,相對來說有領悟力,感興趣去研究,數學功底相對來說好一些,對推導公式也沒什麼可忌憚的。但導師做的是嵌入式方面的東西,一下又過渡到了計算機方向。又重新開始學習c語言等知識,說實話,我本科是c語言的課代表……但我對這方面一直不感冒,沒太多自己的想法,看到什麼只能記著。沒辦法,只能硬著頭皮上了。也就一點一點的學著,搞嵌入式底層驅動,核心太複雜,什麼很多東西都要靠著師兄幫忙才行。很沒成就感,也逐漸打消了自己的積極性。由於上一屆有師兄直接找的網際網路的工作,進了阿里巴巴。於是想,反正嵌入式相關工作和網際網路公司都是幹程式設計的,都一樣累的要命,還不如跨的徹底點,直接跨到計算機行業。於是乎,從2013年年底,就有了找網際網路工作的想法。
2014年年前一個多月才開始學資料結構,以前知道“棧”“佇列”,一個先進後出,一個後進先出,就知道這麼多……但對怎麼去實現一點都不瞭解,完全沒概念。學這本書的時候很吃力,過年期間只看了嚴蔚敏的視訊。真正開始準備,也就到了年後回到學校。由於上屆師兄說演算法很重要,當看完了資料結構,就開始看《演算法導論》。這本書是某些高校研究生才開的課程,老師也只講一下,很多學生也不會細看這本書,因為太枯燥,都是理論推導。當然這些我是後來才知道的,演算法導論裡面都是一些排序演算法、樹形結構演算法、圖的演算法等等,我以為計算機本科的時候都學過,老是感覺自己看的人家本科就會了,只能一點一點去補。
這本書我啃了好幾遍,不光一遍一遍重複看,還參考網上關於這方便寫的部落格,仔細去研究。很多人說沒必要看演算法導論,知道怎麼去用這個演算法就行了,不用知道什麼原理。我是挺推崇這本書,因為我學一個東西的時候,特別是這種邏輯性的東西,我要知道它是怎麼來的,我才有興趣往下研究;也可能很重要的一點,是我的數學相對較好,看推導過程不是很吃力。在這裡吹一下,大四的時候有資格參加全國大學生數學競賽總決賽,整個河南省數學和非數學專業共8個人,可能非數學專業也就三四個,但由於跟研究生複試衝突就沒參加比賽,只得到省級一等獎。
看了基本的演算法,也就開始學習網際網路公司要求的東西,涉及到網路資訊傳輸,需要學習TCP/IP協議,看了《TCP/IP詳解》和《計算機網路》,又看了《UNIX網路程式設計》卷一和卷三。基本瞭解一下網路傳輸是怎麼個機制。
七月份的時候,跟著孫國玥一起去北京參加一個演算法培訓班。組織的人在CSDN上寫的部落格很好,一方面是奔著名氣去的,很重要的原因是,我不是計算機出身,不知道計算機關於演算法到底學到了一個什麼樣的程度。平時都是自己看,自己感覺計算機的人應該都會掌握,就下功夫去看,有人指導指導也好。
去了以後才發現不光有面臨畢業找工作的學生,有已經工作的人,在一些公司上班包括百度、阿里的員工,還有一個清華的博士。可能由於工作中用的演算法也少,偶爾用到時也都忘了,想充充電吧。講課的是鄒博,中科院博士畢業後在高校當老師,講的很好,把我學過的東西也都梳理了一遍。上課期間也很高興,講的東西,我都看過,並且我的思路也很清晰,還能提出一些問題和老師交流。另一個讓我興奮的地方是,碰到了很多牛人,對問題的看法和角度也不一樣。在這裡特別感謝汪建偉和郭威的收留,由於是週六週日上課,連上兩個星期,就一共在北京呆了十天。
整個培訓過程最大的收穫:1、找到了自信,我學的東西也不少,甚至學的還挺好。2、跟工作的人交流後,知道了做leetcode網站上題目的重要性。
於是回來後,就每天拼命的做leetcode上的151道題,去北京之前做了二十多道,也只是簡單的題目。回來後,二十天左右將題目全部做完。這個網站上的題目寫過後,明顯感覺看《劍指offer》輕鬆了不少。
大致說了下,整個的學習過程,下面說說學習的幾個月我是怎麼度過的。
1、每看一本新書,我基本能以每小時10頁的速度看,整天下來能看七八十頁,甚至一百頁。當然,保證我能看懂裡面說的是啥。所以整個下來我4天左右就能看完一本300左右的書。
2、由於早上九點要進實驗室,我很長一段時間都是早上7點半多點就起來(我之前都是到九點左右才起床的),到食堂買個麵包,直接騎車到圖書館看書。看一個小時後再去實驗室。
3、十一點半到吃飯時間,接著去圖書館看書到十二點二十左右,才回去吃飯。十二點五十左右到寢室,有時還會看半個小時,再上床睡覺(之前都是上床刷微博,後來感覺時間緊迫才看書的)。
4、下午去實驗室,晚上到清華吃過晚飯,都去圖書館上自習。呆到晚上十點閉館。
5、回寢室洗漱後,十一點左右安心看書,到十二點多。----之所以會這麼抓緊時間,因為我一直想,每個小時看十頁書,就光晚上這段時間,我半個多月就能看完一本,不想這個時間浪費掉。
6、最喜歡星期三的下午和週六週日。因為這段時間不用去實驗室,完全可以在圖書館泡著。因此,我連續兩三個月完全沒有周末,一有時間都會去圖書館。可能唯一放鬆下的就是,中午睡到三點後才去圖書館。
7、在北京期間,除了兩個週末去聽課,剩餘時間都在北大軟微學院的圖書館呆著。
8、由於以前經常玩qq空間,喜歡跟朋友們互動,在2月23號那天徹底關閉空間訪問許可權。以此來遏制自己,但萬萬沒想到,萬惡的微博讓我淪陷了~~~~(>_<)~~~~
看的相關書籍:
1.資料結構--n遍
2.演算法導論--大概4遍
3.TCP/IP詳解一--2遍
4.計算機網路--1遍
5.UNIX網路程式設計卷一和卷二--都沒看完,前半部分看兩遍
6.劍指offer--2遍
7.程式設計之美--1遍
8.程式設計師面試寶典--看其中一部分
9.計算機作業系統--3遍
10.C++ primer plus --2遍,只懂了皮毛
11.Leetcode 151道題
12.寫了CSDN部落格,將自己的思路總結下:http://blog.csdn.net/a45872055555
大概這麼多東西吧,我讀書喜歡第一遍對整本書有個大體印象,第二遍以後再開始仔細找前後關係,直到找到對這本書的感覺。所以一遍不行兩遍,所以有的看了好幾遍,也有的看了幾遍也沒找到感覺,時間來不及就放棄了。。。
下面說說找工作的事吧。在9.6號去哈爾濱的時候,我已經不想那麼多了,本來對進阿里巴巴就不抱太大希望,也只是定個目標,最後能進一個二線網際網路也好;另外,回顧這幾個月也確實對得起自己了,找不到合適的工作也沒辦法。
期間還得了感冒,本來計劃去哈爾濱後好好再看哪些東西,事實證明,根本沒心情沒狀態去學習。12號阿里的面試也是稀裡糊塗就進去了。一面的面試官很好,也很專業,看我的專案就直接擴充套件的問用別的方法呢,還問了演算法。問了一個“n個房間找出連續m個空房間給m個人用”,由於緊張,就說了個n^m的方法,然後面試官說想想資料結構,但想資料結構的過程中突然想到有時間複雜度為n的方法,直接設定個變數就行了,給面試官說了後,他就在電腦上敲,應該表示讚揚吧。但還慶幸我能想出這個方法,因為他讓我想的資料結構來實現我沒想出來……然後就是二面,二面的人更好,隨便跟我聊,還問實驗室多少人,負責我這個專案的有多少,當徹底瞭解我的情況後,就突然問了專業的問題,雖然沒回答好,但他對我的表現還不錯,我出去等結果之前就大概知道能過。然後就是HR面試,關鍵測試你性格方面的吧,問了“如果你工作中遇到壓力會怎麼辦”。又問了一個很經典的問題“你從本科的測控轉到電子,研究生又搞嵌入式,找工作又跨到網際網路,整個過程有沒有後悔過你所作出的決定”。我直接給她說,我高考兩年語文都是84分沒後悔,之後的事情就更不用後悔了……
其實被虐的最慘的還是在面百度的時候,由於我簽約阿里的時候,正好百度筆試,還好讓我霸面了。我一面對應著別人的二面時間,面試官春老師是個很厲害的技術牛人,整個過程只考演算法,看你邏輯思維能力強不強,我感覺被虐的很慘,沒回答完整。面試過後,我說:不好意思,答的不好,讓你失望了。春老師說:我沒覺得你答的不好,我面試這麼多年,出的五個題目沒有一個全部答完整的,如果你們都答對了,我出的題目就有問題。聽到這句我就安心了。我的第二面已經是HR面了,以為還會像阿里那樣看看你的人生態度,沒想到,接著問技術問題,讓我講我的專案……面試過程中發現我只進行了一面,又專門給我出了幾道演算法題。看來百度HR都是技術達人啊!面試下來,感覺應該差不多了,已經HR面了,就不加第三面了,沒想到百度專門安排人從北京打來電話進行電面。面試的問題更叫一個難,我當時就想撂挑子說,您是不是有時間規定必須面試一個小時,沒有的話,要不就這樣吧,我看我也不行了,也不浪費時間了……這是想想那場面還覺得很囧……但沒想到的是,百度竟然讓我通過了。也不知道他們具體怎麼個評分機制……
再有就是面試騰訊,一輪遊,問的問題面廣,而我也確實只有半年時間,只能專攻演算法,其他的東西也就聽天由命了。
感覺整個過程下來,也有一些運氣吧!畢竟做的還是有一定差距的。希望繼續努力吧!
感謝2014這一年所做的努力,感謝研究生期間能碰到那麼多小夥伴。明天就要上班了,希望能有一個好的開始!工作了肯定很辛苦,希望能夠拿出以前的狀態投入到工作中去!還是那句話:奮鬥吧,少年!