自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

充滿荊棘的專家程序員之道

原創(chuàng)
開發(fā) 項(xiàng)目管理
對(duì)剛?cè)腴T的程序員進(jìn)行培訓(xùn)的目的是希望他們能夠更加專業(yè),但事實(shí)上,成為專家級(jí)程序員必須要犯過(guò)足夠多的錯(cuò)誤,這是一個(gè)不可避免的成本。本文論述了這個(gè)觀點(diǎn),希望更多項(xiàng)目管理能夠理解新手程序員難以被培訓(xùn)成專家的原因。

【51CTO精選譯文】國(guó)外程序員常常遇到這樣一種困惑,即他們的老板認(rèn)為資深的程序員是可以通過(guò)培訓(xùn)菜鳥程序員來(lái)生產(chǎn)的。老板把菜鳥程序員扔給資深的程序員,或者扔到一個(gè)短期培訓(xùn)班中,希望能夠像鍍一層金一樣的生產(chǎn)出一個(gè)又一個(gè)編程高手。然而這其實(shí)是很不現(xiàn)實(shí)的,本文作者在自己的這篇博文中類比闡述了這個(gè)觀點(diǎn)——

#t#在過(guò)去的幾個(gè)星期里,我作為父親一直在教自己年輕的孩子開車。對(duì)于新手司機(jī)來(lái)說(shuō),學(xué)習(xí)控制汽車的整個(gè)過(guò)程(把握方向盤、使用各種踏板、換擋、看后視鏡,等等)是比較傷腦筋的。但是所有這些都是相對(duì)簡(jiǎn)單的事情,大部分年輕駕駛員都能掌握,不會(huì)有太大的問(wèn)題。

新手司機(jī)在經(jīng)過(guò)一段時(shí)間的鍛煉之后,當(dāng)他們跟其他的司機(jī)一樣外出上路時(shí),真正難受的經(jīng)歷才開始。這時(shí)才是真正學(xué)習(xí)開車的時(shí)刻,因?yàn)閮H僅能控制汽車并不能夠成為好司機(jī),雖然這是重要的前提條件。相反,能夠預(yù)料和避免一些意外的情況才能成為一個(gè)好司機(jī)。不幸的是,你不可能教給他這些技巧。

你可以告訴他們一些潛在的問(wèn)題。你可以描述這些問(wèn)題,并告訴他們?cè)谀切┣闆r下應(yīng)該怎樣做。你甚至可以進(jìn)行一些實(shí)地演習(xí)。但是,每個(gè)新手必須親自經(jīng)歷過(guò)很多普通的駕駛危險(xiǎn)之后(而且要幸存下來(lái))才能預(yù)料類似的情況,然后采取措施避免這些問(wèn)題。

遺憾的是,優(yōu)秀程序員的成長(zhǎng)也需要經(jīng)歷一個(gè)這樣的過(guò)程。咱們來(lái)看一下開發(fā)一個(gè)應(yīng)用程序,功能是在一個(gè)文件中存儲(chǔ)一些數(shù)據(jù),每次用戶啟動(dòng)這個(gè)應(yīng)用程序的時(shí)候都調(diào)用這些數(shù)據(jù)。

◆新手程序員(已經(jīng)學(xué)過(guò)在文件中讀取和寫入數(shù)據(jù)的語(yǔ)法)面對(duì)這個(gè)問(wèn)題只會(huì)簡(jiǎn)單的寫幾行能夠讀取和存儲(chǔ)數(shù)據(jù)的代碼。

◆如果他們已經(jīng)有過(guò)一段時(shí)間的編程經(jīng)歷,他們可能會(huì)寫一個(gè)測(cè)試程序來(lái)確保代碼讀取和寫入的數(shù)據(jù)是正確的。因?yàn)樗鶎懙拇a工作了,初學(xué)者就認(rèn)為可以了,他們會(huì)認(rèn)為已經(jīng)自己完成了任務(wù),也符合規(guī)格,并且還對(duì)他們的工作進(jìn)行了測(cè)試。

