架構師
傾向於 通信 、 通信框架 、隊列和 分布式框架運用以及阿里雲和微軟現有分布式組件的運用。
高級軟件工程師
傾向於 C#基礎、 多線程、鎖和數據庫索引 (隊列和通信也會問只是會問的淺一些)
研發經理
包含高級軟件工程師問的這些外,還會問管理方面的知識
我面試的三家公司分別面試了三個職位,將知識點進行了一個表格整理,分值越高就意味着問的越深,不能百度之百准確,只當參考。
| 職位 | C#基礎 | 通信 | 緩存和隊列 | 數據庫索引 | 數據庫鎖事務 | 前端 | 多線程 | 數據結構 | 管理 | 自我介紹 | 大數據方案 | 常用框架 | 項目介紹 | 邏輯題 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 架構師 | 10 | 100 | 100 | 100 | 80 | 0 | 100 | 100 | 30 | 100 | 100 | 50 | 100 | 100 |
| 研發經理 | 100 | 50 | 70 | 70 | 50 | 0 | 100 | 80 | 100 | 100 | 60 | 0 | 100 | 50 |
| 高級軟件工程師 | 100 | 50 | 70 | 100 | 100 | 50 | 100 | 50 | 0 | 100 | 70 | 100 | 100 | 60 |
知識點細講
C#基礎
主要面些 接口、裝箱拆箱、值類型引用類型和線程
可以參考面試基礎:http://www.codeisbug.com/Doc/4/63
例如:什么是裝箱和拆箱,裝箱和拆箱為什么會影響性能。這些屬於深問細節,所以要做好防問准備。
通信
主要分為Http協議 TCP協基礎知知識,通信框架例如開源的Supersocket RestSharp,微軟的WCF和Signalr等等的運用和搭建,
更深入的會問到,例如 什么是粘包和osi七層模型等理論知識。
緩存和隊列
例如redis框架使用,Redis有哪些數據類型,主從模式如何實現,常用的隊列框架有哪些(RabbitMQ和MSMQ)
隊列和緩存的區分是什么?非關系型數據庫應用場景又是什么?
隊列:適合處理高並發,可以看這篇文章理解隊列作用:http://www.codeisbug.com/Ask/11/1070
非關系型數據庫:適合簡單業務數據億級左右的數據處理,太多、太少或者業務復雜都不適合
緩存:緩存數據也可以當做高性能隊列使用
數據庫索引
數據庫索引是每次面試必問之題,你要了解索引的分類,索引的存儲結構,數據存儲結構,如何用SQLServer分析SQL執行計划,聚集索引適用於什么場合,聚集索引和非聚集索引的區別
數據庫鎖事務
例如會問 數據庫的隔離級別,數據庫有哪些鎖,可以參考:http://www.codeisbug.com/Ask/11/1079
前端
你會使用哪些前端框架,如何適應移動端布局等等,這類會問的比較少
多線程
一般會問什么情況會用多線程、LOCK底層實現,多線程性能優化等
數據結構
這個就去看數據結構與算法的書吧,例如什么是二叉樹,不要不懂。
管理
一般會問如何管理好團隊,去看一本項目管理的書裝逼就夠用了。
自我介紹
自已准備好,一般說名字 學歷,工作經驗,幸趣愛好等。不要太長,10句左右差不多背好去面試。
大數據方案
這個一定要了解阿里或者微軟的雲框架,除此之外還要知道隊列如何處理大數據,分布式緩存等,例如hadoop這些名詞要了解,你了解什么分布式中間組件。
常用框架
aufac底層原理,aufac有哪些使用模式,依賴注入和控制反轉有什么區別,依賴注入的作用,用過哪些ORM他們各自的優點有哪些等。
項目介紹
一般會問你的項目細節,使用了哪些技術
邏輯題
這些都是用排除法的思路去做,或者結合程序算法
