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

成為一個(gè)程序員要花多長(zhǎng)時(shí)間——理解專業(yè)程序員

企業(yè)動(dòng)態(tài)
編程是另一個(gè)不缺乏專家的領(lǐng)域。按照標(biāo)準(zhǔn)看法,6個(gè)星期的“培訓(xùn)”就足以把一個(gè)人提升到“專家”層次,該人不必再學(xué)習(xí)任何新的知識(shí),即具有設(shè)計(jì)在線生命救援系統(tǒng)的資格。

對(duì)于有些事情,似乎每個(gè)人都是專家。教學(xué)就是一個(gè)好例子。任何人,只要智商超過(guò)80,又懂得一點(diǎn)兒什么東西,似乎都可以當(dāng)老師。至少美國(guó)的教育體系就是建立在上面這個(gè)理論上的。在美國(guó),但凡你敢對(duì)一個(gè)教授說(shuō),他的課堂教學(xué)還有可改進(jìn)的地方,那他就會(huì)感到羞辱、惱怒,還很可能采取法律行動(dòng)。

還是在美國(guó),每個(gè)人都是當(dāng)招待的專家。在歐洲,一個(gè)侍者可能要經(jīng)過(guò)10年,甚至20年的訓(xùn)練,才能獲準(zhǔn)在一個(gè)一流飯館服務(wù)。在美國(guó),只要按照廣告應(yīng)征,在小臂上搭一條毛巾,那就是侍者了。

編程是另一個(gè)不缺乏專家的領(lǐng)域。按照標(biāo)準(zhǔn)看法,6個(gè)星期的“培訓(xùn)”就足以把一個(gè)人提升到“專家”層次,該人不必再學(xué)習(xí)任何新的知識(shí),即具有設(shè)計(jì)在線生命救援系統(tǒng)的資格。如果你看到一條廣告招收“有經(jīng)驗(yàn)的”程序員,那意思往往就是一年或者兩年經(jīng)驗(yàn)。實(shí)際上,如果誰(shuí)有15年的編程經(jīng)驗(yàn),人們倒會(huì)覺(jué)得這人簡(jiǎn)直是個(gè)智障。如果他真有一點(diǎn)點(diǎn)智力的話,那總應(yīng)該在14年前就學(xué)會(huì)了全部編程知識(shí)。在此之后,他就早該做膩了這一行,去換個(gè)管理呀,銷售呀之類的職位了。

先別忙著嘲笑持這種觀點(diǎn)的人,首先我們還是應(yīng)該承認(rèn),15年的經(jīng)驗(yàn),就其自身而言,在編程方面不一定就能教會(huì)你任何東西。我認(rèn)識(shí)一些有“15年經(jīng)驗(yàn)”的美國(guó)侍者,甚至不知道餐前如何在餐桌上放盤子。我也知道一些有“15年經(jīng)驗(yàn)”的美國(guó)大學(xué)教授,甚至教不會(huì)小狗搖尾巴。同樣,我也認(rèn)識(shí)一些有“15年經(jīng)驗(yàn)”的美國(guó)程序員,他們?nèi)匀粫?huì)在一個(gè)多程序訪問(wèn)的系統(tǒng)中,在更新直接存取主文件(master file)之前,就給事務(wù)文件(transaction file)排序。

理解專業(yè)程序員第1章對(duì)專業(yè)人士來(lái)說(shuō),有哪些重要問(wèn)題如果說(shuō)這個(gè)例子還太難懂,那我就來(lái)列舉幾個(gè)前兩天讀“有經(jīng)驗(yàn)的”程序員寫的代碼時(shí)發(fā)現(xiàn)的問(wèn)題:

1. 在做整數(shù)除法時(shí),有些人不懂“余數(shù)”是什么東西!

2. 為了把一個(gè)取值在0~5的變量轉(zhuǎn)化成取值在1~6的變量(用于FORTRAN語(yǔ)言的下標(biāo)),有人用了5個(gè)IF語(yǔ)句,再加上5個(gè)賦值語(yǔ)句!

