欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一篇關(guān)于程序員性格的文章第1/3頁(yè)

 更新時(shí)間:2008年04月19日 20:17:29   作者:  
軟件開(kāi)發(fā)中人們很少注意個(gè)人性格問(wèn)題。自從 1965年Edsger Dijkstra的有里程碑意義的文章“程序開(kāi)發(fā)是一種人類(lèi)活動(dòng)”發(fā)表以來(lái),程序員性格被認(rèn)為是合理的和有成效的研究領(lǐng)域,雖然有些題目如“大橋建筑者的心理”和“對(duì)律師行為的研究實(shí)驗(yàn)”看起來(lái)可能是荒唐的,而在計(jì)算機(jī)領(lǐng)域,“計(jì)算機(jī)編程中的心理”和“對(duì)程序員行為的研究實(shí)驗(yàn)”等題目則是常見(jiàn)的。
    每個(gè)領(lǐng)域的工程人員都知道工具和他們所用材料的局限性。如果你是一位電機(jī)工程師,你就應(yīng)明白各種材料的導(dǎo)電性和使用電壓表的各種方法。如果你是一位建筑師,你就應(yīng)明白木材、混凝土、鋼材的性能。而如果你是一位軟件工程師,你的基本建筑材料是人的聰明才智,并且你的主要工具是你自己。建筑師是將建筑物結(jié)構(gòu)進(jìn)行詳細(xì)的設(shè)計(jì),然后將設(shè)計(jì)藍(lán)圖交給其它人去建造,而你則是一旦當(dāng)你從細(xì)節(jié)上對(duì)軟件作出設(shè)計(jì)后,軟件生成過(guò)程也就結(jié)束了。 

編程的整個(gè)工作就如建造空中樓閣一樣——它并不是純粹的人工活動(dòng)。于是,當(dāng)軟件工程師研究工具和材料的必需性時(shí),他們發(fā)現(xiàn)自己正在研究人的智力、性格,不像木材、混凝土和鋼材等可見(jiàn)的東西。 

1  個(gè)人性格是否和本書(shū)的主題無(wú)關(guān)

編程工作極強(qiáng)的內(nèi)部特點(diǎn)使得個(gè)人特點(diǎn)異常重要,你想想一天全神貫注地工作八小時(shí)有多么困難,你可能有過(guò)由于精力過(guò)分集中而今天無(wú)精打采的體驗(yàn)。或由于上個(gè)月過(guò)分投入而本月沒(méi)有一點(diǎn)精神,你也可能在某一天從上午8點(diǎn)工作到下午2點(diǎn),以致于精神快要坍塌了。有時(shí)你從下午2點(diǎn)拼命于到5點(diǎn),然后花費(fèi)一周的時(shí)間修改你在其間所寫(xiě)的東西。
    人們難以對(duì)編程工作進(jìn)行檢查,因?yàn)闆](méi)有人知道你真正干些什么,我們經(jīng)常有過(guò)這樣的體驗(yàn),我們花費(fèi)8O%的時(shí)間進(jìn)行我們所感興趣的20%的工作,同時(shí)花費(fèi)2O%的時(shí)間生成其余80%的程序。 

    你的老板并不能強(qiáng)迫你成為一個(gè)好的程序員,甚至過(guò)了很長(zhǎng)一段時(shí)間你的老板也無(wú)法判斷你是否是一個(gè)稱(chēng)職的程序員,如果你想成為一個(gè)高手,你得全靠你自己下功夫。它和你個(gè)人性格有關(guān)。 

    一旦你自己決定成為一個(gè)高級(jí)程序員,你發(fā)展的潛力是很大的,各種研究發(fā)現(xiàn),創(chuàng)建一個(gè)程序所需的時(shí)間比可達(dá)到10:1,同時(shí)也發(fā)現(xiàn)調(diào)試一個(gè)程序的時(shí)間,程序?qū)崿F(xiàn)長(zhǎng)度、速度、錯(cuò)誤率和所發(fā)現(xiàn)錯(cuò)誤數(shù)對(duì)不同的程序員其差別可達(dá)10:1。 

你無(wú)法改變自己的聰明程度,但是你可在一定程度上改變自己的性格,已發(fā)現(xiàn)在程序員成為高級(jí)程序員的過(guò)程,性格是更有決定意義的因素。 

