這件事弄得我挺郁悶的.
公司的兄弟部門要招一個JAVA平臺的架構(gòu)師, 一位來面試的兄弟簡歷上做了十五年的編程,十二年JAVA工作經(jīng)歷.經(jīng)歷過N多的公司.原面試的一個女同事經(jīng)歷較淺,怕罩不住,請我?guī)退嬖囈幌?
我看了一下簡歷,大多數(shù)時間在做CRM,工作流,辦公系統(tǒng)類的項(xiàng)目,也有兩家公司是國內(nèi)比較知名的互聯(lián)網(wǎng)應(yīng)用的項(xiàng)目.我面試的一貫原則不會問我自己懂的東西,而是看對方的行業(yè)經(jīng)驗(yàn)去問他自己熟悉的東西.
下面是面試的內(nèi)容: 談?wù)勔话愎ぷ髁髦辛鞒桃嫣幚淼膶ο竽P? 答:我做的都是特定于某個需求的流程,不了解通用的工作流處理的原理.(十五年的經(jīng)驗(yàn)不知道一點(diǎn)模型抽象,一直在造輪子). 談?wù)刉EB應(yīng)用中大規(guī)模用戶高并發(fā)需求的網(wǎng)站架構(gòu)一般原則. 答:(內(nèi)容不少,但主要是以下幾點(diǎn)) 1.負(fù)載均衡,2 cache(自己介紹一個投票系統(tǒng),用戶投票數(shù)據(jù)直接放在cache中).3數(shù)據(jù)庫讀寫分離. 如何做數(shù)據(jù)庫讀寫分離,談?wù)勀阕鲞^的經(jīng)驗(yàn). 答:我自己沒做過這些方案,就是看過這樣的方案介紹. 如果新增數(shù)據(jù)也放在cache中,如何保證出現(xiàn)異常時數(shù)據(jù)不丟失? 答:我可以在容器關(guān)閉前寫到數(shù)據(jù)庫,平時每10分鐘與數(shù)據(jù)庫同步一次. 對于大規(guī)模用戶的WEB應(yīng)用,10分鐘可能上百萬的數(shù)據(jù),要是突然當(dāng)機(jī)來不及同步到數(shù)據(jù)庫怎么辦? 答:…………………..沒考慮過. 網(wǎng)站的負(fù)載均衡有哪些模型? 答:沒有做過,按照我的理解就是多點(diǎn)分布. [有人說面試架構(gòu)師怎么會問下面這些問題,如果一個被面試的人根本沒有真實(shí)的架構(gòu)經(jīng)驗(yàn),下面該問什么?只能問他自己熟悉的東西] 那你自己最熟悉的技術(shù)點(diǎn)在哪方面? 答:JAVA技術(shù)方面,比如多線程. OK,那我們聊聊JAVA技術(shù).JVM底層技術(shù)有了解嗎? 答:這個當(dāng)然了解. 請用你知道的知識描述一下GC的工作原理. 答:一個對象沒有引用的時候就可以被回收. 那么怎么知道對象沒有引用了呢? 答:這個不知道. GC是如何分代的? 答:什么分代?我不了解. 關(guān)于GC還了解哪些? 答:其它的不清楚,我記得只要對象沒有引用就可以回收了. OK,多線程方面,jdk5以后的concurrent包中的數(shù)據(jù)結(jié)構(gòu)用過哪些? 答:數(shù)據(jù)結(jié)構(gòu)是什么意思? 就是相當(dāng)于java.util下面的容器類. 答:我用過threadpoolexecutor. 我問的是數(shù)據(jù)結(jié)構(gòu)或叫容器,比如說List,Map這類的數(shù)據(jù)結(jié)構(gòu). 答:沒有用過,我平時用的都是同步之類多線程(意思是1.5之前的并發(fā)編程類庫). OK,請簡單畫一下JAVA的內(nèi)存模型. 答:內(nèi)存模型?不了解,我畫不出來. 那么請說說volitale關(guān)鍵字在JAVA5之前有什么作用. 答:沒聽說過這個關(guān)鍵字. 那么,進(jìn)入同步塊和離開同步塊時,變量是如何同步的? 答:這些底層的東西我都不了解,主要是做應(yīng)用層.。 主要做應(yīng)用層,那么熟悉使用的框架嗎? [到了這里,只能問這些了] 答:是啊.struts,hibernate,spring這些框架比較熟悉。 hibernate中,l1,l2的cache,給一個經(jīng)驗(yàn)值. 答:沒有做過. volecity中,如果我要在渲染到頁面之前統(tǒng)一對內(nèi)容進(jìn)行攔截處理應(yīng)該如何做? 答:做一個filter,在請求進(jìn)來的時候攔截. 我說的是 velocity中渲染到頁面之前的攔截. 答:這個我不知道. 那你談?wù)勀闫綍r做哪些工作. 答:用jsp,struts,hibernate,spring做業(yè)務(wù)邏輯. 十幾年都是做這些嗎? 答:以前沒有這些框架,就是用JSP連接數(shù)據(jù)庫. 你使用這些"東西"這么久,有對這些"東西"的原理研究過嗎?或者去讀一下它們的源碼. 答:沒有.就是一直在用. ………………………………………………………………………………………………………… 下面我實(shí)在不想問了, 因?yàn)槲业臅r間成本也很高的,浪費(fèi)不起.(當(dāng)時是在上班時間,和現(xiàn)在的休息時間閑扯不能比). 我真的為這個兄弟心酸,如果面試的是普通開發(fā),我還可以理解,你是一個有十五年經(jīng)驗(yàn)的人,十二年的JAVA工作經(jīng)歷,而且你面試的是一個架構(gòu)師.說實(shí)話當(dāng)一個5000元左右的開發(fā)人員我還不愿意要,因?yàn)橥瑯右粋€5000元的招一個沒有經(jīng)驗(yàn)的學(xué)生,但發(fā)展?jié)摿Ρ人蠖嗔?但是他的要求是20000元的架構(gòu)師職位. 我并不是說每個人都要有相同的積累和追求,象這位兄弟,如果去外包公司做應(yīng)用開發(fā),應(yīng)該是一個很不錯的有經(jīng)驗(yàn)的開發(fā)工程師。但是目前平均來說,做外包開發(fā)可能不會突破的收入。你要想改變,就要改變你努力的方向。 十多年的JAVA應(yīng)用,你就是不想了解,也會被別人硬灌給你GC原理這些知識啊.你就是捂著耳朵也會漏進(jìn)一些聲音讓你了解一些并發(fā)包的數(shù)據(jù)結(jié)構(gòu)啊. 我們在打造10億用戶的平臺,他卻連50萬用戶規(guī)模的方案不知道如何部署.不是我們不給機(jī)會,實(shí)在是兄弟你真的拿不出我們需要的積累. |
|