還有十幾天就要畢業,面臨著身份從學生到社畜的轉變,未來的一切捉摸不定,但凡心中萬千情緒,也只能「但行好事,莫問前程」,此篇文章記錄我去年社招的一些歷程,
本人背景:計算機本科大四,剛進大三時還是個沒有實習、沒有專案經歷的小白,經過一年時間的刻意練習,最后在校招中拿到了一些大廠offer,標題中30k的offer已經拒掉了,有了更好的去處,只是用來舉例,
作為閱讀福利,我也把我的學習資料整理了一下,需要的小伙伴可【點擊此處】領取
0x0 前期調研
以下經驗根據個人的經驗來談,有一定的局限性,僅供參考,
1.為什么不選擇演算法
計算機專業的就業方向很多,對于應屆生來說,工種大概可以分為移動端、前端、后端、演算法、運維、測驗,
由于近年來ML和DL的快速發展,特別是16年AlphaGo以及視覺檢測、自然語言處理方向的進展,人工智能方向成為了繼大資料之后的又一個學術熱點,
周圍接觸到的同學,大部分集中于演算法和后端方向,我最開始就是準備深入后端方向,并且決定本科直接就業,但是我有兩點糾結:
- 后端是否不如演算法?
- 對于后端,本科學歷是否適合職業發展預期?
- 本科生以演算法作為作業目標難度太高,和位元組跳動的面試官交流,目前位元組AI Lab的成員組成是大部分碩博,以及少部分優秀的本科生(acm區域金作為參考)
- 演算法需要的三點:實習、競賽和paper,我都沒有信心和諸多轉專業的工科碩士抗衡
- 個人對于演算法沒有強烈興趣,發展空間不明朗,行業未來搭上5G的車,可能會有比較大的想象空間,風險和收益并存,

2. 為什么選擇Java后端
如果認定了后端,后端語言這么多,如何選擇適合自己的方向?
業界有一種說法:『語言只是工具,資料結構和演算法是解決問題的根本』,這種說法本身是沒有錯的,但是從普遍來看,本科生從有作業的想法到秋招,只有(或者不到)一年的時間,泛泛了解多個方向不如深入特定方向,更有助于求職,
后端主要的開發語言有Java、C++、Python、PHP、Go,PHP目前除了百度和騰訊部分部門之外,使用范圍不廣,不予討論,另外,Golang作為高并發場景的常見支持,在云計算領域使用比較廣泛,
互聯網和其他資本市場沒有本質區別,既然是市場,就存在供求關系, 對于演算法這種供遠遠大于求的情況,就是買方市場,賣方(求職者)需要更好的產品(技能)來獲得同等的價格,對于應屆生來說,找到一個良好的買方市場,更加有利,
調研基于兩個預設條件:
- 崗位數目越多,市場的需求越大,
- 高薪崗位越多,該方向的發展前景越大,
0x1 秋招準備
隨著互聯網從業人數越來越多,競爭也呈現白熱化,科班學生不僅要和同專業同學競爭,也會感受到轉專業同學(大部分是碩士)帶來的壓力,參考同系講師的資料,我航15年時6系本科同學比較容易就能去BAT,到了19年BAT頭條對于大部分同學不是想進就進了,
從宏觀意義上來看招聘,企業需要找到適配崗位的員工,學生需要謀取職業生涯的第一份作業,對于學生來說,秋招和高考在本質上是相似的,都是一種選拔,需要證明自己的能力比別人更強,
在準備的時候,定量的標準往往更加具有說服力,『我守望先鋒玩的很厲害』遠遠不如『我守望先鋒全國天梯4000分』,『我學習Java花了很多時間』不如『我閱讀了《Java核心思想》和《Effective Java》以及…,并且復現了書中的代碼,在github倉庫xxx』,
我是從2018.8月下旬(進入大三)開始準備,到找到作業總共花了一年的時間,基本上分為三個時期:
- 2018.8 - 2018.12 :基本素質培養
- 2019.1 - 2019.8 : 百度智能云實習
- 2019.7 - 2019.8 : 秋招提前批
整個秋招的核心思路 = 基礎+實習+專案
1.基本素質
第一次認清自己的水平,是在大二下學期結束的暑假,當時投了百度暑期實習,毫無準備的前提下,只用了20分鐘就掛在了一面,
面試慘跪之后,我分析了自己的處境,當時的我GPA排名40%,沒有參加過ACM程式競賽,沒有實習經驗,除了OO課程,沒有寫過"大型"專案,從編程能力上看,大一資料結構60分醬油飄過,演算法課程也限于理論,只能說能夠應付考試不掛科,Java只會語法,web框架更是沒有專案經驗,
這時候的我深刻意識到自己在編程方面還是個在新手村找不到北的green hand,記得剛上大一的時候,哪位神仙說我校混的差躺著也能去BAT?夢想很美好,現實很骨感,
相對于隔壁北郵,我航更加注重學生的深造(校內讀研和出國留學),對于作業方面的指導甚少,我大部分的時間都是一個人準備,所以經常陷入迷茫orz,這期間主要的問題是:
- 選擇什么方向? (前面已經對市場進行了就業分析)
- 要學習什么內容?(演算法太高級了,玩玩可以,找作業水平不夠)
- 要學到什么程度,才能找到實習/作業?
- 整個秋招的程序,就是我解決這三個問題的程序,
于是,首先我使用Hexo + Github.io 搭建了個人博客
博客有兩個作用:
- 能夠體系化自己的學習,方便復習
- 量化自己的學習成果,面試的時候,給面試官帶來好印象
其次開始有針對性的訓練自己的編程能力,
Java程式員的基本素質有:Java基礎(語法+JVM+多執行緒),Spring框架(SSM/SpringBoot,進階可以SpringCloud),演算法能力(刷題)


