前言前端
關注過的朋友都知道我更新不少面試經歷 這些經歷都是粉絲的投稿java
今天整理了一篇Java 程序員面試大廠的技術標準mysql
BATJava 程序員的技術標準linux
阿里巴巴篇nginx
紮實的計算機專業基礎,包括算法和數據結構,操做系統,計算機網絡,計算機體系結構,數據庫等程序員
具備紮實的Java編程基礎,理解IO、多線程等基礎框架web
熟練使用Linux系統的經常使用命令及shell有必定了解面試
精通多線程編程,熟悉分佈式,緩存,消息隊列等機制;熟悉JVM,包括內存模型、類加載機制以及性能優化redis
精通spring mvc、orm框架(ibatis或hibernate)、模板引擎(velocity)、關係型數據庫設計及SQL算法
具有良好的面向對象編程經驗,深刻理解OO、AOP思想,具備很強的分析設計能力,熟悉經常使用設計模式
有大型分佈式、高併發、高負載、高可用性系統設計和穩定性經驗
熟悉面向對象設計開發,熟悉各類經常使用設計模式,並有在具體的應用場景落地經驗
熟悉Spring、iBatis,等開源框架及消息,存儲等經常使用中間件。 有通讀過開源框架源碼
熟悉基於Oracle或者Mysql的設計和開發、Linux操做系統
熟悉SOA,有平臺化實施經驗者,有大數據量、高併發系統和大型網站構建經驗
分佈式系統應用架構設計與研發經驗,精通Java EE、SOA、OSGI等相關技術
對各類開源的框架如Spring、Hibernate等有深刻的瞭解,對框架自己有過開發或重構者可優先考慮
具備大型電子商務網站、O2O行業、C端產品系統架構設計經驗
百度篇
熟悉常見設計模式,掌握java流行的開源框架SpringMVC/Spring Boot/Spring Cloud,熟練使用至少一種 ORM 框架
熟練掌握基本的數據結構和算法,有系統分析和設計的實踐經驗
熟悉Rest,HTTP,Socket、webservice、HTTP協議,具有併發、多線程的編程經驗
對Mysql、Redis、MongoDB 等數據庫有研究或者項目經驗
具備大型互聯網服務設計及開發經驗
熟悉JVM,對JVM有必定理解,並能藉助相關工具進行JVM性能調優
熟悉常見的開源分佈式中間件、緩存、消息隊列等,熟悉nginx,MySQL,Redis,mongodb 等經常使用的開源軟件
熟悉 MySQL 數據庫設計和優化,有 NoSQL 數據庫使用經驗
具備大數據存儲或者高性能計算平臺架構、設計及開發等方面經歷
具備大型互聯網服務設計及開發經驗
騰訊篇
精通Web後臺開發語言至少一種(PHP、Java、.Net、C++),有必定的架構能力和良好代碼規範
熟悉linux/unix系統與開發環境
熟悉TCP/IP協議,socket編程
熟悉mysql以及SQL語言
有高性能大容量服務系統設計開發經驗
精通面向對象設計,精通J2EE開發,java web開發
全面而且紮實的軟件知識結構(操做系統、軟件工程、設計模式、數據結構、數據庫系統、網絡安全);
具有良好的分析解決問題能力,能獨立承擔任務和有系統進度把控能力
精通MySQL或Mongo DB,熟悉緩存技術memcached、redis
有大型分佈式、高併發、高負載、高可用系統設計、開發和調優經驗
B/S結構系統分析及設計經驗,有構建可伸縮、可擴展、高可用系統經驗
有良好的開發習慣,熟悉Maven, Jenkins, JUnit等工具
精通MVC/REST架構、模板引擎、中間件的原理與應用
熟悉MySQL數據庫,瞭解MySQL索引優化、查詢優化和存儲優化
BATJ技術專家,他們的技術能力都須要達到什麼程度?
一般都是百度、阿里巴巴、騰訊、,那BAT的技術專家至關因而騰訊T4技術專家、阿里P8高級技術專家級別,是一線Team leader或者二級域架構師,須要對一個領域的業務很是熟悉而且可以將影響力輻射到其餘合做團隊。
通常來講一些業務架構、應用架構、產品功能決策、技術選型、協做分工等問題應該在技術專家層次終結,技術專家是一線做戰的小隊長,向下提供決策,向上提供有效的信息。
BAT是國內技術大廠,因此能夠參考BAT的標準,而對技術專家的要求是什麼呢,如下4個小結能夠做爲參考。
1.代碼能力
代碼能力是基本功,Java語言自己,包括語言的各個方面包括對併發的理解,對內存使用對理解,對Java運維的理解等等,語言自己外,社區裏經常使用的框架是否能夠十分清晰的瞭解,包括spring,包括他實現的ioc,aop,orm,web機制是否有清楚的認識,有豐富的經驗等等。
2.對經常使用中間件的理解
畢竟在一個大系統中,各類中間件是是否常見的,緩存中間件,消息中間件,例如 redis、memcache、rmq這些,要理解經常使用中間件使用場景,使用姿式(例如redis的經常使用命令),甚至包括他的一些運維,一旦出了問題,除了專門的運維人員,也須要你參與問題的排查,由於有時候這些中間件出現問題,是不當的使用姿式引發的。
3.架構、業務落地能力
前面提到了語言自己,各類中間件,若是你有很好的業務抽象能力和架構思惟,就能夠把一款部門內部產品很好的設計並實施了,這點蠻難的,想必都有過接手現有項目的經歷吧,有時候真巴不得把以前的設計者拿出來批鬥,做爲一個設計者,你可否作到當下一個接手它的人會說一句,這個系統設計的真好,穩定又可拓展,理解起來也很容易。
4.溝通協做
畢竟一個部門內部產品,是不可能由一我的完成的,因此須要溝通協做,把設計好的方案,要和2-3個小夥伴一塊兒實施,包括一樣身份的後端人員,前端人員,產品等角色,這個級別的人可能會參與帶2-3我的,例如應屆畢業等,因此你本身對知識的把握,分享精神,leadership都是很好的加分項。
福利
針對技術這一塊,我本身除了整理了一份架構圖譜,還找朋友錄了一些視頻,和本身收集了一些視頻,講解的都是一線大牛,裏面包括了一些Java分佈式、微服務架構、源碼分析、性能優化、併發編程等技術視頻,這段時間面試跳槽的朋友比較多,還有一套BATJ面試題合集,都已經整理好了
部分面試資料
部分視頻資料
加羣:1017599436管理員處可免費獲取文末福利資料