2  聰明和謙虛

    聰明看起來(lái)似乎不是個(gè)人性格的一個(gè)貢獻(xiàn)。它也的確不是。恰巧的是,好的智力是和成為一個(gè)好的程序員有著并不嚴(yán)密關(guān)系的因素。 

    為什么?難道這并不要求你有一個(gè)好的智力嗎? 

    不,你不需這樣,沒(méi)有人真正同計(jì)算機(jī)一樣迅速敏捷。完全理解一個(gè)一般的程序需要你有吸收細(xì)節(jié)的很強(qiáng)的能力,并能同時(shí)理解所有細(xì)節(jié),你很好地利用你的聰明要比你有多聰明更為重要。 

    在 1972年,Edsger Dijkstra發(fā)表一篇論文,名字叫作“謙虛的程序員”。他在此文中主張所有的程序員都應(yīng)盡力彌補(bǔ)他們很有限制的智力。那些最精通編程序的人往往是那些認(rèn)為自己的頭腦是多么有限的人,他們是謙虛的。而那些最為糟糕的程序員往往是那些拒絕承認(rèn)自己的能力不適應(yīng)工作任務(wù)的程序員。他們的自我妨礙自己成為優(yōu)秀程序員,你學(xué)到越多的東西來(lái)彌補(bǔ)你的大腦,你就越能成為一個(gè)好的程序員,你越謙虛,你取得的進(jìn)步也就越快。 

    許多良好的編程風(fēng)格的目的是減少你大腦的負(fù)擔(dān),以下是一些例子: 

Ÿ “分解”一個(gè)系統(tǒng)的目的是為了使其更為簡(jiǎn)單易懂。人們往往易于理解幾條簡(jiǎn)單的信息而不是一條復(fù)雜的信息。所有軟件設(shè)計(jì)方法的目的是將復(fù)雜的問(wèn)題分解為簡(jiǎn)單的幾部分,不論你是否使用結(jié)構(gòu)化、自頂向下或是面向?qū)ο蟮脑O(shè)計(jì),以上目標(biāo)都相同。 

Ÿ 進(jìn)行評(píng)審、檢查和測(cè)試是彌補(bǔ)人的錯(cuò)誤的一種方法,評(píng)審方法部份源于“無(wú)錯(cuò)編程”,如果你沒(méi)有任何錯(cuò)誤,你就用不看評(píng)審你的軟件,但是當(dāng)你知道自己的能力是有限時(shí),你就應(yīng)和別人討論以提高你的軟件質(zhì)量。 

Ÿ  將子程序編短一些有助于減少你的工作量。你根據(jù)問(wèn)題而不是計(jì)算機(jī)科學(xué)術(shù)語(yǔ)編寫(xiě)程序并使用盡可能高級(jí)的抽象思維,有助于減少你的工作量。 

Ÿ 使用各種交談方式可將你從編程的死胡同中解放出來(lái)。 

你也許認(rèn)為靠聰明能更好地開(kāi)發(fā)人的智力活動(dòng),所以你無(wú)需這些幫助。你也可能認(rèn)為使用智力幫助的程序員是走彎路。實(shí)際上,研究表明,那些使用各種方式彌補(bǔ)其錯(cuò)誤的謙虛的程序員們所編寫(xiě)的程序,既易為自己也易為別人所理解,并且其程序中所含錯(cuò)誤也少。實(shí)際的彎路是出現(xiàn)錯(cuò)誤和影響進(jìn)度的路。

3  好奇心

一旦你認(rèn)為自己理解程序的能力是有限的,而且你意識(shí)到,進(jìn)行有效的編程是補(bǔ)償自己能力的方法時(shí),你就開(kāi)始了你生涯中漫長(zhǎng)的探索過(guò)程。 

在變成高級(jí)程序員的過(guò)程中,對(duì)技術(shù)的好奇心是很重要的。有關(guān)的技術(shù)信息變化迅速。許多PC程序員沒(méi)有在什么機(jī)器上編過(guò)程,而許多程序員還沒(méi)有用過(guò)電腦的穿孔卡片。技術(shù)環(huán)境的特定特征每隔5到10年就發(fā)生變化。如果你跟不上這種變化,你將面臨落伍的威脅。 

    程序員往往很忙碌,以致于他們沒(méi)有時(shí)間對(duì)更好地工作或?qū)ぷ靼l(fā)生興趣。如果你真是這樣,你也不必在意大多,因?yàn)樵S多人都同你一樣,以下是一些培養(yǎng)你的好奇心的方法,你真應(yīng)該好好學(xué)一學(xué)它。 

    在開(kāi)發(fā)過(guò)程中建立自我意識(shí)。你對(duì)開(kāi)發(fā)過(guò)程越了解,不管你是通過(guò)對(duì)開(kāi)發(fā)過(guò)程的閱讀或自己的觀察得來(lái)的,你就越能了解各種修改,并使你所在開(kāi)發(fā)組向一個(gè)更好的方向前進(jìn)。如果分配你的工作任務(wù)很少而不能提高你的技能,你也應(yīng)對(duì)此滿(mǎn)足。如果正在開(kāi)發(fā)有良好市場(chǎng)前景的軟件,你所學(xué)的一半知識(shí)將會(huì)在今后三年內(nèi)過(guò)時(shí),如果你不再學(xué)習(xí)新知識(shí),你將會(huì)落伍。 

