? ? ? ?之前參與了一次BAT中A的面試, 前前后后倒騰了差不多一個月,因為在異地參與了1次電話,3次視頻,總共面了5輪, 因為在異地,A又在我的老家。想回家的我,滿心歡喜的我已經(jīng)開始準(zhǔn)備打包回家了。沒想到掛在了倒數(shù)第二輪的總監(jiān)面上,艸艸艸, 你是在逗我嗎? 心里有點憤憤不平, 所以有了這篇記錄。后面我會詳細(xì)說明是怎么掛了。
? ? ? ?先聽我絮叨絮叨, 本人在IT行業(yè),摸爬滾打已經(jīng)歷經(jīng)了十一年。前前后后也是呆過不少公司。BAT 也經(jīng)歷了兩家。我屬于不太善于講故事的人 , 每每到了啥面試,晉升答辯的時候都挺吃虧的。世界往往是這么奇妙,同樣一樣事情通過兩種人說出來, 可能是截然不同的效果。
? ? ? 常見的問題:
? ? ? > 你這個東西技術(shù)難點在哪里啊
? ? ? > 你覺得你做過最難的事情是啥
? ? ? > 有啥讓你印象深刻的事情
? ? ? ? what fuck。。。等等這個東西也做了,技術(shù)也已經(jīng)了然于胸了,還難嗎。。。好吧, 面試過程往往短短30分支到1個小時, 面試官想通過這樣的問題,來讓他自己相信招你進(jìn)來不是個禍害。。。所以準(zhǔn)備去面試的同學(xué),要常問自己這幾個問題。
? ? ? ? 面試過程一般都很短,你跟面試官又沒有過交集, 要憑這些分辨出一個人的水平其實是挺不容易的事情。在BAT中高手如云,有的一手漂亮簡歷的人到處都是。但是面的好,就真的水平很高嗎? ? ? ? ?
有幾個工作中印象比較深的事情
? ? ? ?> 在A的時候, 有一次一個部門組長很自豪(想象一下他傲嬌的表情, 他現(xiàn)在已經(jīng)是A里面一個很大事業(yè)部的老總了)向我們說明了他部門的業(yè)績。將xxx的性能翻了幾翻,然后他講了里面的優(yōu)化點,居然是因為把數(shù)據(jù)進(jìn)行了壓縮......what fuck.....今時今日這個不是常識嗎
? ? ? > 還有一次, 我們在進(jìn)行一次后端的分享, 由一個很高級別的后端同學(xué)講其中的架構(gòu)和實現(xiàn)。該同學(xué)講的眉飛色舞的時候, 因為其中有幾個組件要交互數(shù)據(jù), 有個看過其中代碼的同學(xué)問了個問題。為啥這兩個進(jìn)程在讀寫共享數(shù)據(jù)的時候沒看到有任何的進(jìn)程同步保護(hù)。演講的同學(xué)又說了讓人掉眼鏡的話,沒必要加, 我們在測試中沒發(fā)現(xiàn)任何問題。不用加保護(hù)。。。那就只能呵呵了。
? ? ? ? 因為我不是很擅長和人打交道(搞技術(shù)的好像很多都有這個毛?。昙o(jì)又大了,記憶力逐年衰退。 以前總結(jié)出了一些面試的方法,但是自己也忘記用了。
? ? ? ? > 正式開始面試想要去的公司之前, 先面三五個其他公司, 在面試過程中你能發(fā)現(xiàn)出你的簡歷里面的各種問題,以及面試中暴露出來的問題
? ? ? ?> fixed掉發(fā)現(xiàn)的問題
? ? ? ?> 再去投心儀的公司。這樣機(jī)率會高一些
? ? ?(總的來說就是不打無準(zhǔn)備之仗)
? ? ? ?好吧,我們言歸正傳, 來談?wù)勥@次失敗的面經(jīng),講講最后那致命的總監(jiān)面。在十幾年IT經(jīng)驗里面,我大概搞了有5年的瀏覽器研發(fā),雖然這次投的不是瀏覽器的崗位,但是產(chǎn)品底層基于瀏覽器技術(shù),所以說還算對口。
? ? ? 在這5年里面我也是為了項目嘔心嚦血, 雖然進(jìn)B時承諾讓我專注的搞內(nèi)核,但是進(jìn)來了就是兩回事,為了項目一直在整瀏覽器業(yè)務(wù)層的特性,但是瀏覽器的代碼我也是看的不少,內(nèi)核也算是略懂。整體來說花費了大量的精力在里面。因為這次失敗,我也打算后面專門寫一個專題來介紹,瀏覽器怎么玩。 算是對自己的一點沉淀吧。
? ? ? 可能我們國人有個特點就是看不起那些做業(yè)務(wù)的, 而更看中某些搞核心的。so大家一想起瀏覽器,就問你搞的是哪塊業(yè)務(wù),搞不搞內(nèi)核(webkit,V8什么的)。什么整shell層,臉色就不好看了。(讓我想起來在A的時候, 我們當(dāng)時接一個安全組的模塊,里面的人都是精英啊精英。但是接入那個模塊就是各種的問題,當(dāng)時有人還拿了代碼來看,誒。。。亂七八糟啊,健壯性有很大的問題,雖然里面的人技術(shù)很精專,但是做起產(chǎn)品來,唉)
? ? ? 總監(jiān)面的時候,他問了我如下幾個問題:
? ? ? > 你覺得chrome好在哪里
? ? ? > 如何超越chrome,怎么做 (總監(jiān)站的高度就是高啊)
? ? ? > chrome是開源的, 為何ie 還會被chrome超越
? ? ? 問到第二個問題的時候, 我當(dāng)時就有點懵了,雖然長期搞過瀏覽器,但是一直只是想站在chromium的肩膀之上,搞出更好的產(chǎn)品,用戶體驗啥的。這個問題還真沒想過。為了不體現(xiàn)自己弱勢就瞎雞巴亂答了,然后就悲劇了。
? ? ? ?其實事后冷靜想想這些問題, 也不是不好答, 就算這個問題你可能答不了,但是也是能分析一下的,分析的這個過程是比較重要的。主要也是讓面試官看到你有這個分析能力,有些東西可能要長時間思考才能想明白。其次那個總監(jiān)也不懂技術(shù), 吹大一點,其實也什么。。。技術(shù)男的悲劇啊
我們就先簡單分析分析為啥ie會被chrome超越:
1. 改革
? ? ? ie作為一款先存在的瀏覽器, 隨著it業(yè)的不斷發(fā)展,其實自身是有很多問題和局限性,但是ie一直走老路子,沒有從根本上改進(jìn)它。chrome也是分析了目前瀏覽器存在的問題( 比如ie一崩潰就整個程序沒有了, 網(wǎng)頁的安全性問題 , js性能慢)進(jìn)行了改革(也是我們常說的創(chuàng)新,微創(chuàng)新),由此chrome 08年出道的時候,自帶其他所有瀏覽器沒有的特性(多進(jìn)程 , 沙盒, v8), 也是重新攪了瀏覽器的市場。
2. 持久力
? ? ? 當(dāng)時chrome 08年剛出的時候,其實實現(xiàn)的還是有各種問題, 記得我第一次用的時候,chrome各種崩潰,卡死。然后我還嘲笑它,什么鬼東西。然后就把它卸載了。 等10年再用的時候,chrome的產(chǎn)品體驗已經(jīng)做好很高了。果斷拋棄了原來的舊愛(人就是這么見異思遷)
? ? ?從代碼層面上來看, google 對chrome的投入很大, 我11年的時候曾經(jīng)統(tǒng)計過當(dāng)時chrome的研發(fā)人數(shù),從svn日志上統(tǒng)計(帶谷歌官方后綴的,一個月里面累計提交代碼測試超過一定數(shù)量的)大概有3,4百人。相對于國內(nèi)廠商的幾十號人的團(tuán)隊。規(guī)模不是一個級別。
? ? ? 其他也是我認(rèn)為比較可怕的地方,老外一直在重構(gòu),改進(jìn)整個項目的代碼。整個代碼,大概過幾個版本,雖然總體原理是那樣,但是整個代碼可謂是翻天覆地。曾經(jīng)我們有個同事想優(yōu)化我們的瀏覽器性能,思來想去不得,然后去翻了一翻最近chromium的svn日志。。。跟蹤了chromium里面有個優(yōu)化人員的記錄。。。最后有了,重大突破,妥妥的升級加薪
? ? ? ?我們還停留在,不用修改的代碼是最好的代碼。。。能少改代碼就少改代碼的階段。印象比較深的是有一次,跟蹤一個匪夷所思的線上崩潰問題,那塊代碼前前后后的邏輯翻了個遍,覺得實在不可能崩潰,QA也無法復(fù)現(xiàn)這個問題。 然后就加日志,放到線上去收集,再跟蹤,前后跟了一周多。領(lǐng)導(dǎo)下了死命令,改完才能回家的情況下,半夜4點還是5點,找到原因了。因為對那塊已經(jīng)很熟了, 我整了一個修改方案,可以徹底搞定其中的問題。然后領(lǐng)導(dǎo)過來一看, 艸,改了這么多,我跟他講了詳細(xì)的方案,他還是覺得不行風(fēng)險太大,問了我其他解決辦法沒有。 我想了下,最后加了一行判斷代碼了事,雖然問題是沒了,但是只是避過了而已。
? ? ? ?所以雖然我們可以拿到它的源碼,但是當(dāng)你搞懂了其中的原理,人家已經(jīng)進(jìn)入了下個階段了??罩酗h來了那句話“實話說,在座的各位都是垃圾“
3. 升級
? ? ? ie 產(chǎn)品升級很麻煩,想裝個新版,這失敗那失敗的。一會要裝.net庫,一會受系統(tǒng)版本限制。所以一般很少會去做升級。不是有個說法自從360自帶ie8內(nèi)核,終于把中國的ie6給消滅掉了(FE同學(xué)流下了感動的淚水)
? ? ? 或者換句話說,軟件更新升級一直是各個產(chǎn)品很頭大的一樣事情,常見做法是彈個框告訴用戶,產(chǎn)品升級啦,需要安裝新版本啦,讓用戶自己去選。而chrome是怎么做的呢, 后臺自動升級, 用戶不需要進(jìn)行任何操作, 就可以實時的保持最新版本。這個雖然不起眼,但是很了不起的。他也因為這個特性,重新設(shè)計了自己的安裝目錄(但是就算是今天,也很少有產(chǎn)品,能做到它這樣)
一個產(chǎn)品要是停止維護(hù)了,不更新了,即使現(xiàn)在產(chǎn)品再好,也遲早完蛋。
? ? ? 好吧就簡單說到這里, 再說下超越的話題, 超越其實也不是無法做到,單從某些方面來說我們的有些特性是超過chrome的。但是國內(nèi)的廠商們,基本上都很心浮氣躁,動不動就想著賺錢。也不肯放大人力來投入,基本上是一群剛?cè)胄械膒m,領(lǐng)著一群rd,qa每天瞎忙活,最后看不到效果,上面領(lǐng)導(dǎo)一看,砍了吧??催^一篇chrome開發(fā)人員的采訪,里面說了谷歌從打算做chrome,到真的產(chǎn)品上線花了5年時間,chrome部門也是匯集了各種瀏覽器的專家和行業(yè)精英。。。就這個時間試問在國內(nèi)哪個公司受的了。
還是分析一下超越:
1. 我也不知道咋全面超越chrome, 單就他現(xiàn)在處于領(lǐng)跑者的地位,實際的標(biāo)準(zhǔn)制定實施者,超越。。。
2. 但就分析而言,首先超越的話, 你要分析出這個東西現(xiàn)有的短板在哪里,然后再針對其考慮解決方案,未來的發(fā)展趨勢。 然后對目前現(xiàn)有的方案,要有個全面的了解,不然做出個東西解決了前面,屁股著火就不好了。
? ? ? 比如說就下載而言, chrome就是單線程的, 下載文件他只會線性的去下載。所以只要把下載整成并發(fā)的,再做個云加速或者p2p加速啥的,就下載功能而言是大大超越了chrome. 再比如網(wǎng)頁加載,受網(wǎng)絡(luò)環(huán)境的印象,我們單就加一個CDN, 整體的速度也能提高很多。
? ? ?就寫到這里吧。也是發(fā)發(fā)牢騷,今天外面天氣也不錯,出去爬個山,散散面試郁悶的心情。