寫在開頭
收到阿里實習生意向書也有十天了,也完整的經歷了互聯網春招的歷程,雖然已經收到offer了,但是每天還是不斷在刷牛客的討論帖,看看大家的狀態,一路走來也很感謝牛客這個平臺(雖然在平臺投的簡歷大都沒有回信-,-),也是從當初的看大家的面經一臉懵逼到現在一路走來識訓了阿里和騰訊的offer,所以還是打算寫一篇帖子回饋一下牛客哈哈~
回顧
從7月初開始,一共收了了三個offer,同城藝龍(最早面的),騰訊IEG運營開發,阿里巴巴菜鳥網路Java研發,因為騰訊過了,所以期間陸續放棄了快手、攜程的面試和網易、百度等大廠的筆試(比較懶,有點后悔,其實應該去面面漲漲經驗的),頭條也投的比較早,當時還沒準備充分其實,連最基本的堆排序都沒有寫出來,硬撐到三面掛了,其他也投了一些公司,不過大都沒有下文了,
總的程序也比較曲折,騰訊一共面了四個部門(也就是被撈起來三次,無限穢土轉生,,),共面了八次,兩次一面掛,一次二面掛,最后IEG是三面技術面+一面HR通過面試,,阿里原本投的是天貓,但是在三面后流程被轉到了菜鳥網路,最后是在北京現場加面了一面技術面和一面HR面,順利通過面試,
騰訊給我的面試體驗是比較好的,每面之前都會電話或者郵件預約時間,很人性化,頭條是現場面,每面反饋也非常快,大概10-20min,中午還管了飯,阿里戰線拉的最長,每面之間都要隔1-2周吧,所以投阿里的小伙伴一定要穩住性子,畢竟有海量簡歷需要處理,也可以理解,
程序是曲折的,好在最后的結果是好的吧,也希望還沒有理想offer的小伙伴不要著急,穩扎穩打,還有很多機會,
經驗
經歷了這次春招,也有了一些自己的體會,和大家分享一下吧,
- 提早準備,金九銀十是真的,九月到十月份這個時間點機會是最多的,所以一定要提早準備,多刷題、多看面經,不要抱著我還沒準備好的態度,面試經驗是一點點積累出來的,面的越多越知道自己的薄弱點,越自信,
- 《劍指offer》簡直是本神書,刷五遍也不過分,再結合面經多刷一些面試經典演算法題,把基本的資料結構,查找,排序演算法都搞清楚,能手寫,基本可以應對80%的面試,
- 簡歷很重要,多找找以前的學長學姐,對自己的簡歷多指導一下,一分簡潔大方,重點突出的簡歷是很有加分的,
- 態度真誠,對于面試中不會的或者有些遺忘的點,可以直接和面試官說我這里不是很清楚,不要不確定的情況下硬去回答,這樣反而效果不是很好,
- 基礎最重要,總的來說,越是大廠對基礎越為看重,甚至spring都沒用過,只要你的演算法資料結構,作業系統,計算機網路,Java基礎,JVM,并發這些都能夠理解的比較好,通過面試也是完全沒有問題的,
附上騰訊和阿里面經
注:由于是后來回憶的,所有有一些問題記不大清楚了,只能記住個大概
騰訊
一面( 掛)
聊專案(20min左右,主要針對專案架構和一些感興趣的點深入的問)
TCP三次握手,四次揮手
知道哪些樹的結構,分別介紹一下
演算法題,給一個陣列構造二叉排序樹,二叉樹的層次遍歷,時間復雜度,空間復雜度,
一面 (被騰訊音樂撈起來)
開頭:能實習嗎?什么時候能,
TCP三次握手
TIME_WAIT發生在什么時候
select/epoll了解么(不會,那跳過吧)
說一下行程間通信吧
說一下行程調度
哈希表了解嗎,說一下
說一下快排
說一下歸并排序
智力題:100個硬幣,有一個壞的,怎么快速找到,時間復雜度
redis介紹一下,為什么速度快? 單執行緒如何保證高并發?
rabbitmq介紹一下,了解哪些訊息佇列產品,為什么用rabbitmq
平時課余時間都做些什么,怎么提高自己的技能?
一面PCG無線運營
真的好基礎
常見的演算法
二面 掛了
說一下Mysql結構,,???怎么存盤的
Mysql引擎有了解么,介紹一下
Mysql主從復制程序
事務特性
Mysql怎么實作持久性,高可用
OSI三層模型
網路層協議
TCP和UDP的區別
HTTP說一下,HTTP請求頭請求行,有哪些狀態,請求頭有哪些,HTTP方法有哪些
linux,查看系統狀態的命令,查看磁盤的狀態?
redis介紹一下,redis常見資料結構,zset怎么實作的
redis高可用怎么實作的,高可用怎么實作,集群怎么實作,主從復制怎么實作
hadoop了解哪些,hdfs架構說一下,怎么實作高可用
hadoop中的nameserver都存盤了哪些東西?檔案結構是怎么樣的?(一臉懵逼)
啊,redis和hadoop還不如不寫我擦,被虐的好慘啊!!!
騰訊一面
基礎知識,基本就是圍繞網路,資料庫,那些,都答膩了,,,
介紹一個最熟悉的專案
自己實作過哪些資料結構,快排和歸并排序的時間復雜度,空間復雜度
Java 的 volatile有什么作用,怎么實作的
垃圾回收,記憶體模型
題目一道,兩數之和,雙指標
騰訊二面
自我介紹
專案情況,哪些是自己實作的,專案細節 10min左右
用過python和go么(答用過py,主要是java技術堆疊),就沒繼續問了
家庭情況,自己以后的規劃
介紹了部門情況,問IaaS Paas知道嗎
知道SQL注入么
專案對安全有什么考量,怎么增加專案的安全性
專案部署在哪里,用過linux么
說一下知道的linux命令吧,怎么查看系統負載? 埠占用?
shell編程會嗎?
自己的優點有哪些
騰訊三面
家庭情況
實習時間,自己未來的規劃
專案情況,專案整體架構,針對性的提問 10min左右
用過python和go么,python用過哪些庫
Java記憶體模型
Java并發,怎么實作多執行緒
Full GC
多執行緒并發問題,怎么解決
Java并發控制,鎖機制,怎么實作的
說一下樂觀鎖
Mybatis和Hibenate的區別,為什么用Mybatis
Mysql的并發量?鎖是怎么加的?
RabbitMQ怎么用的
HR面
家庭情況
未來的職業規劃
為什么考研?
知道自己的部門嗎,有什么看法?
什么時候能入職?
阿里巴巴
一面
自我介紹
專案劈里啪啦,主要針對專案里使用的技術,問了大約二十多分鐘
知道哪些樹的結構,樹、二叉樹、平衡二叉樹的應用
知道哪些集合類,執行緒安全的呢,concurrentHashMap原理
看過哪些jdk原始碼,平時都怎么學習?
springMVC原理,Spring AOP 實作原理
聊聊畢設 分布式存盤相關 優化策略
負載均衡策略有哪些
資料庫分表策略,分別都對應哪些場景
秒殺系統里怎么做的流量控制,QPS 3000,那么 6000+的請求來了怎么辦
設計一個分布式存盤系統考慮哪些
設計一個分布式架構怎么設計(負載均衡,快取,一致性等等)
覺得自己有什么缺點
覺得自己有什么優點
有什么要問我的嗎
總體來說主要問專案,和針對在校的情況進行一些有針對的提問,問的基礎并不多,可以定義為簡歷評估面試,
二面
自我介紹,夾雜各種學校的事情
懟專案,設計,擔任的角色
hashmap,物件可以當key嗎,有什么注意的地方,執行緒安全嗎,有什么執行緒安全的map
equals和hashcode有什么關系
gc了解嗎,垃圾回收演算法,策略
一個執行緒等待四個執行緒,怎么做
BloackingQueue有哪些,介紹一下
執行緒池策略,10個核心執行緒數,再來一個,怎么辦
Synchronized的作用域,修飾實體方法和靜態方法有什么區別
資料庫事務隔離級別,分別會產生哪些問題
IO模型有哪些,答阻塞和非阻塞,感覺好像被鄙視
在rocketmq社區都做哪些事情
平時怎么學習
在技術上做的最自豪的一件事
有什么想問我的嗎
在線編程測驗
二叉樹的層次遍歷
5個執行緒分別計算一個陣列的和,主執行緒匯總結果,
兩道都A了,面試官說可以,今天先這樣
三面
晚上9.30了都,剛做完筆試,腦袋懵呢還,接到電話,
專案介紹,分別介紹,怎么優化,主要針對專案用的技術問,大概15min左右,基礎問的不多
select和epoll區別,自己用過么
socket代碼怎么寫,你用的哪種,服務器端和客戶端怎么寫的
資料庫隔離級別,分別會出現什么問題
垃圾回收知道嗎,虛擬機什么時候會full gc
二分排序知道么(二分排序???我一臉懵逼,后來發現好像意思是二路歸并排序,,)
演算法:統計大寫字母出現順序,并且排序
之后就是漫長的等待,大概等了三個周,,,
四面 北京現場面
自我介紹
問實驗室的專案(大概有20min左右,也是分別問了專案架構和一些細節)
socket怎么寫的,用的什么模式,NIO知道么,是阻塞的還是非阻塞的,同步的還是異步的,怎么實作,
rabbitmq介紹一下,為什么用,有哪些模式,你用了哪些?
設計模式知道嗎,介紹一下,有哪些應用?
資料庫熟悉嗎?熟悉哪個?介紹一下(說了Mysql InnoDB引擎的一些特點),有什么好處
為什么需要事務? 解決了哪些問題?
MVCC了解么,說一下,解決了什么問題,版本號改成時間戳可以嗎?
sql優化有了解么,說說一些需要主要的地方,sql執行慢怎么辦?
web專案中中文亂碼怎么解決的
spring介紹一下,spring ioc有什么好處,怎么解耦的,spring aop原理
類加載機制介紹一下,有兩個同名的類怎么加載(能編譯無法運行)
最后一個問題,瀏覽器輸入url到頁面顯示發生了什么
五面 hr面
自我介紹
我說了我的名字,然后開始聊關于改名起名的事23333
大學學生會活動,一些活動細節
家庭情況
為什么考研
說說做過最極端的事
職業規劃,為什么想來阿里
說說自己的優點
說說自己的缺點
問問題,什么時候能出結果?答 最早五一之前
總體聊的挺開心的
我是如何拿到大廠offer的?
第一件事:分清階段,制定計劃
從我大學之后,我清晰到自己的現狀,也明白要想改變自己的人生,那就要懂得去規劃,所以,從我實習作業開始,就已經對自己的職業生涯開始進行了一個規劃,而我的規劃很清晰地分成了幾個階段,也把每個階段的目標和重心確立了下來,
- 第一階段:0~3年;我給自己的第一個時間就是3年時間,3年完成第一次跳槽,而且需要跳到更大的平臺,
- 第二階段:3~7年;確立自己的發展方向,技術專家、架構師、CTO或者產品均可,但我知道,無論是朝哪個方向發展,技術知識的儲備一定要系統完善,
- 第三階段:7~未來;這個階段,我應該完成了自己的發展方向,這個時候需要思考人生,或者繼續自己的愛好,享受生活,也或者開始進行創業,

