作為一名java程序員,求職面試時(shí),時(shí)常會(huì)遇到一些開(kāi)放性題目。 張工是一名java程序員,最近到某知名互聯(lián)網(wǎng)公司面試,面試官就提了這樣一個(gè)問(wèn)題:
張工被面試官這么一問(wèn),有點(diǎn)不知所措。 其實(shí)面試官問(wèn)這個(gè)問(wèn)題無(wú)非就是考察兩點(diǎn):
面試時(shí),遇到類(lèi)似這樣的開(kāi)放性題目,相信不少人會(huì)有點(diǎn)懵,因?yàn)槠綍r(shí)就沒(méi)有思考過(guò)類(lèi)似的問(wèn)題,突然來(lái)這么一問(wèn),有點(diǎn)出乎意料。 類(lèi)似的問(wèn)題,比如,如果讓你來(lái)設(shè)計(jì)一個(gè)圖片加載框架你會(huì)怎么做? 我在面試一位Android求職者時(shí),問(wèn)了這樣一個(gè)問(wèn)題:
其實(shí)我的初衷是想知他有沒(méi)有用glide和其他的框架做一下對(duì)比。我總覺(jué)得選擇總得有理由,有自己的思考,而不是別人怎樣就怎樣,總跟著別人的節(jié)奏走。 無(wú)論是工作還是學(xué)習(xí),我們?cè)谄綍r(shí)使用一些框架時(shí),盡量要有自己的思考。譬如消息中間件有RabbitMQ、Kafka、ActiveMQ。當(dāng)我們選擇Kafka作為我們項(xiàng)目的消息隊(duì)列處理,應(yīng)該有選擇的理由。 回答這類(lèi)問(wèn)題,不求你深入研究過(guò)其源碼,但起碼我們要知道個(gè)大概,知道其基本原理、核心組成部分、基本架構(gòu)構(gòu)成,然后參照一些開(kāi)源的框架把一個(gè)系統(tǒng)設(shè)計(jì)出來(lái)的思路簡(jiǎn)單闡述下就好。 比如說(shuō)這個(gè)消息隊(duì)列系統(tǒng),我們從以下這個(gè)角度來(lái)考慮一下: 我們知道,Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),其高吞吐量非常驚人,驚人到什么程度,即使是非常普通的硬件Kafka也可以支持每秒數(shù)百萬(wàn)的消息。 我們可以參照一下 kafka 的設(shè)計(jì)理念,broker -> topic -> partition,每個(gè) partition 放一個(gè)機(jī)器,就存一部分?jǐn)?shù)據(jù)。 要是遇到資源不夠了,那也不要緊,給 topic 增加 partition,然后做數(shù)據(jù)遷移,增加機(jī)器,不就可以存放更多數(shù)據(jù),這樣就可以提供更高的吞吐量了。 其次還得需要考慮一下這個(gè) mq 的數(shù)據(jù)如何落地磁盤(pán),不落磁盤(pán),數(shù)據(jù)丟了,去哪里找。 那落磁盤(pán)的時(shí)候怎么落?沿著這樣的思路去思考,就能大致說(shuō)出個(gè)所以然來(lái)。 消息隊(duì)列這玩意是相當(dāng)復(fù)雜的,面試官提問(wèn)這樣的問(wèn)題,更多是想了解求職者在平時(shí)使用中有沒(méi)有自己的思考,還是只是為了用而用。 總結(jié): 求職面試時(shí),如果不是面架構(gòu)或技術(shù)專(zhuān)家之類(lèi)的,建議不要出現(xiàn)精通等字樣,使用過(guò)但不經(jīng)常用建議寫(xiě)了解,經(jīng)常使用但沒(méi)有深入了解的寫(xiě)熟練就好了。 以上五點(diǎn)純粹是個(gè)人經(jīng)驗(yàn)看法。由于筆者水平有限,文中紕漏之處在所難免,權(quán)當(dāng)拋磚引玉,不妥之處,請(qǐng)大家批評(píng)指正。 作者:洪生鵬 技術(shù)交流、媒體合作、品牌宣傳請(qǐng)加作者微信: hsp-88ios |
|
來(lái)自: 愛(ài)開(kāi)發(fā) > 《待分類(lèi)》