在一次面試中與主管聊到了什麼是程式設計能力,這是乙個值得思索和回味的話題。什麼才是乙個程式設計師真正的程式設計能力?或者,非科班程式設計師與科班程式設計師相比差在**?
作者認為,程式設計能力分為兩個方面:理論基礎和系統設計能力。在當前的技術水平上,繼續提高實力需要一「上"一"下":"上"是往巨集觀方向走提高系統設計能力,「下」是往微觀方向深挖夯實基礎。
理論基礎是指程式設計師需要掌握的關於計算機和程式設計的基礎知識,包括計算機組成原理、作業系統原理、編譯原理、資料結構與演算法等。如果往機器學習、大資料、影象識別領域發展,還需要掌握高等數學、線性代數、概率分析、離散數學等數學知識。
雖然工作中,絕大多數開發任務都不會用到太多基礎知識,但這些基礎知識作為根基,決定了乙個程式設計師能否成為優秀的程式設計師。程式設計是一種抽象,程式是人類與計算機交流的載體,了解計算機才能更好地交流。數學是程式的基礎,擁有良好的數學功底才能設計出合理、高效的演算法去解決問題。
系統設計能力是對問題進行抽象並設計出合理實現方案的能力。擁有良好的系統設計能力是成為軟體架構師的基本要求。雖然有很多成熟的框架可供程式設計師使用,如 spring、mybatis、dubbo 等,但通用框架解決的是一類常見場景的抽象問題,工作中遇到具體需求仍然要求程式設計師自主設計。
系統設計的好壞直接影響專案的長遠發展。隨著業務的發展,對相容性、併發性、可用性、擴充套件性、伸縮性等會有越來越高的要求。真正達到極限的時候,不可能推倒重來、不可能冒著風險進行大規模的重構,因此系統設計終將成為瓶頸,必須有好的程式設計師進行良好的設計才能支撐起不斷發展的業務規模。
流行的開源框架往往規模巨大,凝聚了很多優秀程式設計師的智慧型,模組劃分合理,擁有良好的架構設計、恰到好處的設計模式、安全高效的併發處理、值得學習的程式設計思路。深入研究開源框架能夠提供系統設計能力。
關於程式設計能力的思考 | 後端開發那點事兒
程式設計思考 什麼是程式設計能力
經過這兩次業務開發之後,現在對於程式設計有了更加深入的理解。回想起在最開始學習程式設計基礎的時候,演算法導論的老師講到最重要的是程式設計的思想,不論我們學習什麼語言,使用什麼工具程式設計,最核心的還是你的程式設計思路是怎麼樣。當時只是聽到,現在是確實的感受到了。下面我就來梳理一下我的基本感悟。業務理...
程式設計思考 什麼是程式設計能力
經過這兩次業務開發之後,現在對於程式設計有了更加深入的理解。回想起在最開始學習程式設計基礎的時候,演算法導論的老師講到最重要的是程式設計的思想,不論我們學習什麼語言,使用什麼工具程式設計,最核心的還是你的程式設計思路是怎麼樣。當時只是聽到,現在是確實的感受到了。下面我就來梳理一下我的基本感悟。經歷了...
關於XP程式設計的思考
開發十年,就只剩下這套架構體系了!其實xp程式設計,聽起來很酷炫,無非就是將更多的開發資源由文件撰寫轉移到 的編寫 測試與code review上 而且xp程式設計是摒棄加班的,認為加班是摧毀開發創造力的一種嚴酷的方式。個人認為所謂xp程式設計,就是充分調動開發的工作積極性,在處理繁雜業務的同時也不...