程式設計師的個人性格

2022-03-09 09:38:10 字數 4457 閱讀 8979

提要:軟體開發是乙個「以人的智力為加工原料」的工程活動,在開發過程中會不斷的對智力和性格作研究。需要注意20/80原則,並不是最勤奮的才是最優秀的。程式設計的工作難以檢查,是否成為高手和個人性格有關。你無法改變智力,但可以改變性格。在軟體開發者的成長過程中,eq還是佔主要因素。

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. 習慣

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

小結 ·你的個人性格直接影響你編寫電腦程式的能力。

· 最有明顯作用的性格為:謙虛、好奇心、誠實、創造性和紀律,還有文明的「懶惰」。

· 高階程式設計師的發展和生成與天才並無多大聯絡,任何事情都和個人的發展有關。

· 令人吃驚的是,小聰明、經驗、堅持和慾望既可幫助你也能妨礙你。

· 許多程式設計師不主動去吸收新資訊和新技術,而是靠偶然地上獲得一些新資訊,如果你抽出少量時間學習別人的程式設計經驗,過一段時間後,你將在你的同行中脫穎而出。

· 好的性格對養成良好習慣有很大影響。為了成為一位高水平的程式設計師,你應養成良好的習慣,其餘的就會隨之而來。

掘金者說 第1期 個人性格

在軟體開發過程中,人們很少注意個人性格問題。每個行業的工程人員都了解其工作用的工具及材料的各種限制。如果是電器工程師,就該知道各種金屬的電導率,以及電壓表的上百種用法 如果是建築工程師,就該知道木材 混凝土和鋼鐵的承載量。假如你是軟體工程師,基本的建造材料就是你的聰明才智,主要工具就是你自己。建築工...

程式設計師的性格

程式設計師的性格 一,聰明和謙虛。二,有求知慾。方法 1,在程式設計中能建立自我意識。2,試驗。3,閱讀解決問題的有關方法。4,在行動之前做分析和計畫。5,閱讀文件。6,學習一些程式設計經驗 7,和高人交往。8,向專業人士看齊。9,看些期刊等等。三,誠實。1,不是高手不要假裝高手。2,樂於承認錯誤。...

程式設計師的性格和命運

性格決定命運,程式設計師亦莫能外。性格影響機緣有無,影響才情發揮,影響努力深淺,最終影響人生之結局,是人這一生裡可以把握,又往往被忽視的因素。在這裡,我們來試著對程式設計師的性格和可能命運做一歸結,當可為有心則戒。綿羊型的程式設計師 這型別的程式設計師每天有點糊塗,也不知道應該幹點什麼。不是很有上進...