關於編程能力的思考

編程能力

在一次面試中與主管聊到了什麼是編程能力,這是一個值得思索和回味的話題。什麼纔是一個程序員真正的編程能力?或者,非科班程序員與科班程序員相比差在哪裏?程序員

做者認爲,編程能力分爲兩個方面:理論基礎和系統設計能力。在當前的技術水平上,繼續提升實力須要一「上"一"下":"上"是往宏觀方向走提升系統設計能力,「下」是往微觀方向深挖夯實基礎。面試

 

理論基礎

理論基礎是指程序員須要掌握的關於計算機和編程的基礎知識,包括計算機組成原理、操做系統原理、編譯原理、數據結構與算法等。若是往機器學習、大數據、圖像識別領域發展,還須要掌握高等數學、線性代數、機率分析、離散數學等數學知識。算法

雖然工做中,絕大多數開發任務都不會用到太多基礎知識,但這些基礎知識做爲根基,決定了一個程序員可否成爲優秀的程序員。編程是一種抽象,程序是人類與計算機交流的載體,瞭解計算機才能更好地交流。數學是程序的基礎,擁有良好的數學功底才能設計出合理、高效的算法去解決問題。spring

 

系統設計能力

系統設計能力是對問題進行抽象並設計出合理實現方案的能力。擁有良好的系統設計能力是成爲軟件架構師的基本要求。雖然有不少成熟的框架可供程序員使用,如 spring、MyBatis、dubbo 等,但通用框架解決的是一類常見場景的抽象問題,工做中遇到具體需求仍然要求程序員自主設計。編程

系統設計的好壞直接影響項目的長遠發展。隨着業務的發展,對兼容性、併發性、可用性、擴展性、伸縮性等會有愈來愈高的要求。真正達到極限的時候,不可能推倒重來、不可能冒着風險進行大規模的重構,所以系統設計終將成爲瓶頸,必須有好的程序員進行良好的設計才能支撐起不斷髮展的業務規模。後端

流行的開源框架每每規模巨大,凝聚了不少優秀程序員的智慧,模塊劃分合理,擁有良好的架構設計、恰到好處的設計模式、安全高效的併發處理、值得學習的編程思路。深刻研究開源框架可以提供系統設計能力。設計模式

每週 3 篇學習筆記或技術總結,面向有必定基礎的 Java 程序員,內容涉及 Java 進階、虛擬機、MySQL、NoSQL、分佈式計算、開源框架等多個領域。關注做者或微信公衆號 backend-develop 第一時間獲取最新內容。安全

關於編程能力的思考 | 後端開發那點事兒微信

相關文章
相關標籤/搜索