一篇關于程序員性格的文章
更新時間:2008年04月19日 20:17:29 作者:
軟件開發(fā)中人們很少注意個人性格問題。自從 1965年Edsger Dijkstra的有里程碑意義的文章“程序開發(fā)是一種人類活動”發(fā)表以來,程序員性格被認為是合理的和有成效的研究領域,雖然有些題目如“大橋建筑者的心理”和“對律師行為的研究實驗”看起來可能是荒唐的,而在計算機領域,“計算機編程中的心理”和“對程序員行為的研究實驗”等題目則是常見的。
和書本知識比起來,軟件開發(fā)中經驗的價值要比其它領域小,這有幾種原因。在許多其它領域中,基本知識變化緩慢,以致于10年前畢業(yè)的某人所學到的知識在現在仍沒有什么變化。而在軟件開發(fā)中,即使基本的知識也發(fā)展迅速,在你以后10年畢業(yè)的某個人可能學到了二倍
于你的有效編程方法,一些老的程序員往往被另眼相看,不是由于他們對某些特定方法缺乏接觸,而由于他們在走出校門后對一些聞名的基本編程概念缺乏了解。
在其它領域中,你今天在工作中學到的東西可能對你明天的工作有所幫助,在軟件開發(fā)中,如果你不改變你在使用從前的編程語言中的思維方式,或你在你的舊機器上得出的代碼調試方式的習慣,你的經驗將不值一文。許多進行軟件開發(fā)的人往往花費時間準備上一次的戰(zhàn)斗而不是下一次,如果你不因時間而做出應變,你的經驗與其說是幫助倒不如說是一個阻礙。
除了軟件開發(fā)中的迅速變化外,人們常從其經驗中得出錯誤的結論,客觀地對自己進行檢查是困難的,你也可能忽視經驗中使你能得出不同結論的重要之處,閱讀其它程序員的研究材料是有益的,因為研究材料揭示了其它人的經驗——它們都經過充分的精煉,你可客觀地對其進行檢查。
人們也往往荒唐地強調程序員的經驗。“我們需要有五年以上C語言編程經驗的程序員”就是其中一例,如果一程序員在頭一、二年沒有學C語言,第三年學也不會產生很大區(qū)別。這種類型的經驗和其工作能力沒有多大區(qū)別。
在程序開發(fā)中,知識更新迅速使此領域中“經驗”處在一種奇怪的地位上,在其它許多領域,過去有著成功歷史的專業(yè)人員,往往令人放心,并且因其一串成功的事情而得到尊敬。退步很快的人將很快和潮流格格不入。為了使自己有所價值,你必須緊跟潮流。對年青的、求知欲旺盛的程序員,他們往往在這點上有優(yōu)勢,而有些老的程序員認為自己有所資格了而討厭一年接一年都要證實自己的能力。
最后一個問題是:如果你已工作了10年,你得到了10年的經驗應當是真正的經驗,你如能堅持不斷地學習,你就能得到經驗,如果你并不想學到什么,不管多少年你也學不到什么。
計算機迷
如果你還沒有至少在一個相同的項目上花費一個月的時間——一天工作 16個小時;為了發(fā)現你的程序中最后一個錯誤睡眠中你也念念不忘它,你接連幾天沒日沒夜地工作——即使你所編的程序并不復雜,那么你可能不會意識到編程中有某種令人興奮的東西。
Edward Yourdon
這種對編程的癡迷純粹是胡鬧,并且?guī)缀踝⒍ㄒ?。但是那些通宵程序員使你覺得他們是世界上最好的程序員,但是隨后你不得不花費幾周的時間來修正你在這短時間的輝煌中所帶來的錯誤,你可能對編程非常熱愛,但是你應能冷靜地處理這個問題。
9 習 慣
好的習慣起作用是由于你為一個程序員所作的大部分事情是你在無意識中所完成的,例如,有時你可能會感到以前愛采用縮進循環(huán),但是現在每當你編寫一個新的循環(huán)時你不會這樣想了。這種情況確實在建立程序格式時存在。你最后一次向自己提出這個問題是在什么時候?如果你已經有五年實際編程經驗,你就存在較多的機會,如果你最后一次向自己提出疑問的時間在4年半之前,剩下的便是受習慣的支配時間了。
你在許多地方都存在習慣。例如,程序員往往愛仔細地檢查循環(huán)變量而少檢查賦值語句,這就使得發(fā)現賦值語句中的錯誤要比發(fā)現循環(huán)變量的錯誤困難一些。你能對別人的批評作出
友好或不友好的反應。你一直在尋找使代碼可讀或編碼速度更快的方法,也可能你無意尋找它們,如果你不得不在可讀性和編碼速度方面作出選擇,你每次都會作出相同的選擇,當然,你并不是在真正選擇;你是在習慣性地作出反應。
成為某方面好的或差的程序員,主要是靠你自己的所作所為,建筑師要通過建筑而程序員要通過編程。你所作成為習慣,決定了你的編程品行,最終,你的習慣好壞決定了你是否能成為一位好的程序員。
微軟公司的 Bill Gates——董事會主席兼 CEO——曾說過,任何好程序員在開始的幾年都做得很好。從那以后,程序員的好壞便基本定型了。在你進行編程很長一段時間后,很難見到你突然說“我怎樣才能依循環(huán)進行得更快呢? " 或“我怎樣才能使代碼更可讀呢?”這些都是好的程序員一開始便養(yǎng)成的習慣。
當你開始學習某一件事時,你應按正確的方式學好它,當你開始學時,你已對其進行了思考,并且你可在正確或錯誤的途徑間作出輕易的選擇,在你作過一段時間后,你對你所作的不太注意,此時“習慣的力量”會開始起作用。確保起作用的習慣是你所希望的。
如果你沒有養(yǎng)成最有效的習慣你應怎么辦?對這些問題沒有一個明確的答案,以下是對此問題的部分回答,你無法用沒有習慣取代壞的習慣,這就是為什么突然停止抽煙或節(jié)食的人如果不用一些別的什么替代的話會存在很大困難的原因。用一種新習慣代替舊習慣比完全戒除舊習慣要容易一些,在編程中,應盡力養(yǎng)成良好的習慣。你應養(yǎng)成在編寫代碼之前編寫PDL(流程圖)和在編譯之前閱讀代碼的習慣,你不必為失去壞習慣而多慮。在用新習慣取代后壞習慣會自然而然消失的。
10 小 結
你的個人性格直接影響你編寫計算機程序的能力。
最有明顯作用的性格為:謙虛、好奇心、誠實、創(chuàng)造性和紀律,還有文明的“懶惰”。
高級程序員的發(fā)展和生成與天才并無多大聯(lián)系,任何事情都和個人的發(fā)展有關。
令人吃驚的是,小聰明、經驗、堅持和欲望既可幫助你也能妨礙你。
許多程序員不主動去吸收新信息和新技術,而是靠偶然地上獲得一些新信息,如果你抽出少量時間學習別人的編程經驗,過一段時間后,你將在你的同行中脫穎而出。
好的性格對養(yǎng)成良好習慣有很大影響,為了成為一位高水平的程序員,你應養(yǎng)成良好的習慣,其余的就會隨之而來。
相關文章
提示缺少“S2CSplash.DLL"的解決方法,下載此文件放到才程序目錄即可
提示缺少“S2CSplash.DLL"的解決方法,下載此文件放到才程序目錄即可...2007-08-08由于mysql運行權限導致無法找到 Discuz! 論壇數據表! 的解決方法
由于mysql運行權限導致無法找到 Discuz! 論壇數據表! 的解決方法...2007-11-11