3. 在寫COBOL程序的時(shí)候,有些人不用“ELSE”子句,原因是“這不一定管用”。

4. 在寫PL/I程序的時(shí)候,有些人從來(lái)不用變長(zhǎng)字符串,原因是“這個(gè)不夠高效”。

5. 有些人根本不寫子程序,原因是“這太復(fù)雜了”。

這個(gè)單子能夠無(wú)限地寫下去。這里的要點(diǎn)不是在于,居然有這么多看似專業(yè)程序員的人在四處丟人現(xiàn)眼,而在于,沒(méi)有幾個(gè)管理者知道,正在和自己打交道的到底是“他們”中的一員,還是“我們”中的一員。

這和美國(guó)侍者的處境特別相似。在美國(guó),很少有人曾經(jīng)享受過(guò)專業(yè)侍者的服務(wù),所以即使人們真正遇到了一個(gè)專業(yè)侍者,他們也無(wú)從辨別?;蛘哌@樣說(shuō)更好,他們根本無(wú)法意識(shí)到,他們心目中的“標(biāo)準(zhǔn)”侍者其實(shí)還處于“亞專業(yè)”層次。

同樣,除非你自己就是一個(gè)勝任的程序員,否則也就很難衡量一個(gè)程序員的工作質(zhì)量。世上有很多可憐的企業(yè),這些企業(yè)中從來(lái)沒(méi)能長(zhǎng)期留住一個(gè)真正勝任的程序員,因此他們也就沒(méi)有一套標(biāo)準(zhǔn)來(lái)衡量程序員的專業(yè)性。這些企業(yè)的標(biāo)準(zhǔn)就是把庸人當(dāng)成奇才。而這樣的標(biāo)準(zhǔn)也千奇百怪,各地均不相同,甚至同一公司中的不同部門也不相同。

每次我到一家新公司去做咨詢顧問(wèn)的時(shí)候,我都提前讓經(jīng)理給我看一些典型代碼。經(jīng)理們往往都不敢相信我真是要看代碼,我總得堅(jiān)持索要好幾次才能得手。只要看一小段代碼,我通常就能對(duì)該公司的工作環(huán)境具有相當(dāng)準(zhǔn)確的了解。有時(shí)候我說(shuō)得特別準(zhǔn),管理層聽(tīng)了都大吃一驚,以為此前我跟員工們私下談過(guò)話。

經(jīng)理們自己永遠(yuǎn)也不看代碼。代碼之于經(jīng)理,如同臟盤子之于領(lǐng)班侍者。一旦你從那個(gè)垃圾堆里提升出來(lái),你就再也不碰那些垃圾了——開(kāi)玩笑碰一下都不成。

有一回,在大學(xué)里的時(shí)候,我們學(xué)生提議,教授們也應(yīng)該和學(xué)生一起參加碩士生考試,好給學(xué)生們做個(gè)榜樣、立個(gè)標(biāo)準(zhǔn)。2/3以上的教授對(duì)此滿是驚恐,敬謝不敏。他們自己也經(jīng)過(guò)20多年的考試折磨,再也不愿意回到考生的位置上去——這會(huì)讓他們想起從前卑微的地位。

同樣,在我們的行業(yè)里經(jīng)理不愿意編碼,這說(shuō)明寫代碼這個(gè)職業(yè)在人類等級(jí)體系中的地位略高于盜墓者,低于管理層。對(duì)于這樣的思考方式來(lái)說(shuō),編寫代碼不可能構(gòu)成一種獨(dú)立的技藝,不可能是一種天分,也不可能是一種有著自身地位的體面職業(yè)——所謂體面,就是說(shuō)不必和盜墓呀,管理呀之類的在同一個(gè)尺度下衡量。只要這種態(tài)度在數(shù)據(jù)處理行業(yè)還處于主導(dǎo)地位,那就仍然會(huì)有6個(gè)星期培養(yǎng)出來(lái)的專家,也還會(huì)有那些經(jīng)理——他們甚至不愿傾聽(tīng)公司高薪聘請(qǐng)的、有15年經(jīng)驗(yàn)的程序員說(shuō)話。

