激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

如何面試架構師的問(wèn)題

時(shí)間:2022-12-11 02:58:41 如何面試 我要投稿
  • 相關(guān)推薦

關(guān)于如何面試架構師的問(wèn)題

  其實(shí)本文想說(shuō)的是: 當面試一個(gè)架構師的時(shí)候, 我們應該問(wèn)什么問(wèn)題?我覺(jué)得,問(wèn)什么樣的問(wèn)題體現了 team leader 更加看重架構師的哪些特點(diǎn)。

關(guān)于如何面試架構師的問(wèn)題

  我一直認為,做技術(shù)就跟練武一樣,在練武的不同階段,分招式和心法。技術(shù)也一樣,在不同的階段,也分招式和心法。另外,就我個(gè)人而言,經(jīng)常忘記招式,一方面可以說(shuō)十二年來(lái),我用過(guò)的招式很多,到了現在也不記得幾個(gè)。另一方面我自己也不會(huì )特意去記。事實(shí)上,十二年代碼寫(xiě)下來(lái),我反而越來(lái)越不關(guān)注招式,而是越來(lái)越關(guān)注如何解決問(wèn)題,也就是心法。所以我作為 team leader 的時(shí)候,我會(huì )更加看重這個(gè)架構師候選人是不是有一套屬于自己的心法。

  上面說(shuō)的聽(tīng)著(zhù)很玄,下面我就直接回到正題:我們面試架構師候選人時(shí),應該問(wèn)什么樣的問(wèn)題?大致會(huì )有幾種類(lèi)型的問(wèn)題:

  1. 當前技術(shù)領(lǐng)域中的一些技術(shù)細節

  2. 算法和數據結構

  3. 方案設計思路

  第一類(lèi):當前技術(shù)領(lǐng)域的技術(shù)細節類(lèi)問(wèn)題

  針對第一類(lèi)問(wèn)題,我認為是很有必要問(wèn)的,架構師對技術(shù)細節的理解,是很能夠影響他做架構時(shí)的設計思路的。畢竟每一個(gè)領(lǐng)域都有不同,了解不同領(lǐng)域的差異,以及特定領(lǐng)域的技術(shù)細節,很影響架構時(shí)的設計思路和實(shí)現手段。

  然而,這并不是鼓勵大家去挖出各種細節的問(wèn)題,然后去考察架構師候選人,這里需要有一個(gè)度。舉個(gè)例子:

  你如何去把一個(gè) view 的所有 subview 清空?

  1. 如果知道 NSArray 有makeObjectsPerformSelector 這個(gè)方法的人,他們能夠說(shuō)出直接使用這個(gè)方法,然后在selector 里面寫(xiě) removeFromSuperView 的 selector,就好了,而且很省事,一句話(huà)就搞定。

  2. 如果知道 NSArray 有 enumerator 方法的人,他們會(huì )說(shuō)出使用這種方法枚舉每一個(gè) subview,在 block 里把removeFromSuperView 調用起來(lái),也差不多兩三行的事兒。

  3. 不知道 NSArray 有上面這些方法的人,他會(huì )說(shuō)用for…in… 的方法遍歷,然后取到這每一個(gè) subview,讓他們執行 removeFromSuperView?赡芤ㄙM大概四五行。

  這幾種答案誰(shuí)的更好?在我看來(lái)一樣好。為什么?

  因為這個(gè)問(wèn)題其實(shí)考察的是這個(gè)人知不知道某個(gè)方法,當然你可以說(shuō)他知道這個(gè)方法是因為他仔細看過(guò)文檔或者頭文件。但除了這個(gè)以外,這個(gè)問(wèn)題對判 斷這個(gè)人是不是一個(gè)合格的架構師沒(méi)有任何意義。架構師的任務(wù)在于使用合理的手段完成架構的任務(wù),上面三種做法都是合理的手段,只不過(guò)是實(shí)現技巧上的不同而已。

  這樣的問(wèn)題還可以拓展開(kāi)來(lái):你完全可以問(wèn)一個(gè)架構師候選人某一個(gè)領(lǐng)域的這種類(lèi)似問(wèn)題,而恰好你比他熟悉,如果候選人答不上來(lái),你會(huì )認為他可能在這方面花的時(shí)間還不夠,這方面的理解不夠深,導致減分。但如果答上來(lái)了,有可能加分有可能不加分。

  然而,這一切并沒(méi)有什么卵用。如果角色對調,讓候選人來(lái)面試你,他完全可以問(wèn)出各種這樣類(lèi)似的問(wèn)題,一樣讓你抓耳撓腮百思不得其解。那么該如何考察一個(gè)架構師候選人對自己領(lǐng)域中技術(shù)細節的理解呢?我們來(lái)看下面這些問(wèn)題:

  1. 你覺(jué)得 block 當初是為了解決什么樣的問(wèn)題而設計的?你如何區分何時(shí)使用 block,何時(shí)不使用?

  2. 你覺(jué)得 ReactiveCocoa 當初是為了解決什么樣的問(wèn)題而設計的?你何時(shí)會(huì )考慮使用 RAC,何時(shí)不用?

  3. 你覺(jué)得 MVVM 這樣的思想是為了解決什么樣的問(wèn)題而產(chǎn)生的?

  當然,答案在本文不是重點(diǎn)。 在我遇到的各種面試官中, 我從來(lái)沒(méi)遇到過(guò)能問(wèn)出這樣類(lèi)似問(wèn)題的面試官 。我面試別人的時(shí)候,我問(wèn)過(guò)這種比較側重對某一項技術(shù)的理解的問(wèn)題,有人能答好有人答不好,然后從招進(jìn)來(lái)的人看,當初答好這種問(wèn)題的人,后來(lái)都在團隊中起到了頂梁柱的作用。答不好這樣問(wèn)題的人,但是他們因為知道很多技術(shù)細節,也還是招進(jìn)來(lái)了,雖然也能很好地完成需求和任務(wù),但是代碼結構、設計思路都會(huì )有或 多或少的缺陷,寫(xiě)出來(lái)的組件在使用上也會(huì )感覺(jué)怪怪。

  所以,考察一個(gè)架構師候選人在某一領(lǐng)域的技術(shù)時(shí),通用的技術(shù)細節的問(wèn)題可以問(wèn)一下,偏門(mén)的技術(shù)細節問(wèn)出來(lái)就很沒(méi)有意義。一個(gè)架構師最關(guān)鍵的是他 對技術(shù)的理解深度,理解深刻的人,才能寫(xiě)出簡(jiǎn)單易用易拓展的架構。然后面試官需要區分好問(wèn)題,有些問(wèn)題是屬于“知道、不知道”,有些問(wèn)題是屬于“理解、不理解”,對于面試一個(gè)高級工程師來(lái)說(shuō),可能會(huì )比較偏向前者,因為他需要知道足夠多,然后完成需求的速度才快,不需要總是去 Google。但對于面試一個(gè)架構師來(lái)說(shuō),其實(shí)大部分基礎知識應該是已經(jīng)具備了的,不至于寫(xiě)個(gè) TableView 還要去翻 Google。但在做 SDK 的時(shí)候,是會(huì )遇到一些偏門(mén)問(wèn)題的,是需要去 Google 的。但架構師跟高級工程師的區別就在于,架構師知道該往哪個(gè)方向去 Google,能夠把握住問(wèn)題的實(shí)質(zhì)去解決問(wèn)題。所以對于考察架構師而言,應該更加偏向后者,理解和不理解。

  回想一下,其實(shí)有很多類(lèi)似知道、不知道的問(wèn)題,你是在 code review 中,其他人的博客中,文檔中就能學(xué)到的。但是那些理解、不理解的問(wèn)題,其實(shí)大部分都是你多年代碼的經(jīng)驗思考出來(lái)的,即便你去看了博客看了文檔,該不理解的還是不理解。而作為一名架構師,真正要考察的就是理解、不理解的問(wèn)題。所以你明白,為什么當初那些技術(shù)細節答不上來(lái)的人,但是對技術(shù)理解很深刻的人能成為頂梁柱,成為架構師。而技術(shù)細節知道很多,但技術(shù)理解不深刻的人還是只能做高級工程師的原因了吧?

  第二類(lèi):算法和數據結構類(lèi)問(wèn)題

  第二類(lèi)問(wèn)題,算法和數據結構相關(guān)的問(wèn)題。這種問(wèn)題也是很需要問(wèn)的,但似乎現在在社招的時(shí)候會(huì )問(wèn)這種問(wèn)題的面試官不太多,只有在面試比較初級的人或者應屆生的時(shí)候才會(huì )拿來(lái)問(wèn)。

  我覺(jué)得面試官即便在面試架構師的時(shí)候,還是要問(wèn)這樣的問(wèn)題的,只是要注意考察側重點(diǎn)。一個(gè)架構師如果不了解數據結構和算法,那他真的很難做出靠 譜的架構,畢竟很多 SDK 底下充斥著(zhù)各種各樣的數據結構,而且有經(jīng)驗的人都很清楚,對于一類(lèi)數據而言,不同的結構設計或表達方式,很影響最終實(shí)現的方案的優(yōu)雅程度。所以我們面試架構師時(shí),側重點(diǎn)在于,對于某個(gè)問(wèn)題,你如何去選擇合適的數據結構,合適的算法來(lái)解決這樣的問(wèn)題。

  但是,在面試應屆生時(shí),我們問(wèn)算法和數據結構問(wèn)題時(shí),其實(shí)更加關(guān)注的是他的動(dòng)手能力,給一個(gè)很簡(jiǎn)單的問(wèn)題,然后讓他把代碼寫(xiě)出來(lái),或白板,或 IDE。

  然后算法和數據結構相關(guān)的問(wèn)題第二個(gè)考察點(diǎn)在于,候選人的思考是否足夠細密。這個(gè)不管是對架構師候選人,還是對應屆生還是對社招的高級工程師而言,重要程度都是一樣的。這個(gè)就不多說(shuō)了。

  你讓一名架構師候選人在面試的時(shí)候做一個(gè)華容道算法,在你而言其實(shí)是對他的一種鄙視,在他而言他也很有可能寫(xiě)不出。但如果你讓一名架構師候選人 在面試時(shí)候展示他對各數據結構的理解,不同場(chǎng)景下如何設計合理的數據結構和算法,如何權衡時(shí)間與空間的取舍,這才是對他的一種重視。

  第三類(lèi):方案設計思路類(lèi)問(wèn)題

  第三類(lèi)問(wèn)題,方案設計思路。大概一年以前我在面試攜程的時(shí)候,遇到過(guò)面試官問(wèn)我這種問(wèn)題,其它我就沒(méi)有遇到過(guò)了,一般都是我在自我介紹的時(shí)候主動(dòng)挑一個(gè)去講。我在面試別人的時(shí)候,我也會(huì )問(wèn)這樣的問(wèn)題,比如說(shuō):

  ·對于一個(gè) app 的網(wǎng)絡(luò )層,你在設計時(shí),你會(huì )考慮哪些問(wèn)題?

  ·對于一個(gè) app 的持久層,如果讓你直接用 sqlite,你如何設計版本遷移方案?

  ·工作中,你會(huì )采用哪些手段來(lái)做解耦?

  嚴格來(lái)說(shuō),大部分面試官也會(huì )問(wèn)這樣的問(wèn)題,但是是看到你簡(jiǎn)歷上寫(xiě)過(guò)你有這個(gè)經(jīng)驗,然后直接問(wèn)這個(gè)方案你是怎么做的,而不是問(wèn)這個(gè)方案你是怎么設 計的。在我看來(lái),大部分方案的實(shí)現其實(shí)沒(méi)有什么技術(shù)含量,真正有技術(shù)含量的地方在于,拿到這個(gè)問(wèn)題時(shí),你是如何思考的。就比如數據庫版本遷移方案,設計的過(guò)程是很艱苦的,但設計完畢實(shí)現的時(shí)候,就是碼代碼,不能說(shuō)完全沒(méi)有技術(shù)含量,只能說(shuō)實(shí)現的時(shí)候所需要耗費的腦力跟設計時(shí)候比,差太遠了,在我看來(lái)屬于沒(méi) 有什么技術(shù)含量。

  說(shuō)到技術(shù)含量的事情,我也遇到過(guò)特別多的面試官喜歡問(wèn)這個(gè)問(wèn)題:過(guò)去你解決了哪些比較有技術(shù)含量的問(wèn)題?我一般不會(huì )拿這個(gè)問(wèn)題去問(wèn)候選人,因為 我覺(jué)得真的到了代碼層面,是基本上不存在技術(shù)含量的概念的,碼代碼這個(gè)工作本身,就是用計算機能懂的方式告訴計算機應該怎么做事,其實(shí)就是一件很沒(méi)技術(shù)含量的事情。

  所以我認為的技術(shù)含量是,你如何去設計一個(gè)靠譜的解決方案,這個(gè)解決方案足夠周密,思考足夠長(cháng)遠,提供的API 很好看,代碼很容易閱讀,很好維護。

  還有就是逃不掉的 23 種設計模式。設計模式這種東西早年被業(yè)界說(shuō)了很多,都說(shuō)爛了,但我不否認的是,這種對設計方法的總結,是每個(gè)架構師的起步和入門(mén)。如果一個(gè)架構師連什么場(chǎng)合使用設么設計模式都分不清楚,各種設計模式他的設計初衷和希望解決的問(wèn)題都不知道,那他算是不合格的架構師。然而面試官也很少會(huì )去問(wèn)這樣的問(wèn)題,一方面 可能覺(jué)得問(wèn)這種問(wèn)題很 low,另一方面其實(shí)也有少部分面試官對設計模式僅僅處在了解和知道的情況,不敢隨便拿出來(lái)問(wèn)。

  總結

  面試架構師其實(shí)是一件不容易的事情,能考察架構師候選人實(shí)力的面試官,首先自己就已經(jīng)對架構本身有了很好的理解,就應該是一個(gè)合格的架構師,其次是需要足夠務(wù)實(shí),有合理的手段合理的問(wèn)題,通過(guò)面試來(lái)了解候選人是不是一個(gè)適合做架構師的人。最后,要有足夠識人的眼光以及合適的判斷標準,通過(guò)候選人的回答,對候選人進(jìn)行篩選。從我對目前面試的情況來(lái)看,對這個(gè)我持悲觀(guān)態(tài)度。大部分面試官給候選人的感覺(jué)更多的是:我問(wèn)你一個(gè)這個(gè)問(wèn)題,看你知不知道?而不是:我問(wèn)你一個(gè)這個(gè)問(wèn)題,看你怎么去思考?

  所以各家公司如果要想找到合理靠譜的架構師,還是很不容易的。

【如何面試架構師的問(wèn)題】相關(guān)文章:

如何回答面試問(wèn)題11-03

什么是系統架構師-如何成為系統架構師05-11

面試如何回答跳槽頻繁的問(wèn)題12-02

如何面對面試的問(wèn)題03-17

如何回答英語(yǔ)面試問(wèn)題08-08

如何回答社團面試問(wèn)題09-22

面試官如何提問(wèn)題06-15

面試必讀:如何應對棘手面試問(wèn)題07-31

面試如何回答對職務(wù)的期許問(wèn)題02-17

面試時(shí)如何回答問(wèn)題03-21

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频