如何在這個時代保持自己是個優秀的程式設計師?有這五個技能非常重要

如何成為優秀的程式設計師,這個問題我也曾經問過我自己,可惜我做的還不夠好,經常這麼反問自己的話,會提升你對開發流程工藝思考,同時沒事也可以問問身邊的是程式設計師的同事,我相信你們會引發一些有趣的討論,但是我個人認為掌握下面五個技能非常重要,看看吧,為了我們都成為優秀的程式設計師。

如何在這個時代保持自己是個優秀的程式設計師?有這五個技能非常重要

1、問題分解

程式設計很大程度上是來解決問題,但是寫程式碼之前,程式設計師需要弄清楚如何解決這些問題。一個優秀的程式設計師會嘗試把這些問題進行拆分,然後一部分一部分去開發,直到每個部分都可以很容易的解決。但是僅僅做到這些還不夠,一個優秀的程式設計師會發明一種工作模式,利用現有的標準化邏輯去開發,便於實現和測試。一些很複雜的程式,複雜部分的原因是程式碼實施不能完美的解決問題,而且程式碼難以理解。

當遇到難題建模,曾經採訪優秀的開發者:“很少有程式是不能修改的,但是如果你看一段程式碼,它往往看起來很複雜,很多人覺得無從下手,他們往往這是缺乏思考的一種表現,而我會捲起袖子試圖修復它,慢慢的其實這些都不算困難,而且很容易。”

如何在這個時代保持自己是個優秀的程式設計師?有這五個技能非常重要

2、情景分析

好的開發人員有能力考慮許多不同的場景。這既適用於程式中的邏輯,以及內部和外部事件可能發生。考慮不同的路徑的邏輯,他們會問這樣的問題:如果這個論點是零?如果這些條件是真的嗎?這是執行緒安全的方法嗎?發現軟體需要處理什麼型別的事件,他們會問這樣的問題:如果這個佇列變得滿了嗎?如果沒有響應這個請求嗎?如果其他伺服器重啟,這個伺服器重新啟動嗎?

優秀的程式設計師會問自己:“這怎麼能算結束呢?”說明他們還想測試自己的能力,相比之下,沒有經驗的程式設計師大多隻考慮自己,能夠暫時解決問題就行,當然大部分不可避免的意外情況發生,他們都有方法解決。

如何在這個時代保持自己是個優秀的程式設計師?有這五個技能非常重要

3、所示命名

程式設計在很大程度上由命名的事情:類、方法和變數。如果做得好,程式變得很大程度上是在自我記錄,這意味著程式的功能是非常清楚的執行原始碼。自我記錄的程式碼的一個作用是,它自然會導致許多較小的差錯,而不是幾個很大的功能缺陷,因為這些優秀的程式碼將存在很多的地方。

想出好名字要困難得多。我喜歡一句話:“計算機科學中只有兩個艱難的事:快取失效和命名的東西。“部分命名是很困難的,因為它需要清晰的在腦海中每個名字代表什麼。有時這是不清楚,但隨著開發的進行才會顯現。因此,重新命名命名一樣重要。”

命名的東西也還包括提出的概念,以及這些概念應該叫什麼。透過考慮周全,明顯命名概念一致地使用,編寫的程式才會變得更容易。

如何在這個時代保持自己是個優秀的程式設計師?有這五個技能非常重要

4、所示一致性

也許在程式設計的最大挑戰是管理的複雜性。一致性是一種戰鬥的複雜性。它減少了一些複雜性,允許我們看到模式和推斷出如何命名,使用和處理。與一致性,我們不需要用腦力來記住異常和隨機變化。相反,我們可以專注於重要的複雜性,而不是偶發複雜性。

一致性是很重要的。它適用於變數名和分組,命名方法,劃分成模組,目錄結構,GUI,錯誤處理,日誌記錄、文件等。例如,如果某些變數是相關的和一起出現(在宣告,方法呼叫或列在資料庫中)然後總是使用相同的順序。然後它變得更容易看到如果丟失,或者如果他們一直搞混了。對於一個操作,如果是calleddelete在一個地方,別叫它刪除在另一個地方——堅持相同的名稱。Steve McConnell也有一些好的建議在程式碼中使用精確對立完成。例如,開始/結束對立,啟動/停止。不要混合名稱從不同的雙(例如使用開始/停止)在處理相反。

矛盾可以介紹當修改程式。草率的程式設計師往往不注意如果他們新增是否符合現有的程式碼。優秀的程式設計師在確保看似無情的小細節是正確的,他們知道如何重要的一致性是整體對抗的複雜性。

如何在這個時代保持自己是個優秀的程式設計師?有這五個技能非常重要

5、學習

作為一個軟體開發人員,你需要不斷的學習。新增一個新特性之前,你必須理解它應該做什麼。將程式碼新增到現有的一個專案之前,通常你需要學習什麼現有程式碼,為了適應新的功能正常。你也必須瞭解周圍的系統,為了正確的介面。因此,學習能力快讓你更有效的成為開發人員。

此外,由於在軟體工程領域的發展速度是如此之高,有源源不斷的新語言,工具,技術和框架的瞭解。你可以認為這是好還是壞。弗雷德布魯克斯列出了學習的樂趣之一的將技能變成工藝,這一點我同意。學習新事物本身是令人興奮的。這也意味著生活中作為一個開發人員不會很無聊。

如何在這個時代保持自己是個優秀的程式設計師?有這五個技能非常重要

結論

所有上面的技能是通用的,沒有一個特定於任何一種語言,框架或技術。如果你有,你可以快速學習一門新語言或者工具,並編寫好的軟體環境。此外,因為他們在本質上是通用的,因為語言永遠不會滅亡,這些便是我的一些建議如何成為一名優秀的程式設計師。