當(dāng)老師、當(dāng)侍者、當(dāng)程序員,這3件事有什么共同之處嗎?為什么人人都覺(jué)得自己能夠像專業(yè)人士一樣做這3件事?首先,這些工作似乎是容易理解的,因?yàn)楹芏嗤ζ胀ǖ娜硕加羞^(guò)相關(guān)的經(jīng)驗(yàn)。每個(gè)人都或多或少曾經(jīng)教過(guò)別人。每個(gè)人都做過(guò)把盤子放在桌上,或者收拾臟盤子的事。但是不是每個(gè)人都曾經(jīng)在一個(gè)活人大腦上做過(guò)手術(shù),也不是每個(gè)人都曾經(jīng)在陪審團(tuán)前為一個(gè)案件辯護(hù)。

但是編程序又是什么情形呢?當(dāng)然了,并不是每個(gè)人都寫過(guò)程序,對(duì)不對(duì)?也許不是每個(gè)人都寫過(guò),但是似乎每個(gè)經(jīng)理、會(huì)計(jì)、工程師,或者其他大學(xué)畢業(yè)的專業(yè)人士都寫過(guò)程序。編程課程在大學(xué)里相當(dāng)風(fēng)行,在很多職業(yè)教育中,這也是必修的課程。比如說(shuō),IBM在20年來(lái),在行政人員培訓(xùn)班中就設(shè)置了一定的“編程經(jīng)驗(yàn)”。

我不太清楚現(xiàn)在IBM的行政人員培訓(xùn)班的具體課程內(nèi)容,但是有好多年這門課程中包括了那個(gè)著名的“曼哈頓問(wèn)題”,作為唯一的編程練習(xí)。在美國(guó),數(shù)據(jù)處理課程的主流入門教科書大多會(huì)講到這個(gè)“曼哈頓問(wèn)題”,如果讀者中有人不巧沒(méi)學(xué)過(guò)這個(gè),我就按照教科書上的寫法,在這里重復(fù)一遍:

問(wèn)題是這樣的:據(jù)說(shuō)在1627年,白人們用24塊錢買了曼哈頓島。如果這筆錢被存入一個(gè)銀行戶頭,按年利率4.5%計(jì)算,今天會(huì)有多少錢?

(如果4.5%的年利率偏低的話,那是因?yàn)檫@道題是1956年出的,從那時(shí)起就被一代代的作者在不同的教科書中抄來(lái)抄去。)

這道題的“解法”,如果拋開(kāi)一些無(wú)關(guān)緊要的細(xì)節(jié),按照FORTRAN語(yǔ)言編寫,那就是這樣一個(gè)循環(huán):

I = 1627

PRINC = 24.00

2PRINC=PRINC*1.045

I = I + 1

IF(I-IYEAR)2,1,1

1WRITE (3,601) PRINC

至少有三四百萬(wàn)名學(xué)生學(xué)會(huì)了這個(gè)“解法”,這之中包括從行政人員到大學(xué)新生的各種人。對(duì)于其中的一些人,以上代碼就是他們“寫過(guò)”的唯一程序,但是這就讓他們有足夠資格判斷編寫一個(gè)操作系統(tǒng)、一個(gè)勞動(dòng)力部署系統(tǒng)、一個(gè)零件需求管理模擬器、一個(gè)在線處理控制器,或者無(wú)論什么你想得出來(lái)的系統(tǒng)的復(fù)雜度。而且,當(dāng)然了,在行政人員的課程中,每個(gè)學(xué)生還有一個(gè)專業(yè)程序員作為輔導(dǎo),“好幫助他們處理細(xì)節(jié)問(wèn)題”。

