前言
要說程式設計師最想要進入的大廠,阿里,騰訊,百度必定是首當其衝,而網際網路大廠必定是阿里巴巴首當其衝,今天就來分享一下我面試阿里的一些經歷與心得。
不想進大廠的程式設計師不是好程式設計師!
「80%的oer掌握在20%的人手中」這句話也不是不無道理的。決定你面試能否成功的因素中實力固然佔有很大一部 分比例,但是如果你的心態或者說運氣不好的話,依然無法拿到滿意的 oer。運氣暫且不談,就拿心態來說,千萬 不要因為面試失敗而氣餒或者說懷疑自己的能力,面試失敗之後多總結一下失敗的原因,後面你就會發現自己會越來越強大。
本人也是經歷了大半年的準備才拿到了阿里的offer
個人經歷
普通專科畢業,12年轉行進入軟體開發行業。在杭州工作兩年,14年來到深圳,從事java開發一晃8年。嘗試過2次開發方向的轉變,一次是2014年左右,移動APP的浪潮時期,自學了安卓開發半年,結果還沒等轉開發方向成功,移動開發的浪潮就逐漸過去,第一次轉變嘗試就這樣胎死腹中,白忙活一場。第二次是2015~16年,這個時間點正是大數據開發最熱門的時期,自學各種大數據框架,無奈受限於學歷,並沒有找到滿意的工作,只能回歸java。
盲目的追逐了幾次技術浪潮,但是又沒有真正對自己的職業生涯有多大的幫助。
總的來說,工作8年,做過一些嘗試和努力,但可能沒有遇到好的機會或者選擇的方向錯了,導致至今混得不盡如人意。
人生轉折
出於對現狀的不滿,我決定要努力奮鬥了!
因為覺得這樣確實是在浪費自己時間,(看著同期的同學都在茁壯成長) 與其坐以待斃,不如我自己先出去試試水,去一家能夠迅速成長的公司。提完離職申請,我開始有意識看些面試問題,重拾培訓時的筆記,背題目,看些基本的知識問題……
人生的路,一步慢,步步慢。如果在一開始就落後的話,只會與那些早有準備的人越離越遠。
這段時間看過的書
《Java核心知識》《Java面試寶典》《高並發與多線程》《Java程序性能優化》、《Spring實戰》、《Zookeeper》、《高性能MySQL》、《億級網站架構核心技術》、《可伸縮服務架構》、《Java編程思想》
這些書也只是看了一部分,並沒有全部看完,有時會經常帶著問題就進入了夢鄉,所以這段時期我的進展並沒有太大明顯。
分享下這段時期面試總結的一些經驗
1、面試一定要帶簡歷,這是態度問題,不然容易第一印象就不好。
2、簡歷上最核心的2點,1是自己掌握的技術棧說明,讓面試官清楚知道你掌握技術棧;2是項目中使用了哪些技術棧,體現自己對這些技術棧的實際項目的運用情況。
另外簡歷不要超過3頁。很多早期的項目經驗和大篇幅的項目功能介紹,並沒有什麼意義。
3、準時,實在有突發情況,要提前打電話商量修改面試時間。
4、至少提前幾周準備面試,因為java知識體系真的很龐大,不複習下直接面試,就像送人頭一樣,很容易錯失難得的面試機會。
5、java基礎一定要掌握好,不然丟分非常嚴重。之前面試一個高級java,竟然回答不出年輕代的垃圾回收機制,一下子我都不想繼續聊下去了。
6、框架的核心特性要熟悉,並對其實現原理有一定的了解。比如:Spring Boot有哪些新的特性?他的核心特性自動化配置的原理了解嗎?
7、主流中間件的工作原理和調優有一定的了解。
8、資料庫一般也是必問的,索引,鎖,事務,sql優化都必須了解。
9、聽清楚面試問題再回答,不要答非所問,太過自由發揮。你和面試官聊得越有共鳴,你通過的機率越高。不知道可以直接說不知道,然後再闡述下自己的認知和了解,以探討的方式讓面試官和你互動,這樣也能偷師點東西。
10、了解不深的技術棧名詞和機制,儘量迴避,不然只要你提到,面試官就可能展開深入的問下去。
11、多積累一些技術圈的人脈,很多時候內推進入會容易很多。
12、多積累一些可展示的技術成就和作品,比如參與了某某著名網站或者APP的核心模塊開發,在GitHub上開源了什麼框架或者參與了什麼開源框架的開發,著名博客網站的一些排名,運營某某技術公眾號。
由於我自己學習的過程過於雜亂無章,所以這段時期面試的效果並不理想
小轉折
經過這段時期面試的失敗我總結了一個道理:學習需要的也不是一腔熱血,需要的是長期的規劃,這裡分享一個思維導圖,大家可以自行進行查漏補缺和規劃:
對應阿里P7架構師路徑圖
需要這份學習路線高清圖的小夥伴可以私信小編」面試「獲取
spring
Spring Cloud 是一套完整的微服務解決方案,基於 Spring Boot 框架,準確的說,它不是一個框架,而是一個大的容器,它將市面上較好的微服務框架集成進來,從而簡化了開發者的代碼量。
K8S
Kubernetes是Google 2014年創建管理的,是Google 10多年大規模容器管理技術Borg的開源版本。它是容器集群管理系統,是一個開源的平臺,可以實現容器集群的自動化部署、自動擴縮容、維護等功能。
zookeeper
zookeeper是一個分布式服務框架,是Apache Hadoop 的一個子項目,它主要是用來解決分布式應用中經常遇到的一些數據管理問題,如:統一命名服務、狀態同步服務、集群管理、分布式應用配置項的管理等。
簡單來說zookeeper=文件系統+監聽通知機制。
Netty
Netty 是一個利用 Java 的高級網絡的能力,隱藏其背後的複雜性而提供一個易於使用的 API 的客戶端/伺服器框架。
它活躍和成長於用戶社區,像大型公司 Facebook 和 Instagram 以及流行 開源項目如 Infinispan, HornetQ, Vert.x, Apache Cassandra 和 Elasticsearch 等,都利用其強大的對於網絡抽象的核心代碼。
經歷了這段時期系統性的學習後,籌備了半年終於又一次得到了去阿里面試的資格。
Java中間件一面
1.技術一面考察範圍:
重點問了Java線程鎖:synchronized 和ReentrantLock相關的底層實現線程池的底層實現以及常見的參數數據結構基本都問了一遍:鍊表、隊列等Java內存模型:常問的JVM分代模型,以及JDK1.8後的區別,最後還問了JVM相關的調優參數分布式鎖的實現比較2.技術一面:
1.自我介紹
2.擅長哪方面的技術?
3. Java有哪些鎖種類? (樂觀鎖&悲觀鎖、可重入鎖&Synchronize等)
4.比較重要的數據結構,如鍊表,隊列,棧的基本理解及大致實現
5. J.U.C下的常見類的使用。ThreadPool的深入考察; BlockingQueue的使用
6. Java內存分代模型,GC算法, JVM常見的啟動參數; CMS算法的過程。
7. volatile關鍵字有什麼用(包括底層原理)
8.線程池的調優策略
9. spring cloud的服務註冊與發現是怎麼設計的?
10.分布式系統的全局id如何實現
11.分布式鎖的方案,redis和zookeeper哪個個好,如果是集群部署,高並發情況下哪個性能更好。
Java中間件二面
1.技術二面考察範圍:
問了項目相關的技術實現細節資料庫相關:索引、索引底層實現、mysql相關的行鎖、表鎖等redis相關:架構設計、數據一致性問題容器:容器的設計原理等2.技術二面:
1.參與的項目,選一個,技術難度在哪裡?
2. Collections.sort底層排序方式
3.負載均衡的原理
4.設計模式與重構,談談你對重構的理解
5.談談Redis相關的集群有哪些成熟方案?
6.再談談-致hash算法(redis)?
7.資料庫索引,B +樹的特性和建樹過程。
8. mysql相關的行鎖,表鎖;樂觀鎖,悲觀鎖
9.談談多線程和並發工具的使用
10.講講Redis的架構和組件
11. Redis的數據一致性問題(分布式多節點環境&單機環境)
12. docker容器
Java中間件三面
1.技術三面考察範圍
主要談到了高並發的實現方案以及中間件:redis、rocketmq、kafka等的架構設計思路最後問了平時怎麼提升技術的2.技術三面題目
1.高並發情況下,系統是如何支撐大量的請求的?
2.接著上面的問題,延伸到了中間件,kafka、 redis、 rocketmq、 mycat等 設計思路和適用場景等
3.最近上過.上哪些技術站點; 最近在看哪些書。
4.工作和生活中遇見最大的挑戰,怎麼去克服?
5.未來有怎樣的打算
Java中間件四面
最後,你懂的,主要就是HR走流程了,主要問了未來的職業規劃。
歷經半年籌備,終入職阿里巴巴
針對性的了解相關的知識
這半年多時間一直都在針對學習路線找相關的資料,也通過一位京東的朋友要到了一份京東架構師寫的Java面試寶典(284篇)我把京東架構師給我的一份Java面試寶典啃完了,從而還找了Java後端以及一些大廠的面試場景和面試題不斷刷題提高自己的眼界
資料獲取方式:轉發和評論這篇文章,然後關注小編,後臺私信【面試】即可打包帶走所有資料~
Java核心面試寶典複習知識
這本Java核心知識把每個知識點解析的很深,對大家應該很有幫助,它把大部分的Java知識集結在一起深入的解析出來(非常建議大夥看一看)
關注我後臺私信回復【面試】領取獲取往期Java高級架構資料、源碼、筆記、視頻。Dubbo、Redis、設計模式、Netty、zookeeper、Spring cloud、分布式、高並發等架構技術
高並發
Redis
Spring cloud
Spring/Netty/Dubbo/JVM
微服務架構
根據自身面試經歷整理以及不斷收集的(珍藏版)
相關的電子書、底層源碼
阿里巴巴必備學習知識點
結束語
很多人感嘆「學而無用」,實際上之所以產生無用論,是因為自己想要的與自己所學的匹配不上,這也就意味著自己學得遠遠不夠。無論是學習還是工作,都應該有主動性,所以如果擁有大廠夢,那麼就要自己努力去實現它。
以上學習資料均免費放送,最後祝願各位身體健康,順利拿到心儀的offer!
資料獲取方式:轉發和評論這篇文章,然後關注小編,後臺私信【面試】即可打包帶走所有資料~