第二件事:梳理知識,重新學習
在唯品會的三年里,我為跳槽做準備,也為第二階段的發展方向做準備,所以梳理自己的知識,讓自己重新開始學習,這三年里,我從未落下過提升自己,自己的學習方向也是按照自己梳理出來的知識路線進行的,一步一步,有條不紊,
- 架構師筑基必備技能:并發編程,JVM,網路編程與高效,MySQL,Tomcat
- 設計思想解讀開源框架:SSM框架(Spring+SpringMVC+Mybatis)
- 性能直線提升架構技術:分布式,ZK,Nginx,RabbitMQ,RocketMQ,Kafka
- 高效存盤讓專案性能起飛:Redis,MongoDB,MySQL高可用,Mycat,Sharding-Sphere
- 分布式擴展到微服務架構:SpringBoot,SpringCloud,SpringCloud Alibaba,Docker,K8S




第三件事:勤寫博客,多做筆記
合格的開發人員一定是要養成良好的學習習慣和作業習慣的,程式員為什么要勤寫博客,多做筆記?理由很簡單:
- 整理思維、加強理解,
- 方便未來、回顧復習,
- 記錄成長,
- 鍛煉寫作文字組織能力,
- 跟其他人反饋、互動,別人會發現一些你發現不了的問題,提升你的思維,
關于這三年來,我也算是寫了不少博客,制作了不少筆記類的PDF,可以免費分享給大家參考一下,包括Redis學習筆記,SpringBoot核心筆記,MySQL調優筆記等等,