在1988到200O年中,美國(guó)平均工作人數(shù)可增加11%到 19%,計(jì)算機(jī)系統(tǒng)分析員可增長(zhǎng)53%。程序員可增長(zhǎng)48%,計(jì)算機(jī)操作員可增長(zhǎng)29%——在現(xiàn)有的1,237,000份工作的基礎(chǔ)上再增加 556,000份新工作。如果你在工作中學(xué)不到什么,你可試著找一份新工作。 

    實(shí)驗(yàn)。了解編程的一個(gè)有效途徑是對(duì)編程和開(kāi)發(fā)過(guò)程進(jìn)行實(shí)驗(yàn),如果你對(duì)所用語(yǔ)言的工作過(guò)程不甚了解,你可編寫(xiě)一個(gè)短程序以檢查此特征并看其是如何工作的,你可在調(diào)試器中觀看程序的執(zhí)行。用一個(gè)短程序而不是一個(gè)不甚了解的大程序來(lái)測(cè)試一個(gè)概念是很好的。 

    如果短程序的運(yùn)算表明程序運(yùn)行結(jié)果并不是你所期望的,這時(shí)你應(yīng)怎么辦?這正是你所需要的,最好用一個(gè)短程序在有效編程的一個(gè)關(guān)鍵方法上迅速制造錯(cuò)誤,每次你可從中有所收益,制造錯(cuò)誤并不是罪過(guò),沒(méi)有從中學(xué)到什么才是罪過(guò)。 

    閱讀解決問(wèn)題的有關(guān)方法。解決問(wèn)題是軟件開(kāi)發(fā)中的一個(gè)重要活動(dòng),Herbert Simon曾報(bào)道過(guò)人工解決問(wèn)題的一系列例子。他們發(fā)現(xiàn)人們自己通常不能發(fā)現(xiàn)解決問(wèn)題的方法,即使這種方法很容易學(xué)到。這意味著即使你想自己創(chuàng)造車(chē)輪,你也不能指望成功,你可能設(shè)計(jì)出方車(chē)輪。 

    在你行動(dòng)之前進(jìn)行分析和計(jì)劃。你將會(huì)發(fā)現(xiàn)在分析和行動(dòng)之前存在著矛盾,有時(shí)你不得不放棄的數(shù)據(jù)和行動(dòng),對(duì)大多數(shù)程序員來(lái)說(shuō),問(wèn)題并不在于過(guò)分分析和過(guò)分使用。 

    學(xué)習(xí)成功項(xiàng)目的開(kāi)發(fā)經(jīng)驗(yàn)。學(xué)習(xí)編程的一種非常好的方法是向一些優(yōu)秀程序員學(xué)習(xí)。Jon Bentley認(rèn)為你應(yīng)靜心坐下來(lái),準(zhǔn)備一杯白蘭地,一枝好雪茄煙,然后如同讀小說(shuō)一樣閱讀程序。實(shí)際上可能并不是這樣,許多人往往不愿犧牲其休息時(shí)間來(lái)閱讀——500頁(yè)的源程序,但是許多人往往樂(lè)意研究一個(gè)高級(jí)程序的設(shè)計(jì),并有選擇地研究一些具體細(xì)節(jié)。 

    軟件工程領(lǐng)域很少利用過(guò)去成功或失敗的例子。如果你對(duì)建筑學(xué)有所興趣,你可能會(huì)研究Louis Sullivan,F(xiàn)rank Lloyd Wright和 I.M.Pei的設(shè)計(jì)圖,你也可能會(huì)參觀他們的建筑物,如果你對(duì)結(jié)構(gòu)工程有興趣,你可以研究 Broolyn大橋,Tacoma Narrows大橋以及其它混凝土、鋼鐵和木材建筑,你應(yīng)研究你所在領(lǐng)域中成功或失敗的例子。 

    Thomas Kuhn指出,任何成熟的科學(xué),實(shí)際上是通過(guò)解決問(wèn)題而發(fā)展起來(lái)的,而這些問(wèn)題通常被看作本領(lǐng)域良好工作的例子,并且可用作將來(lái)進(jìn)行工作的例子。軟件工程是剛?cè)氤墒祀A

