《Code Complete》之個(gè)人性格
在我看來,現(xiàn)在的IT環(huán)境下做軟件開發(fā)混的不錯(cuò)的必要條件不是掌握如何如何技能,個(gè)人內(nèi)在的性格和習(xí)慣會(huì)占很大的因素,雖然《代碼大全》這本書將個(gè)人性格放在第33章,講的篇數(shù)不過寥寥十幾頁,但很久說性格其實(shí)無所謂。誠然個(gè)體間性格差異很大,但作為一個(gè)優(yōu)秀程序員其優(yōu)秀品質(zhì)卻是大同小異的。
假如你是軟件工程師,基本的建造材料就是你的聰明才智,主要工具就是你自己。建筑工程師對建筑物機(jī)構(gòu)進(jìn)行詳細(xì)的設(shè)計(jì),然后將設(shè)計(jì)藍(lán)圖交給其他人施工:而你一旦從細(xì)節(jié)上對軟件做好設(shè)計(jì)后,軟件就生成出來了。變成的整個(gè)過程如同建造空中樓閣一樣——這是人們能做的純粹腦力勞動(dòng)之一。
-
求知欲
在開發(fā)過程中建立自我意識(shí) 你越了解軟件開發(fā)過程,無論通過閱讀還是通過自己對軟件開發(fā)的觀察,你就越能理解變化,使團(tuán)隊(duì)朝著正確的方向發(fā)展。
如果分配給你的工作凈 是些不能提高自身技能的短期任務(wù),你理應(yīng)表示不滿。如果正處于競爭激烈的軟件市場,則目前工作用到的一般知識(shí)將在三年后過時(shí)。假如不持續(xù)學(xué)習(xí),你就會(huì)落伍。
試驗(yàn) 如果小程序表現(xiàn)的特性與你設(shè)想不一樣,怎么辦呢?那正是你要研究的問題。最好通過小程序找出答案,而不要用大程序。有效編程的關(guān)鍵之一就是要學(xué)會(huì)迅速制造錯(cuò)誤,并且每次都能從中有所收獲,犯錯(cuò)不是罪過,從中學(xué)不到什么才是罪過。
閱讀解決問題的有關(guān)方法
在行動(dòng)之前做分析和計(jì)劃
學(xué)習(xí)成功項(xiàng)目的開發(fā)經(jīng)驗(yàn)
閱讀文檔
閱讀其他書本期刊
同專業(yè)人士交往 和希望提高其軟件開發(fā)技能的人為伍.參加某個(gè)交流會(huì),假如某個(gè)用戶群,或者參加網(wǎng)上討論.
向?qū)I(yè)開發(fā)看齊
-
誠實(shí)
不是高手時(shí)不假裝是高手
樂于承認(rèn)錯(cuò)誤
力圖理解編譯器的警告,而非棄之不理
透徹理解自己的程序,而不要只是編譯看看能否運(yùn)行
提供實(shí)際的狀況報(bào)告
提供現(xiàn)實(shí)的進(jìn)度方案,在上司面前堅(jiān)持自己的意見.
承認(rèn)自己的失誤有的時(shí)候很困難,比如一個(gè)BUG沒有弄清楚被反復(fù)的修改,要勇于跟測試人員、實(shí)施人員承認(rèn)自己的問題,比如代碼實(shí)現(xiàn)到一半發(fā)現(xiàn)不太對勁,要承認(rèn)自己設(shè)計(jì)上沒有做到位。在團(tuán)隊(duì)合作中,隊(duì)友犯了錯(cuò)但自己跳出來承認(rèn),我想一般也不會(huì)去怪罪他的錯(cuò)誤。
提供進(jìn)度方案和進(jìn)度反饋在我看來不容易做到,這需要豐富的經(jīng)驗(yàn),同時(shí)也需要對自我能力認(rèn)知有比較準(zhǔn)確的把握。
我寫過一些自己不完全理解的程序,但往往因此而吃虧。更糟糕的是,在過去一年后,同事跟你問起那段代碼時(shí),你會(huì)滿心疑問,那究竟是我曾經(jīng)寫過的嗎?更別說再去理解它了。
-
交流與合作
真正優(yōu)秀的程序員知道怎樣同別人融洽地工作和娛樂。代碼便于看懂是對團(tuán)隊(duì)成員的要求之一。計(jì)算機(jī)可能和別人一樣頻繁地讀你的代碼,但是它讀質(zhì)量差的程序可比人搶奪了。作為一項(xiàng)可讀性原則,應(yīng)該把修改你代碼的人擠在心上。編程首先是與人交流,其次才是與計(jì)算機(jī)交流。
-
懶惰
拖延不喜歡的任務(wù)
迅速做完不喜歡的任務(wù),以擺脫之
編寫某個(gè)工具來完成不喜歡的任務(wù),以便再也不用做這樣的事情了。
好吧,我承認(rèn)我很懶,因?yàn)橐陨先c(diǎn)我同時(shí)具備。
-
不如你想象中那樣起作用的性格因素
堅(jiān)持
多數(shù)時(shí)候軟件開發(fā)中的堅(jiān)持其實(shí)就是沒有好處的“固執(zhí)”。當(dāng)在某段新代碼上卡殼時(shí),堅(jiān)持很難讓人稱道。不放另辟蹊徑,嘗試重新設(shè)計(jì)類,或者繞過去,以后回頭再試。
調(diào)試時(shí),花四個(gè)小時(shí)干掉某一錯(cuò)誤肯定會(huì)很有滿足感;但通常最好只要有段時(shí)間沒有緊張,比如說15分鐘,就該放棄排錯(cuò)過程,讓潛意識(shí)仔細(xì)品品。想個(gè)其他法子將問題繞開;從頭編寫有碼放的代碼段;理清思緒后再來做。和計(jì)算機(jī)錯(cuò)誤斗氣是不明智的,更好的方法是避開他們。
經(jīng)驗(yàn)
在其他行業(yè)中,今天工作中的收獲很可能有助于明天的工作;在軟件行業(yè)中,如果不改掉使用先前編程語言時(shí)的思維模式,或者不放棄在舊機(jī)器上能用的代碼性能優(yōu)化技術(shù),你的經(jīng)驗(yàn)將還不如沒有好。很多軟件開發(fā)者花時(shí)間去準(zhǔn)備應(yīng)付上一次戰(zhàn)爭,卻不花時(shí)間去準(zhǔn)備下一場戰(zhàn)爭。如果你不能與時(shí)俱進(jìn),經(jīng)驗(yàn)不但不會(huì)有所幫助,反而是個(gè)累贅。
-
習(xí)慣
好習(xí)慣很重要,因?yàn)槌绦騿T做的大部分事情都是無意識(shí)完成的。例如,你曾想過該如何格式化縮進(jìn)的循環(huán)體,但現(xiàn)在每當(dāng)寫信的循環(huán)體時(shí)就不再去想了,而以習(xí)慣的方式來做。對程序格式的方方面面?zhèn)€幾乎都是如此。你上次質(zhì)疑編程風(fēng)格是什么時(shí)候?如果你有五年編程經(jīng)驗(yàn),最后提出這個(gè)問題可能是在四年半之前,其他時(shí)間都是按習(xí)慣編程的。
-
要點(diǎn)
人的個(gè)性對其編程能力有直接影響
最為關(guān)系的性格為:謙虛、求職欲、誠實(shí)、創(chuàng)造性和紀(jì)律,以及高明的偷懶。
程序員高手的性格與天分無關(guān),而任何事都與個(gè)人發(fā)展有關(guān)。
出乎意料的是,小聰明、經(jīng)驗(yàn)、堅(jiān)持和瘋狂既有助也有害。
很多程序員不愿意主動(dòng)吸收新知識(shí)和技術(shù),只依靠工作時(shí)偶爾接觸新的消息。如果你能抽出少量時(shí)間閱讀和學(xué)習(xí)編程知識(shí),要不了多久就能鶴立雞群。
好性格與培養(yǎng)正確的習(xí)慣關(guān)系甚大。要成為杰出的程序員,先要養(yǎng)成良好習(xí)慣,其他自然水到渠成。

浙公網(wǎng)安備 33010602011771號(hào)