Redis學習筆記

SpringMVC開發筆記

SpringBoot-核心技術筆記
第四件事:社群互動,拓寬圈子
人脈的重要性,相信每一個作業的社畜心里都清楚,而我們開發者同樣也需要積累自己的人脈,所以,在唯品會的三年里,我并未只是早出晚歸,整天對著電腦作業,我會利用自己的剩余時間,去參與到一些社群里,與同行交流,參加一下線下的會議或者活動是我比較直接的擴寬圈子的方式,

第五件事:懂得復盤,準備面試
我學會了復盤自己,每年給自己的一個總結,包括知識、作業、生活及情感等各個方面,是否把自己的豐富度進一步地提升了,今年是我第一階段的第三年收尾,也給自己這三年來做個一個總結,同時也要開始開展我的跳槽計劃,然后準備面試,
關于面試,我也做了一些系統且全面性的準備:
- 整理面試知識點


- 刷題刷題刷題



總結
外行對于程式員的認知很單一,也有很多刻板印象,但不管如何,作為開發人員的我們,自己一定要正視自己,如果我們連自嘲和自卑都分不清楚了,那發展也就僅限如此了,
所以,盡早規劃自己,朝目標發展,才是上策之道,而不是怨天尤人,等到30歲后再去焦慮,
希望大家能一起進步,文章以上所有的資料均可以免費分享給你們,需要的朋友可掃碼獲取
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/82320.html
標籤:其他

