色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

我是工程師,不是編譯器

  英文原文:I’m an Engineer, Not a Compiler 

  原文作者:dclements,發(fā)布于 2009-2-23

  最近我接到一個(gè)面試電話(huà),被問(wèn)了許多 Java 的問(wèn)題。這樣的面試很平常,大部分的問(wèn)題也都是標(biāo)準(zhǔn)問(wèn)題:

  ● 什么是多態(tài)?

  ● List 和 Set 有什么區(qū)別?你什么時(shí)候用 List,什么時(shí)候用 Set?

  ● 什么情況下你會(huì)遇見(jiàn)死鎖?

  ● 強(qiáng)類(lèi)型和弱類(lèi)型有什么區(qū)別?

  這些算是很合理的問(wèn)題。我不喜歡那個(gè)多態(tài)的問(wèn)題,因?yàn)樗痛蟛糠值拿嫦驅(qū)ο笳Z(yǔ)言以及繼承緊密相關(guān),而當(dāng)我們覆蓋和重載一個(gè)方法時(shí),我們是不會(huì)意識(shí)到“哦!這實(shí)際上是一個(gè)多態(tài)!”而我會(huì)想“什么是繼承,我什么時(shí)候應(yīng)該用繼承”,而這才是面向?qū)ο笳Z(yǔ)言的關(guān)鍵。但是這是我個(gè)人的觀點(diǎn),可能會(huì)有其他不同觀點(diǎn)。

  強(qiáng)類(lèi)型和弱類(lèi)型的那一題有點(diǎn)不尋常,因?yàn)樗麑?shí)際上指的是類(lèi)型檢查而不是類(lèi)型強(qiáng)度。當(dāng)我說(shuō)C是一種弱靜態(tài),Java 是強(qiáng)靜態(tài),Python 是強(qiáng)動(dòng)態(tài)時(shí),他有點(diǎn)迷糊(我認(rèn)為 JavaScript 是弱動(dòng)態(tài),但我并沒(méi)有說(shuō)出來(lái))。

  接下來(lái)的是一些細(xì)枝末節(jié)的問(wèn)題:

  ● List 在哪個(gè)包中?

  ● File 在哪個(gè)包中?

  ● 你要繼承的時(shí)候用什么關(guān)鍵字?

  (我們也會(huì)經(jīng)常遇見(jiàn)一些標(biāo)準(zhǔn)問(wèn)題“你 5 年內(nèi)想成為什么樣的人?”等等)

  Russ Olsen 提到了問(wèn)細(xì)枝末節(jié)問(wèn)題的結(jié)果

除了不能告訴你許多信息以外,問(wèn)細(xì)枝末節(jié)的問(wèn)題會(huì)付出兩種代價(jià):首先會(huì)占用你真正可以用來(lái)了解一個(gè)人的時(shí)間,你可以利用這些時(shí)間來(lái)了解這個(gè)人是否足夠聰明,是否有合適的背景,是否適合你的團(tuán)隊(duì)。其次,這種類(lèi)型的問(wèn)題有可能會(huì)剔除掉那些真正聰明的,你真正想雇傭的人呢。

  我現(xiàn)在列出這些細(xì)枝末節(jié)的問(wèn)題,我認(rèn)為還會(huì)引發(fā)一個(gè)結(jié)果:?jiǎn)栠@樣的問(wèn)題剔除掉那些真正合適的人之外,剩下的人將會(huì)錯(cuò)誤的人選。

  一個(gè)好的工程師在設(shè)計(jì)和創(chuàng)造系統(tǒng)的時(shí)候是抽象性的思維的,他們會(huì)想象算法,組件,工程性的設(shè)計(jì)。他們不需要知道語(yǔ)言的所有細(xì)節(jié),尤其是當(dāng)他們使用 IDE 時(shí),IDE 可以幫他們完成(我使用 Eclipse:我輸入 List,然后輸入 control + 空格,IDE 會(huì)自動(dòng)幫我載入 Java.util.List)。我能分辨出我需要哪個(gè)包,這比我能記住它們的名字更重要。

  類(lèi)似的,更重要的是我能告訴你什么時(shí)候我應(yīng)該使用繼承,什么時(shí)候應(yīng)該使用多態(tài),而不是僅僅記住概念。

  總體而言:用 Google 5 秒鐘可以找到答案的問(wèn)題不是好問(wèn)題。我最喜歡的電話(huà)面試問(wèn)題是“你最喜歡的語(yǔ)言是哪一種?”然后接著是“它的弱點(diǎn)是什么?”

  然而很多面試和考試測(cè)試的都是為了看你能否很好的取代編譯器而設(shè)置的。甚至 Java 認(rèn)證考試都只關(guān)注在語(yǔ)言的語(yǔ)法和編譯上的問(wèn)題,而不是測(cè)試實(shí)際編程的能力和實(shí)際設(shè)計(jì)系統(tǒng)個(gè)能力。

  我是一個(gè)優(yōu)秀的軟件工程師,我不是一個(gè)優(yōu)秀的編譯器。我不能看了一段代碼后就告訴你它有問(wèn)題,它不會(huì)獲取 ClassNotFoundException,現(xiàn)代的編譯器會(huì)告訴我問(wèn)題的所在。即使不是馬上知道,但當(dāng)我編譯的時(shí)候我會(huì)知道。這么說(shuō)我就過(guò)于依賴(lài) IDE?也許吧,但這不是什么壞事,因?yàn)樵谵k公室里我們還是要用到這些工具。

  一句話(huà):找一個(gè)合適團(tuán)隊(duì)的人選時(shí),不要糾結(jié)于細(xì)枝末節(jié)的問(wèn)題。

it知識(shí)庫(kù)我是工程師,不是編譯器,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 长治市| 响水县| 右玉县| 丹阳市| 肇庆市| SHOW| 怀宁县| 清水河县| 洞口县| 咸丰县| 呼和浩特市| 邮箱| 淳安县| 雅江县| 兴宁市| 康定县| 宁晋县| 淅川县| 开封县| 芜湖市| 莱州市| 临安市| 双城市| 长治市| 故城县| 保定市| 特克斯县| 乌拉特前旗| 孙吴县| 鄯善县| 伊宁县| 赫章县| 三亚市| 东光县| 澄城县| 金溪县| 连云港市| 东兰县| 临夏市| 桑日县| 静海县|