段的一門(mén)科學(xué),在1990年,計(jì)算機(jī)科學(xué)和技術(shù)委員會(huì)曾指出,在軟件工程領(lǐng)域很少有對(duì)成功和失敗的例子進(jìn)行研究的文件,在1992年3月的“ACM通信”中有一篇文章主張對(duì)別人編程中出現(xiàn)的問(wèn)題進(jìn)行研究,總之,學(xué)習(xí)別人的編程是有重要意義的。 

    其中一個(gè)最受歡迎的欄目是“編程拾萃”,它專(zhuān)門(mén)研究編程過(guò)程中出現(xiàn)的問(wèn)題,這對(duì)于我們是有啟發(fā)的。 

    你可能有或沒(méi)有一本研究編程的書(shū),但是你可閱讀高級(jí)程序員所編寫(xiě)的代碼,閱讀你所尊敬的程序員的代碼,或閱讀你并不喜歡的程序員的代碼,再將他們的代碼和你自己的代碼比較。它們之間有何異同?為什么會(huì)有差異?哪一個(gè)更好?為什么? 

    除了閱讀他人的代碼之外,你也應(yīng)讓其它高水平程序員評(píng)價(jià)你的代碼質(zhì)量,找一些較高水平的程序員評(píng)論你的代碼,從他們?cè)u(píng)論中,你可剔除那些帶個(gè)人色彩的東西而著重于那些重要的東西。這樣可提高你的編程質(zhì)量。 

    閱讀手冊(cè)。手冊(cè)恐懼癥在程序員中很流行。一般來(lái)說(shuō),手冊(cè)的編寫(xiě)和組織都不好,但是程序員對(duì)手冊(cè)的恐懼也和他們對(duì)書(shū)本的過(guò)分恐懼有很大關(guān)系。手冊(cè)含有一些重要的東西。所以花費(fèi)時(shí)間閱讀手冊(cè)是值得的,忽視手冊(cè)中的信息正如忽視一些常見(jiàn)的首字母簡(jiǎn)略詞。 

    現(xiàn)代語(yǔ)言產(chǎn)品一般都帶有大量程序庫(kù),這時(shí),你花費(fèi)時(shí)間查閱參考手冊(cè)是值得的,通常提供語(yǔ)言產(chǎn)品的公司,已經(jīng)編寫(xiě)了許多你可以調(diào)用的子程序。如果是這樣,你應(yīng)弄懂有關(guān)手冊(cè),每隔一段時(shí)間閱讀一下手冊(cè)。 

    閱讀有關(guān)書(shū)籍和期刊。你應(yīng)為自己閱讀本書(shū)感到幸運(yùn)。你已經(jīng)學(xué)到了軟件工程的許多知識(shí),因?yàn)橐槐緯?shū)每年都要被許多程序員所閱讀,讀一些東西可能使你的專(zhuān)業(yè)知識(shí)向前邁進(jìn)一步,如果你每二個(gè)月閱讀一本好的計(jì)算機(jī)書(shū)籍,你的知識(shí)將會(huì)大大提高并能在同行中脫穎而出。 

4  誠(chéng) 實(shí)

    編程生涯成熟的部分標(biāo)志是不折不撓地堅(jiān)持誠(chéng)實(shí),誠(chéng)實(shí)通常表現(xiàn)在以下幾個(gè)方面: 

Ÿ 不假裝你是一個(gè)編程能手 

Ÿ 樂(lè)于承認(rèn)自己的錯(cuò)誤 

Ÿ 力圖理解編譯器警告信息而不是對(duì)其置之不理 

Ÿ 對(duì)你的程序有一個(gè)清晰的了解,而不是進(jìn)行編譯看其是否有錯(cuò) 

Ÿ  提供實(shí)際狀態(tài)報(bào)告 

Ÿ  提供實(shí)際方案評(píng)估,在你的上司面前堅(jiān)持自己的意見(jiàn) 

相關(guān)文章

最新評(píng)論