2. BAT實習
找作業本身就是一個經驗和需求矛盾的程序:

找實習,認準BAT TMD,其中BATT(頭條)基本屬于一個檔;外企的話,ms/hulu/airbnb認可度也很高,
拿周圍同學舉例,即使是小廠開了一個月8、9k的實習補助,也不要因此放棄BAT的實習機會,
雖然近幾年百度已經明顯掉隊于BAT,但是就我個人體驗來看,外界對于百度的技識訓是很認可的,對于實習來說,鍍金的效果完全夠用,【2020.5 update:目前應屆不滿一年沒有晉升和普調資格,除非部門極好,否則不推薦轉正】
在2019.1月,托研二直系學長的福,內推經過三面通過了百度智能云計算部的后端實習
到8月結束了實習,半年的實習時光對于工業屆有了更深入的了解,
3. 秋招面試
離開baidu主要有兩個原因:
- 作業內容不算滿意:在baidu的作業語言主要是php,大廠目前使用php的很少,不利于職業長期發展;另外實習負責的模塊也不算核心,
- 薪資不夠預期:baidu本科白菜價15k*15,每個月的工資扣掉五險一金和稅,只剩下11k,再加上北京動輒3、4k的房租,過于艱難,
因為花了接近一年時間準備,所以在提前批就結束了秋招,9月大部分企業剛開通秋招正式批通道前,我就歇了,真正準備校招的時間不足兩個月,【2020.5 update: offer這種東西當然是越多越好,去年的我太佛系了,騰訊、微軟、快手這些公司甚至沒投簡歷,現在覺得去年還是naive】
AI四小龍面過了兩家,都是sp | ssp,云從當時沒聽說所以沒投,商湯提前批四道題A了三道解題報告,結果居然沒有不給面試機會Excuse me?
提前批收到了百度、位元組跳動等大廠和一些獨角獸的offer,互聯網薪資保密,已經簽約的就不談具體待遇了,
拿個去年8月已經拒掉的獨角獸offer舉例:
0x2 其他經驗
1. 書籍推薦
國內csdn以及各種類似菜鳥教程的博客的知識系統往往支離破碎,不能深入學習,
看書能夠系統化學習知識,下面推薦我看過的一些書
演算法
- 《劍指Offer》
Java
- 《Java核心技術》,當字典看,不需要整遍過
- 《Java并發編程實戰》 ,熟悉多執行緒
- 《深入理解Java 虛擬機》,熟悉JVM必備
- 《圖解Java多執行緒設計模式》,日本人寫的書,直觀易懂,強力推薦
- 《Java 8實戰》
- 《Effective Java》
Spring:
- 《Spring實戰》
MySQL:
- 《高性能MySQL》,主要是第五六章
- 《Redis實戰》
網路:
- 《圖解HTTP》
- 《計算機網路自頂向下方法》
代碼規范:
- 《重構》
2. 準備專案
對于在校學生來說,準備專案可能會面臨著無法下手的問題,
首先專案一般不是自己憑空想出來的,可以通過實驗室等方式接手比較成熟的方案,
選擇一個感興趣的,從0到1復現一個專案,完善自己的技術堆疊,
3. 演算法能力
面試必備:《劍指offer》 + LeetCode
LeetCode題目比較多,參考Hot/Top 100:

到秋招結束,刷題量不多,總共100左右,但是對每道題使用思維導圖進行總結,盡可能舉一反三:

4. 實習投遞
投遞實習的方式一般有:
[x] 熟人內推:最靠譜最快的方式,投遞簡歷到百度實習面試邀約只花了不到半天,
[x] 牛客網:回應時間一般,1~7天
[x] 官方通道:比如騰訊的暑期實習官方在線投遞,
需要文章中所有資料,Java面試真題可【點擊此處】領取
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/289504.html
標籤:其他