其實(shí)呢,曼哈頓問(wèn)題確實(shí)可以作為一個(gè)出色的工具,教給行政人員關(guān)于編程行業(yè)他們應(yīng)該知道的最重要的一課。假設(shè)讓他們編寫了以上那么一段程序,也對(duì)他們承認(rèn)這確實(shí)是問(wèn)題的一個(gè)“解法”。然后你就問(wèn)問(wèn)他們,編這個(gè)程序花了多少時(shí)間,運(yùn)行該程序又要多長(zhǎng)時(shí)間,再問(wèn)問(wèn)他們,覺(jué)得這些數(shù)字“好不好”。

當(dāng)他們交了作業(yè),也總結(jié)了感受,你就讓他們看看下面這個(gè)程序,告訴他們這樣的代碼就能獲得同樣的結(jié)果:

PRINC=24.00*(1.045**(IYEAR-1627))

WRITE(3,601)PRINC

對(duì)他們比較一下編程時(shí)間和運(yùn)行時(shí)間。你大概能夠發(fā)現(xiàn)這后一個(gè)程序只需要1/5的編程時(shí)間,和1/100的運(yùn)行時(shí)間,當(dāng)然具體的比例在不同的環(huán)境下不一樣。然后你就問(wèn)他們:“如果對(duì)這樣一個(gè)最簡(jiǎn)單的程序,兩種不同的代碼之間能夠具有5倍,甚至100倍的差別,那么,如果一個(gè)專業(yè)程序員和一個(gè)業(yè)余程序員編寫同樣一個(gè)操作系統(tǒng)的話,又會(huì)產(chǎn)生多大差別呢?”

如果給行政人員上了這樣一課,那么這種給他們掃盲、讓他們理解編程是怎么回事的課程也許能夠利大于弊。但是目前這一類課程的主要目的,雖然從來(lái)沒(méi)有明言,但其實(shí)是這樣的:“編程并沒(méi)有那么復(fù)雜。練習(xí)幾個(gè)星期,哪怕是我也能成為編程專家?!?/P>

為了把編程當(dāng)成一種正規(guī)職業(yè)對(duì)待,公眾——也包括程序員自己——都應(yīng)該通過(guò)某種方式受到教育。他們必須懂得這樣一個(gè)道理:即使是15年的經(jīng)驗(yàn),對(duì)于學(xué)習(xí)編程知識(shí)來(lái)說(shuō)也不一定就夠用——除非這位學(xué)習(xí)者特別一心一意。

文章鏈接:http://blog.sina.com.cn/s/blog_52f761ea0100ce8u.html

【編輯推薦】

  1. 一個(gè)程序員應(yīng)該如何學(xué)習(xí)技術(shù)?
  2. 程序員的職業(yè)發(fā)展
  3. 合格程序員七大基本素質(zhì)與五大必備能力
責(zé)任編輯:張攀 來(lái)源: 新浪博客
相關(guān)推薦

2015-10-30 09:49:30

2015-05-13 14:06:03

程序員糟糕的程序員

2016-03-23 10:18:47

女程序員

2020-10-05 21:13:37

程序員技能開(kāi)發(fā)者

2020-02-22 21:51:43

程序員Microsoft SServerSQL

2021-07-01 07:43:41

項(xiàng)目程序員代碼

2015-06-25 09:32:55

JavaScript程序員

2011-05-30 14:50:56

程序員

2015-06-25 19:23:03

JavaScript程序員

2009-07-02 09:42:34

JSP程序員

2015-06-25 09:53:13

JavaScript程序員

2013-07-18 09:58:18

C++程序員

2010-12-27 09:24:45

JSP程序員

2015-05-13 10:42:21

程序員代碼

2012-04-12 14:49:31

程序員

2014-01-06 09:33:32

程序員管理

2016-03-24 13:53:29

博士程序員

2011-06-02 10:23:33

程序員

2015-04-30 10:51:37

程序員高效快樂(lè)

2015-04-30 08:41:04

程序員高效健康
點(diǎn)贊
收藏

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