1.校招
第1家
沒去參加它的宣講會,但是在現場招聘時獲得了筆試的機會(現場問了下基本情況,然后叫我寫個函數從1加到10。(*^__^*) 嘻嘻……很簡單吧)

int sum() { int s = 0; for (int i=1; i<=10; i++) { s += i; } return s; }
然后就立即去參加筆試,拿到筆試的卷子,我懵了!第一份全是電路的(我報的是軟件開發啊,咋有電路),第二份都是嵌入式的,題目不記得了,稍微做了下就交掉了。記得最后一道題是“將某一塊內存的內容拷貝到另一塊內存”(我亂寫的,不貼出來了),然后沒有后話了。
第2家
現場面試,叫我寫個冒泡排序,當時有點緊張,亂寫的,幸好沒寫錯,差點和選擇排序搞在一起了。中午回寢室測試了一番的。我寫的代碼如下:

void bubble_sort(int s[], int n) { for (int i=0; i<n-1; i++) { for (int j=i+1; j<n; j++) { if (s[i]<s[j]) { s[i] = s[i]^s[j]; s[j] = s[i]^s[j]; s[i] = s[i]^s[j]; } } } }
然后下午收到短信進入二面了,談了自己的個人情況(相當於自我介紹吧),還問了下優缺點什么的。回到寢室不久又接到通知,進行三面,叫我把以前做過的項目帶給他看看。最后談了薪資待遇什么的,我要求說的有點高(主要是自己有點不想去吧,人家生產LED的,我在那的發展空間不大)。還說帶我去公司參觀下,由於時間的沖突,我推脫了,他們也委婉的說會另安排時間,叫我等通知,最后就沒后話了。
第3家
現場一句話把我拒絕了,“你英語四級沒過啊,我司規定英語過四級的,你可以走了”。我就走了。
由於我的專業在學校屬於冷門專業吧,來招我們專業的公司很少,有一大部分鋼鐵采礦采礦公司招計算機的(應該是招維護計算機的),所以沒去(不能編程,去那干嗎?)。不過今年還好,來了3家硬件相關的(跟我沒關,我學的是數學類的,跟軟件關系很大)。
2.網申
之前獲得了百度的筆試機會,騰訊的筆試是霸王考的。最后都被刷了(沒進入面試,可憐的孩子( ⊙ o ⊙ )啊!),沒啥經驗,收獲就是:
大公司的筆試很注重算法的,所以筆試前一定要復習算法和數據結構。
第1家
筆試時間是兩個小時,題目量好大,主要題型分布是:
選擇題包括邏輯題,算法(基本概念和時間問題),數據結構,數據庫(基本概念),C語言,計算機網絡(基本概念);
填空題包括鏈表的插入,哈夫曼樹,折半查找,數據庫,完全二叉樹(騰訊也考了,一樣的數字),階乘尾部0的個數的計算方法(誰有好方法就貼出來吧,以前在《編程之美》中見過),樹的遍歷;
問答題占了一半的分數,題目是:
a)線程和進程的概念及區別(《面試寶典》中有答案,記得不是很全,只是稍微答了幾點),
b)給定環狀鏈表的一個節點的指針,求它的最遠節點(我用的是遍歷鏈表的方法,不知道還有什么好方法沒有?),
c)對數字的全排列問題(之前我寫過的全排列的實現,但是忘記怎么做了,沒做出來),
d)完成SQL操作,和在學校的期末考試的題目差不多(但是幾乎忘記了,沒動筆),
e)實現工廠模式和迭代器模式(工廠模式我會寫,但是迭代器模式不知對不對,我直接寫C++中迭代器的實現的方式的),
f)給出一條路徑圖,求最短路徑(這題目見過多次,數據結構,數學模型,Matlab,運籌學,離散數學中都有這題目的影子,但是我忘記怎么做了,解法很多:最短路徑,Dijkstra算法),
最后一道附加題,關系到大型游戲服務器的數據保護,異常處理,數據的保存時機,Mysql訪問性能等等。
總體上看,這卷子我做的不咋地,但是晚上收到面試通知了,可是我人已經在火車上了,問了下是否可以調整面試地點,結果也沒后話了。
第2家
沒能參加上一家面試的主要原因是我來這家參加面試,是一個星期前安排好的面試。坐了一晚上火車,早上到了公司,網游公司,進去就是填一份簡歷和做一份卷子,先說下卷子大概的題目吧。
a)反轉字符串函數的實現,我之前筆試中做過,
b)判斷素數(道理很簡單的,就是判斷1到sqrt(N)中是否存在整除的數,學C語言的時候一般都寫過的),
c)排序(沒說用什么方法實現,我用的是選擇法),
d)實現游戲中的背包,包括更新、刪除、插入(我直接封裝C++的list實現的),
e)一個鏈表中存在一個環,怎么判斷?(我使用的方法是從頭開始遍歷每一個節點,判斷下一個節點是否在頭節點到該節點中的節點,不知道網友們是否有更好的方法)
f)連連看游戲的實現(我寫了寬度優先搜索的思想),
做完卷子就進入了一面,一面有點緊張,沒讓我自介紹(我都准備好了的( ⊙ o ⊙ )啊!),考官讓我說說我平時使用了些什么編程工具,然后問了C++中的析構函數為什么一般設為虛函數(我答的是在Base* b= new Driver(); delete b;時能夠正確的調用到派生類的析構函數),還問了TCP和UDP的區別(我不僅僅答了面向有鏈接和無連接,還拿登陸QQ時驗證是用的TCP和聊天時發送消息使用的是UDP,一個是可靠的數據傳輸一個不可靠的)。
一面很成功,但是面試的職位不是C++的,面試Erlang程序員,我沒學過這玩意,考官給我3天時間學習(發了本電子書給我),最后我咬牙學Erlang。今天進行的二面失敗了,同一個考官,給我份Erlang的卷子,我書沒看完,我說只看到TCP和UDP那一章,他就挑了些題目給我做啊,做的很爛很爛,沒學好Erlang啊!最后就結束了。不過話說回來,還是蠻感謝這位考官的,讓我見識了Erlang的強大。
第3家
這家公司應該是比較大的,但是是去一個項目組面試,進去看到一堆程序猿在編程(第一感覺以為是網吧!),同樣進去就是填寫簡歷,后來走進一個面試官,給了我兩道智力題,分享一下吧。
a)兩根不均勻的繩子,燒完一個需要1小時,怎么實現燒完兩根繩子恰好45分鍾(我答的是同時在1/4處點燃,網友們有好答案不?)。
b)請工人為你工作7天,你又一根金條,已經平均分成相連的7段,每天下班你必須給工人一段金條,你只有兩次折斷金條的機會,你怎么給你的工人發工資(我當時想了很久沒想出來,今天我同學告訴了我答案:第一天折斷1節給工人;第二天折斷2節給工人,讓工人還給你昨天給的那1節;第3天給工人剩下的3節,工人換你昨天給的2節;第4天一次下去。我咋沒想到這樁買賣呢???智力有問題( ⊙ o ⊙ )啊!)。
最后也說了薪資的問題,說我開價開高了,我說我沒畢業不清楚行情。然后說公司是使用Erlang語言開發服務器的。說有培訓的。然后叫我回去等通知,就沒有后話了。
我總結了個經驗,網頁游戲招后台服務器開發的明寫着招C++的其實是讓你使用Erlang開發的,因為Erlang在這方面的優勢現在強於C++(寫並行程序比C++簡單多了,快速,高效)。現在市面上會Erlang的很少。
第4家
在我租的房子附近(我租了一個月的房子,一定要找到工作啊!),之前的都需要做公交,這個公司不用了,就在馬路對面。下雨天,沒傘,工作地點像個普通的工廠(樓下就是工廠),進去之后看到里面的環境還行(也有點像網吧,比上一家好一點,每個人的桌子要大一些),然后在休息室坐一下,沒叫我填基本信息,給了一張試卷:
很簡單的C語言的題目,最后一個大題是冒泡排序;前面幾道是問某某情況下使用函數庫的某某函數(有一個我不知道使用函數的名稱,判斷一個字符串是否是另一個字符串的字串strstr(),嘿嘿!剛百度了好久);32位機右移33位的問題,我做錯了,網上是說移動的位數是33%32。feof()和fgetc()函數的作用。
然后開始了面試,第一個自我介紹,然后介紹下我做過的東西。還問我學習一個新的開發平台需要多長時間?修改代碼的能力怎么樣(比如說存在C++版本改成Java版本)?然后說一個星期內給應聘通知(就一面的?),結束后我就想了想,這不就是招碼農嗎?筆試面試要求的東西很低(只要你會寫代碼),不然怎么會考一些可以查函數文檔的知識呢?(測試你寫代碼的熟練程度)問我修改代碼的能力不就是說微創新么?【網友!你怎么看?】
給我點更新博客的動力吧!!!因為找工作的原因好像許久沒更新了,沒帶筆記本在身邊(筆記本上有幾篇草稿沒完成,回校后寫完給大家分享下),更新博客不方便,這些事這幾天記在小本子上的,今天就做個這樣的小結:筆試考的是基礎(數據結構和算法很重要),面試問的會很細(這個要看你懂哪方面就會問哪方面的,不要在簡歷上寫什么都精通,要不然面試的時候隨便問一個詳細點的東西你會懵了的)。明天下午有個筆試(又是網游服務端開發的,maybe use Erlang too!)
總結時間:2012.10.30