◆一個(gè)專家級(jí)的程序員,當(dāng)面臨同樣的情況的時(shí)候,他知道這不是一件簡(jiǎn)單的事情。當(dāng)然,寫幾句在文件中讀取或者存儲(chǔ)數(shù)據(jù)的代碼非常簡(jiǎn)單——這只是當(dāng)一切都順利的時(shí)候。但是如果要讓應(yīng)用程序能夠處理所有可能出錯(cuò)的情況,這就不是那么簡(jiǎn)單了,就算是這種簡(jiǎn)單的操作也一樣。因?yàn)?,文件可能不存在,硬盤可能滿了,文件可能損壞了,用戶可能沒(méi)有權(quán)限去讀取文件,這個(gè)文件可能正在被使用。如果文件不在本地磁盤,程序可能都接觸不到這個(gè)文件。

當(dāng)然,不是所有這些問(wèn)題都會(huì)同時(shí)發(fā)生在某個(gè)特定的時(shí)刻,但是那些已經(jīng)把應(yīng)用程序交付給很多用戶的開發(fā)人員都知道,經(jīng)過(guò)足夠長(zhǎng)的時(shí)候,所有的這些問(wèn)題都會(huì)發(fā)生,這是遲早的事。

一個(gè)專家可以告訴初學(xué)者去檢查這些可能出現(xiàn)的情況,那么對(duì)于這些特定的問(wèn)題,不是專家的開發(fā)人員只能對(duì)其進(jìn)行編碼,而只有專家才能預(yù)料并避免他們。就像開車一樣,一個(gè)好的程序員不僅要能夠解決已經(jīng)發(fā)生的問(wèn)題,而且還應(yīng)該能夠預(yù)料一些沒(méi)有發(fā)生過(guò)的問(wèn)題。不幸的是,專家是靠犯錯(cuò)誤才學(xué)到這些本領(lǐng)的,這對(duì)于人類來(lái)說(shuō)是件傷心的事情。每一代想要成為專家的人只有在經(jīng)歷過(guò)上一代人所犯的所有錯(cuò)誤之后才能成為專家。Neils Bohr解釋說(shuō),“專家就是在一個(gè)非常窄的領(lǐng)域內(nèi)犯過(guò)所有可能的錯(cuò)誤的人?!?/P>

但是當(dāng)你跟一個(gè)新手駕駛員坐在同一輛汽車上的時(shí)候,你可能就會(huì)更加欣賞P. J. Plauger的這個(gè)版本了,“我對(duì)任何領(lǐng)域中專家的定義是一個(gè)對(duì)什么是真正可怕的事情知道得足夠多的人?!?/P>

原文:You Can't Teach Expertise 作者:Russell Jones

責(zé)任編輯:yangsai 來(lái)源: 51CTO.com
相關(guān)推薦

2012-07-05 09:37:04

Java程序員

2015-08-21 10:07:54

程序員充滿壓力

2011-05-10 09:29:30

代碼重寫

2009-07-10 11:27:00

專家級(jí)程序員

2015-04-08 11:09:28

優(yōu)秀程序員深入理解你的代碼

2009-09-27 09:39:19

2013-08-20 09:33:59

程序員

2018-04-03 17:08:08

程序員技能面試

2011-05-13 14:34:02

程序員

2013-06-05 10:28:31

大數(shù)據(jù)專家IT程序員大數(shù)據(jù)

2015-03-19 14:56:08

程序員專專家級(jí)的程序員

2017-11-14 21:30:15

2012-11-22 14:00:26

程序員

2011-07-27 09:52:38

軟件項(xiàng)目

2012-03-06 09:22:46

程序員

2018-05-26 22:58:35

程序員職業(yè)危機(jī)

2013-04-15 10:55:09

程序員

2012-11-08 09:49:30

C++Java程序員

2021-10-22 15:31:29

工具代碼開發(fā)

2009-12-14 09:29:00

程序員
點(diǎn)贊
收藏

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