偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

我在美帝面試程序員二三事

開發(fā) 后端
在美帝面試工程師,是一種有趣的體驗。以前曾經(jīng)在朋友圈里發(fā)過一些體驗,這兩天,面試了兩個很有意思的工程師,其中一個勾起了我一份塵封的回憶。今天我們講講這三個人。

在美帝面試工程師,是一種有趣的體驗。以前曾經(jīng)在朋友圈里發(fā)過一些體驗,這兩天,面試了兩個很有意思的工程師,其中一個勾起了我一份塵封的回憶。今天我們講講這三個人。

[[211620]]

(一)

SH 君。我昨天面試的 SH 君。他的背景是廣告系統(tǒng) —— 他在之前的公司現(xiàn)學(xué)現(xiàn)用,用 erlang 實現(xiàn)了 RTB system。他學(xué)習(xí)能力很強,系統(tǒng)知識豐富,考慮問題周全,僅僅使用了一年多 erlang,在其之上的造詣就相當(dāng)不錯。我和他聊了進一個小時,越聊越投機 —— 一般到這個時候我會問 candidate 一些奇奇怪怪的問題,比如,你最近在讀什么書?最近發(fā)現(xiàn)了什么有意思的開源項目等等。對他,我拋出了這么個問題:如果 erlang core team 愿意在語言和 VM 層面為你實現(xiàn)幾個 feature,你希望是什么?

這個問題非常 open,既考察 candidate 對已有系統(tǒng)的理解,又考驗 candidate 知識的豐富程度。

出人意料地,他一口氣提了三個愿望:1) 更好的 refc 管理,提高內(nèi)存效率同時又不引發(fā) “leak” 2) 引入 type system,最好像 haskell 那樣嚴(yán)格區(qū)分 pure / impure function 3) 把 OTP 的核心功能,比如 application / supervision tree 做到語言級別,而非以 lib 形式提供。

對于 1) 和 2) 我不太意外。3) 很有意思,也很有想法。我讓他進一步澄清 —— 他說,他雖然沒有太多 akka 的 knowledge,但 akka 顯然在某些方面青出于藍而勝于藍。akka 下,任意一個 actor spawn 出來,都有默認的 supervisor,erlang OTP 提供了 supervision tree,可語言或者 VM 本身卻沒有把這個作為缺省行為 —— 如果我們因為上下文的需要臨時 spawn 一個 process,絕大多數(shù)情況,會額外去 monitor 它以便妥善進行 error handling,既然如此,為何不默認就 supervise 呢?

甭管這個想法對與不對,單是這份思考,就超過很多很多的程序員了。

(二)

B 君。今天面試的是 B 君。android 工程師。粗一看簡歷,B 君就讓我回想起了很久前面試的 S 君(下文會說),原因很簡單:又一枚硅谷活化石。B 君 80 年開始工作時,我還沒出生。那是是 DEC 如日中天的年代(誰都不曾料到把 IBM 逼到墻角的小型機之王,幾年后就就被 PC 的浪潮沖擊得七零八落),他在 DEC 工作,隨后換了不下十家公司,著名的有 amazon 和 twitter。如果按照正常孩子十七歲的花季上大學(xué)推算的話,他現(xiàn)在已經(jīng)年逾古稀。在國內(nèi)程序員圈子還在熱火朝天地討論程序員 35 歲后該干嘛時,他卻精神矍鑠地參與一線 android 開發(fā)。并且,他是三本 android 書籍的作者,最近一本于 16 年出版,叫 android concurrency。雖然老爺子不幸錯過了計算機近代史上幾乎所有能發(fā)家致富的機會,他依然樂樂呵呵,沒有自艾自憐。

和他面試的前一個小時,我上 amazon 翻看這本書的評論和可供預(yù)覽的章節(jié)。平心而論,書寫得并不算是優(yōu)秀,概念解釋得不夠清晰(面試時也印證了他對 concurrency 和 parallelism 沒有清楚的定義,可能我是一個對 concept 過于較真的人吧),對 android 之外 concurrency 的 big picture 也不了解(比如 actor model,CSP,STM 等)。當(dāng)然,能寫書,已經(jīng)非一般人所及,他的 android 的造詣不淺,而且在近六十歲高齡活躍在技術(shù)一線還不斷寫書,實在是我輩之楷模。(和老爺子閑聊時,他說他還會繼續(xù)出書)

(三)

S 君。和 S 君的面試已經(jīng)過去一年多,如若不是當(dāng)初寫了篇未完成的文章,保留了些許鮮活的記憶,我對 S 君的記憶僅僅停留在「他是個活化石」的階段。

這是當(dāng)時的文章:

10多年前我剛加入 Juniper 時,同事們每天中午都要一起聚餐。有一陣子,來了很多總部的華人工程師,聊起硅谷的各種軼事,一位做 Kernel 的大神同事 Yi 說起他有次在釣魚,和旁邊的老頭閑扯,一扯扯出來個以太網(wǎng)的發(fā)明者。那時我就感慨,硅谷 TM 真是個神奇的地方。

后來又陸陸續(xù)續(xù)聽到同事們不少關(guān)于偶遇硅谷活化石的故事,比如面試遇到和蓋茨喬布斯同時代的程序員等等,聽得我如癡如醉。

上周終于遇到一個和喬老爺子同時代的面試者 S君,78年印第安納大學(xué)畢業(yè)。MIPS 的早期員工,NeXT 早期員工(他是在喬老爺子被自己親兒子蘋果掃地出門,剛領(lǐng)養(yǎng)了 NeXT 這個義子后加入的),數(shù)個公司的 VP,包括 NEC(好吧,NEC現(xiàn)在已近算不得什么好公司了,不過曾經(jīng)火過)。

