天天看點

必知必會 - 邁向卓越

       企業是如何選撥高素質工程師(進階軟體工程師or架構師)的?除了腦筋急轉彎那種簡單的開場白外,還需要更專業,更深邃的交流。這裡,我把自己平時的思考備案分享給大家,歡迎讨論~

基礎技術篇(資料結構,并發程式設計,jvm記憶體調優等)

1. 談談對隊列offer,poll,peek操作的了解(實作,算法複雜度)

2. 談談對hashmap,concurrenthashmap,concurrentlinkedqueue,abstractqueuedsynchronizer的了解(實作,核心操作,算法複雜度,使用場景)

3. 談談對字元集的了解

4. 談談對nio程式設計模型的了解

5. 談談tcp網絡程式設計可能會遇到的問題

6. 談談對序列化的了解

7. 談談對softreference,weakreference,phantomreference的了解

8. 談談對異常的了解

9.談談對設計模式的了解

10.談談對類加載器原理的了解,child first/parent first模型優缺點如何?

11.談談對asm的了解

12.談談jvm調優經驗

13. maven的phase,goal有什麼差別?lifecycle呢?git是如何pull request的

全局統籌篇(技術深度,廣度,前沿技術敏感度,工作習慣,架構觀)

1. 工作中,除了對j2se libarary的使用外,你還會用到哪些工具庫?(腳手架問題,用好了極大提升效率,也可考察出其知識面)選擇這些庫的标準是?舉幾個簡單例子吧

2. 精度丢失的問題,遇到過嗎?(float,double,bigdecimal) 如何避免?

3. 序列化中需要注意什麼問題?對時間的序列化,又需要考慮什麼?

4. apache,ngix,lighttpd怎麼解決高并發通路的?采用什麼模型?優缺點是?如何調優?poll,select,epoll模型在各個web server中的實作情況?

5. memcached 是分布式緩存,還是集中式緩存?實施中需要注意什麼問題?

6. 工作中,設計模式用的多嗎?怎麼用?visitor模式應用中需要注意些啥?

7. 談談你對架構的了解。工作中,你是如何去架構設計一些系統的?(可以從基礎架構方面談起,也可以談談是如何幫助團隊成員做設計評審的)

8. 架構vs.設計?如果讓你設計一個ioc容器,如何用優雅的架構保證你的設計?

9. 并發程式設計中需要注意些什麼?哪種情況下線程可以reentrant?如何優雅的結束線程?啪啦啪啦一堆堆問題

10. reactor模式和proactor模式了解多少,web server中有哪幾種高性能io模式?

11. 曾經參與過或者分析過哪些開源架構,帶給你最大的感受是什麼?

12  如果公司讓你設計一套應用監控平台(java平台),你覺得會碰到哪些技術難點(架構或細節層面均可談談。可以談談java agent技術)?

13. 談談你對consistent hashing algorithm的了解,如何設定虛拟節點,如何選擇hash算法(更高的命中率,有效的故障轉移)?

14. 歸并排序,堆排序工作中有用到嗎?如何應用的?

15. 談談你sql優化方面的經驗?可以從執行計劃談起,對choose,rule.cost進行剖析

靈活流程篇(團隊建設,人才培育,基礎建設)

1. 靈活思想能為你工作中帶來什麼?怎麼了解coding-pair的?

2. 人,而不是流程或方法決定了軟體開發過程的成功,談談你的看法?

3. 用jira來跟蹤管理我們的問題和需求;用confluence來聚集團隊的想法、計劃和知識?在此過程中,你遇到了哪些問題;

4. 持續內建,版本控制方面,你是如何做的?

5. 你是如何推進項目執行的?

6. 招聘是一個請進來的過程,為了找到更靠譜的人才,你的做法是?請進來之後,又是如何幫助他們成長的?

參考文獻: