程序員的性格(轉貼)

1. 聰明和謙遜 

一個人越謙虛進步越快,承認自己的無知纔會去正視和彌補自己的錯誤。理解程序需要通常很強的對細節把握和理解能力,這對程序員的智力有很大要求,但是很好的利用聰明要比你到底有多聰明要重要的多。有個程序員需要也需要謙虛,用謙虛去促進自己的智慧,使得自己更加聰明。這是軟件開發者的兩個基本素質要求,它們互相依賴促進,有時候也互相排斥,把握好自己的才智和謙虛就能更大程度提高能力。 

也許某些事情很麻煩和困難,我們這時就需要使用一些方法去聰明的解決它們。比如:採用良好的程序風格便於理解、採用分解的辦法使複雜問題簡單化、多進行評審和測試,多和別人討論和關注軟件質量問題、儘量使用高度抽象的思維使問題一般化,提高重用率減少工作量、如果問題走進一個 " 死衚衕 " 不妨和杯咖啡放鬆情緒,或和別人交談交流觀點,這是解決鑽牛角尖的好方法。 

2. 好奇心 

一旦你認爲自己理解程序的能力是有限的,而且你意識到,進行有效編程是補償自己能力的方法時,你就開始了你職業生涯中漫長的探索過程。對技術的好奇很重要,否則你將在知識爆炸的時代迅速落伍。別在忙碌的工作或瑣事中,失去了對學術,自然和生活的好奇心和激情。我們可以在: 

1 開發過程中建立自我意識。通過在開發中有意識的可以使用進行新技能的鍛鍊,多對開發工程進行觀察,和學習其他解決方法,這樣就對整個項目有很強的把握能力,甚至可以帶領整個團隊走向更好的方向。如果你現在做的是市場前景很好的工作,那也意味着工作中的某些技術可能會很快被淘汰,注意保持好奇心和創造力。 

2 實驗。瞭解編程的一個有效方法就是對編程和開發過程做實驗。你可以編寫一個程序並觀察它是如何工作的,調試器裏跟蹤程序的執行把握它的特性。用個小程序去檢驗一個不太瞭解的概念,這對增進理解有非常大的幫助。或者用一個短程序,去試圖製造一些錯誤,通過錯誤去學習。錯誤不是罪過,沒有從錯誤中學到什麼那纔是罪過。 

3 閱讀解決問題的有關方法。解決問題是軟件開發過程核心的活動。一個奇怪的現象:人們通常不能從自己面臨的問題找出解決的方法,即使這個方法很簡單。 

4 行動前先做好分析和設計。儘管實踐和分析設計過程有很大的矛盾,但是好的分析會避免讓你過早走向一個錯誤的方向,好的設計可以避免混亂。 

5 學習成功或失敗項目的開發經驗。學習編程的好方法是向一些優秀的程序員學習。應該要注重項目的戰略思想,把握項目中解決關鍵難點的戰術。任何成熟的科學,都是通過解決問題發展起來的。這些問題通常被看一些被良好解決的例子,並可爲將來工作做指導。(這可能也是目前很多公司注重工作經驗的原因吧?)我們應該努力對別人工作存在的問題做研究,學習別人的無論成敗的解決辦法都是很有意義的。多拿自己的代碼和比你優秀人的代碼做比較,看看你們間有什麼異同?爲什麼會有這樣的差異?誰的更好?爲什麼?也要多讓自己的代碼讓別人評價,這樣可以提高自己的程序質量。 

6 閱讀手冊,書籍和期刊。手冊中往往對帶有些可以直接調用的子程序,這對我們研究和解決具體問題有很大幫助。書籍中往往是介紹系統理論,多閱讀可以提高專業能力;期刊中常常包含着流行的技術和觀點可以開闊眼界。 

3. 誠實 

編程生涯成熟的部分標誌是堅持誠實。通常是:不假裝自己是高手、樂於承認錯誤、尊重編譯器的警告、對程序有清晰的瞭解,而不是編譯看其是否有錯、提高實際狀態報告、提供實際方案評估,在上級面前堅持自己的意見。你最好假裝自己知之甚少,聽別人的解釋,向他們學習,並且評估他們是否瞭解其正在討論的東西:) 

你應該對自己能力做某種程度評估,認爲自己完美是一個不妙的信號。錯誤正如潮流一樣是一個複雜的活動,如果你過去沒犯過錯誤,那麼沒有人會將錯誤歸咎於你。所以正視自己的錯誤。當你並不瞭解程序時,編譯運行並不是解決問題的方法。測試是證明錯誤的存在,而不是保證沒有錯誤。如果不能深入理解程序,就不能深入測試。依據事實給出準確的狀態報告,不能欺騙自己和別人,這是充分合作的前提。不能因爲壓力而否定符合規律的做法——這個項目需要 10 人月,要用 5 人月完成除非降低性能或其他做法——準確的向上司說明情況。 

4 .交流與合作 

真正優秀的程序員應學會怎樣和別人工作和娛樂。真正閱讀你寫出的程序是人,而不是給計算機——注意代碼的可讀性。絕多數高水平的程序員堅持自己代碼的可讀性,並抽出充足時間這麼做。對程序員能力的界定標準: 

1 初學者 

是能使用一種語言基本能力的程序員,他能使用子程序、循環、條件語句或其他許多語言特徵。 

2 中間者 

有使用許多語言的能力,並且至少非常熟悉某一種語言。 

3 專家 

對其語言或環境或這二者有很深的造詣。這種級別的程序員對公司是有價值的,而且有些程序員往往就停留在這個水平上。 

4 大師 

