寫在前面
首先說下樓主經(jīng)歷,之前經(jīng)驗為互聯(lián)網(wǎng)大廠經(jīng)歷,工作年限屬于3-5年的范圍。
以我面試的經(jīng)歷來看,面試官對于該工作年限的要求已經(jīng)從編程基礎(chǔ)、[算法]、常規(guī)場景變更為行業(yè)經(jīng)驗、行業(yè)業(yè)務(wù)、架構(gòu)設(shè)計或者或是重點功能模塊設(shè)計、中間件使用、框架理解轉(zhuǎn)變,顯然這個年限的招聘需求需要一個高級工程師甚至資深工程師而非入門只停留在簡單coder的角色。這點轉(zhuǎn)變是對于個人是必要的,如果沒有從之前的初學(xué)者入門者的角色出來,在這之后的面試會很尷尬,除非你對薪資或者崗位的訴求就是入門。
這時候的面試,現(xiàn)場編程已不是必須,但仍有一些公司是必備,例如某米,某條。
針對于該年限的找工作的個人看法,無非兩個選擇:
- 深耕行業(yè)。例如你之前做電商,繼續(xù)電商,之前社交,繼續(xù)社交。
優(yōu)勢:
- 行業(yè)運作規(guī)則、商業(yè)模式、前景你已經(jīng)有一定的大局觀認(rèn)識,后續(xù)的發(fā)展你已經(jīng)有一定的基礎(chǔ),有機(jī)會去摸高。
說到這里,也許你會說我一個后臺開發(fā),需要這些干嘛?我個人呢會覺得這是你要摸高的必要的東西,是需要對一個行業(yè)的整體認(rèn)識,技術(shù)之余的軟實力也是很有必要的,例如對待業(yè)務(wù)的看法,對待行業(yè)的下個風(fēng)口的預(yù)判,對這個行業(yè)的自己的見解。
- 業(yè)務(wù)有一定熟悉,代碼上手更快,更易獲得新團(tuán)隊的資源。
- 可以繼續(xù)沉淀該方向的業(yè)務(wù)
2. 換個賽道。
其實這里并不是自己的主觀選擇,例如之前在電商工作,天天大促活動要加班,想換一下賽道;之前做EA,覺得tob沒勁,更希望做toc的產(chǎn)品;
優(yōu)勢:
- 技術(shù)上可以面對不同的業(yè)務(wù)場景,學(xué)習(xí)這個業(yè)務(wù)下的面對復(fù)雜的業(yè)務(wù)場景,技術(shù)上怎么解決。
- 也許新賽道起飛(當(dāng)然賺大錢的都是企業(yè),但你也可以跟著喝湯呀)
- 新鮮??梢员3旨夹g(shù)熱忱
至于大家怎么選擇,仁者見仁智者見智了。
[面經(jīng)]
tips:由于不是當(dāng)時面試完就立即記錄,所以就沒有細(xì)分123面
某米:
1.JVM分區(qū)
2.hashmap1.7 1.8,詳細(xì)講講resize
3.gc,垃圾收集器,年輕代,年老代
4.雙親委派,怎么破壞?破壞的意思何在?
5.redis,基本數(shù)據(jù)類型,跳表實現(xiàn),如何get、set一個數(shù)據(jù)?通信模型?epoll?
集群fail-over機(jī)制,哨兵,一致性hash,get set一個數(shù)據(jù)的過程?
6.kafka,rmq區(qū)別,rmq順序消費,事務(wù)消息,如何保證消息不丟?at least once?msg key和msg-id
7.io模型,講講多路復(fù)用
8.tcp,狀態(tài)都有幾個?停留在time-wait狀態(tài)多了怎么辦?停留在sync-recv?
9.mysql acid,當(dāng)前讀、快照讀,事務(wù)隔離級別,mvcc,next-key lock,rr怎么實現(xiàn)的?
跟oracle的區(qū)別,引擎,引擎之間的區(qū)別,
為什么用b+樹
mysql執(zhí)行一條語句的順序,各種log是怎么配合的,
10.beanFac和FacBean
11.spring bean加載流程
12.設(shè)計模式,用過什么,為什么用,好處?常見框架有使用設(shè)計模式的嗎?舉例?
13.線程池,講講worker工作流程,講講run和call接口對于exception的處理
14.aqs,講講reentrantlock怎么使用的aqs
[算法題]:
之字遍歷[二叉樹]
鏡像[二叉樹]
某飛:
1.spring boot啟動過程,@springbootApplication
2.spring啟動過程
3.jdk1.8新特性
4.A轉(zhuǎn)賬B需要注意?涉及場景?你怎么解決?
5.java常用數(shù)據(jù)結(jié)構(gòu)
6.mybatis,一個sql執(zhí)行過程?
7.上臺階有幾種上法
8.mysql 索引優(yōu)化遇見過什么問題?
某豐:
1.spring bean加載流程
2.spring循環(huán)依賴怎么解決?解決不了什么?為什么?
3.spring、springboot、springmvc啟動流程,使用版本,新特性
4.你自己怎么設(shè)計springmvc框架對于請求到處理的流程?可能遇到什么問題?框架如何解決的?
5.jdk、mysql使用版本,最新什么版本,有什么新特性
6.service mesh概念,istio怎么實現(xiàn)的?sidecar模式是什么樣的?怎么做染色分流?Envoy,控制平面,數(shù)據(jù)平面,你們公司會采用什么方式做微服務(wù)?集中的服務(wù)注冊發(fā)現(xiàn)、sidecar模式、agent代理模式有什么區(qū)別,優(yōu)缺點?講講agent模式具體服務(wù)怎么注冊發(fā)現(xiàn),怎么治理,怎么互相通信?異構(gòu)系統(tǒng)通信怎么在上述模式中實現(xiàn)的?
7.雪花[算法],時間回?fù)芴幚?/p>
8.docker的優(yōu)勢是?跟虛擬機(jī)的區(qū)別?為什么快?怎么跟linux系統(tǒng)打交道?服務(wù)端口怎么暴露,如何跟外部服務(wù)通信,如何跟系統(tǒng)通信?
怎么在linux下云時代是什么?云時代意味著什么?后續(xù)微服務(wù)的演進(jìn)方向?如何看待微服務(wù)?
k8s?架構(gòu)是什么樣的?Master和worker扮演什么角色,具體工作是什么?
(吐槽點:你們是要招什么?面試官你要干什么?無語。)
上述都有共通點,就不在每一part里面加了,就是一開始的項目環(huán)節(jié),這個因人而異,但關(guān)鍵問題基本都有三問:
1.挑戰(zhàn)點
2.為什么能成為挑戰(zhàn)點?(解釋下為什么這是個問題或者為什么是個復(fù)雜的業(yè)務(wù)場景)
2.怎么解決的
當(dāng)然還有面試完之后的經(jīng)典環(huán)節(jié),你還有什么要問我的?這里我建議大家都想幾個固定有價值的問題,能突出你對該公司的關(guān)注,對崗位感興趣。例如:團(tuán)隊氛圍,業(yè)務(wù)前景,競品,產(chǎn)品特色亮點,成為團(tuán)隊中優(yōu)秀人員需要的關(guān)鍵品質(zhì)你覺得用哪些詞可以概括?當(dāng)然你也可以問上班節(jié)奏如何?(這里感覺第一面對這個問題的回答比較重要,因為很可能是你共事的有經(jīng)驗的同事,一般也不會太坑你,可以相信,或者上班時間+半小時更準(zhǔn)確)另外也可以從面試官對你提出的問題回答的積極性反應(yīng)你是否通過此次面試
最后的最后希望大家都能找到心儀的工作!(未經(jīng)允許,嚴(yán)禁轉(zhuǎn)載,謝謝)