然后他來我們 Tubi TV 這座小廟面試!

這在國內(nèi)是無法想象的!你能想象鮑岳橋簡晶這些讓人敬仰的超級程序員前輩們跑到你的 startup 來面一個程序員的職位么?

S君住在 Atherton,硅谷著名的富人區(qū),想來是不缺錢的。整個面試過程中,有個問題好幾次我?guī)缀趺摽诙觯耗瓷先ゲ⒉蝗币环菪剿?,憑資歷(或者人脈)也可以去一些大公司領(lǐng)個閑置安度晚年好了,為何要來 Tubi TV 這樣一個處在需要事事操心的階段的創(chuàng)業(yè)公司?但顧忌到文化的差異,我強忍住了。

作為熱身,我問了他在 NeXT 的履歷,他說自己做 object-c compiler。我對 compiler 并非諳熟,不敢造次,扯了幾句后就把話題移到喬老爺子身上。S君立刻打開了話匣子,講起了各種軼事(程序君按:媽蛋我當(dāng)時為啥沒把這些軼事記錄下來),隨后他目光一暗,說老爺子自從接手 Pixar 后,精力就都投在那邊了,在 NeXT 就很少出現(xiàn)他的身影。

隨后我們聊起了 MIPS。我漸漸感受到他對技術(shù)的那份熱愛 —— 這也可以解釋他輾轉(zhuǎn)多家公司,有大大小小公司的 VP title,卻還愿意在一線做事。

他說他在加入 NeXT 之前兩年,1984年(好吧,那時候我還穿著開襠褲滿地連滾帶爬地蹣跚學(xué)步呢),加入剛剛創(chuàng)立的 MIPS,親歷了一套指令集從學(xué)術(shù)界到工業(yè)界的轉(zhuǎn)型,因此對 MIPS 飽含感情。因為在 Juniper 做過中斷處理相關(guān)的代碼,我對各種 RISC CPU,尤其是 MIPS 和 ARM 比較熟悉,于是便班門弄斧,用 branch delay 試了試他的底。他說他主要的工作是優(yōu)化 TLB,設(shè)法優(yōu)化掉 CAM(那時估計還沒有TCAM)和 DRAM 之間的 SRAM(那個年代 SRAM 無比貴),但指令流水線也是懂的。在他如同教科書般詳細介紹完 branch delay 在早期幾代 MIPS CPU 的演進后,我突然想起一個困擾我多年的問題:為何 MIPS 有 branch delay,而同為 RISC CPU 的 ARM / PowerPC 卻沒有在指令級別做這種事情。他解釋說就 RISC 而言,MIPS 是更純粹的 RISC CPU,而 ARM / PowerPC 在工業(yè)界已經(jīng)為了性能做了些改進(妥協(xié)),另外,暴露過多的流水線的邏輯給軟件工程師(注:主要是寫編譯器和 Kernel 底層代碼的工程師)會使得編譯器過于復(fù)雜(靜態(tài)的編譯難以完美預(yù)測指令動態(tài)執(zhí)行時的狀態(tài))。所以他覺得 ARM 的做法是正確的,尤其是后來 hyperthread(超線程)的出現(xiàn)印證了這一點,pipeline 的復(fù)雜已經(jīng)使這種簡單的優(yōu)化失去了意義,唯有 CPU 自己的亂序執(zhí)行才是王道。

我聽得津津有味,這個思路不就是 imperial programming(程序員告訴 CPU 做事的步驟)和 functional programming(程序員告訴 CPU 想干什么)的差別么?

既然提到了 ARM,我便順勢問他是否了解 literal pool。

可惜,文章在這里就戛然而止,后來的面試過程我已經(jīng)記不清楚,唯一能確定的一點是,他沒有來 Tubi TV。

(四)

本來有感而發(fā),火車上隨便寫寫,發(fā)篇長文字圖片了事,不經(jīng)意間寫了這么些。程序員的人生道路很長,未來還有一波又一波的浪潮,大部分人注定會錯過所有揚名立萬的機會,一輩子做一個普通的勤勤懇懇的程序員。對于這幾個面試,我其實有蠻多感悟的,但思慮再三,還是決定就此擱筆,讓大伙兒自己思考吧。

責(zé)任編輯:未麗燕 來源: 程序師
相關(guān)推薦

2012-07-18 08:22:11

梅耶爾

2015-08-19 09:10:37

程序員面試

2011-12-30 09:29:38

程序員

2013-07-17 18:00:02

程序員禁忌程序員錯誤程序員bug

2021-07-01 19:25:31

Linux 命令服務(wù)器

2013-07-24 14:17:10

2009-03-26 09:22:05

2021-02-20 13:55:35

程序員計算機技術(shù)

2012-05-11 09:13:28

程序員開發(fā)者

2015-12-24 10:28:37

程序員面試技巧

2013-11-01 17:24:39

程序員命名

2016-04-28 11:17:33

互動出版網(wǎng)

2013-04-22 09:05:11

程序員

2021-07-26 08:21:36

程序員高并發(fā)中間件

2013-08-01 10:03:41

程序員

2011-08-29 17:05:55

2013-08-07 14:19:30

禁用

2022-03-16 19:04:33

設(shè)計模式場景

2011-07-05 11:08:05

程序員

2015-03-30 15:51:29

程序員程序員面試
點贊
收藏

51CTO技術(shù)棧公眾號