有着專家那樣的專業知識,並且意識到編程只是 15 %和計算機交流,其餘 85 %是和人打交道。一般程序員只有 30 %時間或更少。而且大師注重給人看的清晰易懂的代碼,並注意建立有關文檔。 

不強調可讀性的高水平代碼者可能停留在級別 3 上面。並且根據經驗,編寫不可讀代碼的主要原因是:代碼質量差或是編寫者自己並不能完整地理解自己的代碼。當你知道自己的水平後,不必內疚和自愧。在你知道如何提高水平後,你倒應該爲自己停留在初學者或專家水平上有多長時間而內疚。 

5. 創造力和紀律 

雖然一些有創造力的程序員將各種標準和約定視爲對其創造力的阻礙,但是沒有這些約束項目實現是不可能的。不要在無關緊要的領域建立約定,應該在值得的地方發揮你的創造力。一個傑出的程序員需要遵守許多規則。如果編碼之前不分析需求就設計,那麼你就學不到項目的許多東西,那樣工作就像小孩畫畫而不是藝術品。 

6. 懶惰 

懶惰的三種形式: 1 拖延自己討厭的工作 2 迅速解決討厭的任務以擺脫任務 3 寫一個工具來完成討厭的工作解脫自己。當你不是透過玻璃看問題的時候,你就看到了懶惰的另一方面。 " 趕着做 " 是一種多餘和沒有必要的 " 努力 " 。有效的工作最重要的現象是人們在思考種往往顯得冷靜而不忙。一個一直很忙碌的程序員不是好程序員,因爲他並不是在使用對於他來說最有價值的工具和頭腦。 

7. 並不是你想象中起作用的性格 

堅持:這是一筆財富也是不利的條件。你可以稱它爲頑固或者堅強,這完全取決於應用它的場合。在多數情況下,軟件開發的 " 堅持 " 就是頑固的意思!當你遇到新問題時候,你再固執己見並不是好事。你應該迅速適應它,或原方案並不起作用時,學會用另一種解決方法。調試中,當你發現一個困擾你 4 個小時之久的錯誤時,你一定感到非常滿意。但是實際上,如果你在一段時間——通常爲 15 分鐘沒有取得任何進展時,你應該放棄找錯。用你的潛意識去思考問題,嘗試用別的方法解決問題,甚至重寫厭煩的代碼段。和計算機錯誤做鬥爭時不明智的,你應該儘量避免它們。知道在時候需要放棄時困難的,但是必須面對一個問題:當你覺得自己受挫折時,是否考慮嘗試其他不同的方法。 

經驗:過於依賴經驗會導致知識的落伍。今天的經驗必須爲明天的工作服務。如果不在過去經驗中去歸納總結出一些有價值的原則或規律並改變自己去適應它們,那麼經驗也將一文不值。如果你的經驗還是停留在上一次戰鬥而不是下一次,也不因時間做出應變,那麼經驗更像是一個阻礙。此外,錯誤的經驗往往得不到客觀的評價。錯誤的經驗可以讓你得出重要的不同結論,學習其他人的錯誤經驗是一個好方法——你更可以對它做客觀的檢查。其他領域有成功經驗的專業人員往往使人放心,而在軟件開發中,知識更新迅速使得此領域中 " 經驗 " 處於一個奇怪的地位。爲了使自己有所價值,你必須緊跟潮流,對於年輕求知慾旺盛的程序員在這點有優勢,而有些年老的程序員認爲自己有所資格而厭倦一年接一年都要證實自己的能力。如果你已工作了 10 年,你得到了 10 年的經驗未必是真正的經驗——你如果堅持不斷地學習,你就能得到經驗,但如果你並不想學到什麼,不管多少年你也學不到什麼。 

編程狂:如果你還沒有至少在一個相同的項目上花費一個月的時間——一天工作 16 個小時;爲了發現你的程序中最後一個錯誤睡眠中你也念念不忘它,你接連幾天沒日沒夜地工作——即使你所編的程序並不複雜,那麼你可能不會意識到編程中有某種令人興奮的東西。 Edward Yourdon 

這種對編程的癡迷純粹是胡鬧,並且幾乎註定要失敗。但是那些通宵程序員使你覺得他們是世界上最好的程序員,但是隨後你不得不花費幾周的時間來修正你在這短時間的輝煌中所帶來的錯誤,你可能對編程非常熱愛,但是你應能冷靜地處理這個問題。 

8. 習慣 

好的習慣起作用是由於你爲一個程序員所作的大部分事情是你在無意識中所完成的。成爲某方面好的或差的程序員,主要是靠你自己的所作所爲。你所作所爲習慣,決定了你的編程品行。最終,你的習慣好壞決定了你是否能成爲一位好的程序員。當你開始學習某一件事時,你應按正確的方式學好它。當你開始學時,你已對其進行了思考,並且你可在正確或錯誤的途徑間作出輕易的選擇。在你作過一段時間後,你對你所作的不太注意,此時 " 習慣的力量 " 會開始起作用。確保起作用的習慣是你所希望的。 

小結 

你的個人性格直接影響你編寫計算機程序的能力。 最有明顯作用的性格爲:謙虛、好奇心、誠實、創造性和紀律,還有文明的 " 懶惰 " 。 高級程序員的發展和生成與天才並無多大聯繫,任何事情都和個人的發展有關。令人吃驚的是,小聰明、經驗、堅持和慾望既可幫助你也能妨礙你。 許多程序員不主動去吸收新信息和新技術,而是靠偶然地上獲得一些新信息,如果你 抽出少量時間學習別人的編程經驗,過一段時間後,你將在你的同行中脫穎而出。 y 好的性格對養成良好習慣有很大影響。爲了成爲一位高水平的程序員,你應養成良好 的習慣,其餘的就會隨之而來。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章