程式設計即是有序地組織計算指令,使之完成合乎預期的事情和效果。
怎樣學會和提公升程式設計技能呢?中國武學講究內功心法和招式變術。招式變術是千變萬化的,而內功心法則穩定而綿延不絕。內功心法的深度決定了可以學習的招式變術的上限高度。學習程式設計亦如此道:具體的技術是招式變術,而計算原理和機制是內功心法。習得內功心法,才能更好地掌握各種高階招式。
一、 邏輯語義與物理語義
指令的邏輯語義與物理語義是程式設計的出發點。邏輯語義是指從問題和自然理解的角度的語義,物理語義是指從計算機儲存和執行的角度的語義。比如, int i = 4 的邏輯語義是在程式中建立乙個初始值為4的整數變數,物理語義是在計算機記憶體中分配了4個位元組,值為0x00000004. 程式語言提供了從指令的邏輯語義到物理語義的語義對映,而我們通常是使用程式語言從邏輯語義上進行程式設計的。api是針對特定技術系統的邏輯語義,雖然功能更強大,但本質與拷貝資料的原子指令沒有區別。當編寫一行**時,應該理解它所指代的物理語義。
二、 編碼與解碼
編碼與解碼是在計算機中表示和還原世間萬物的方法和技術。 要在計算世界裡解決現實世界的問題,就必須將現實世界的事物對映到計算世界裡,就涉及到編碼問題;要將計算世界的解對映到現實世界,就涉及到解碼問題。計算機中最基本的資料表示採用二進位制,即一系列的01串;以二進位制來編碼世間萬物,這不能不說是個思維的奇蹟!
三、 資料結構與演算法
理解程式語言的邏輯-物理語義之後,下一步要掌握的兩大**是資料結構與演算法。 資料結構是程式中儲存和組織資料的重要法寶,而演算法則是在資料結構之上設計的操作序列。資料結構與演算法是問題求解的基礎,是編寫大型程式必不可少的要素,是計算世界的基石。
四、 設計模式
熟悉基本資料結構和演算法之後,接下來要學習設計模式。
編寫小型程式, **纏成一團沒有關係; 但是編寫中大型軟體系統時,若缺乏設計模式的輔佐,**組織就會亂成一團義大利面,難以修改、擴充套件和維護,系統很快就會腐化成沒人想動它的廢棄物。 設計模式是培養物件程式設計的結構化的思維體操,直接產出是各種應用框架。
五、 模組化與封裝
掌握程式語言、編譯碼、資料結構、演算法、設計模式,基本上能夠勝任中小程式的構建了。不過,要駕馭中大型軟體系統,就要學會將已實現的通用邏輯流(資料結構、演算法、函式、方法、物件、**結構、業務邏輯等)進行模組化與封裝,成為可復用的模組,並仔細設計模組之間的互動關係。
六、 程序與記憶體
當構建和執行程式時,應當理解程式的執行機制。理解程序與記憶體的管理是必經之途。進一步地,理解程式所占用的cpu,記憶體,磁碟io, 網路等資源以及程式的響應時間和併發吞吐量也是必要的。知其然而知其所以然。
程式設計技法千變萬化,但萬變不離其宗。 掌握了程式設計的六個最基本內功心法,可以開始接觸更廣泛的技術招式:
比如資料庫, 管理和檢索大量有序記錄的技術;
比如正規表示式, 靈活操控文字的技術;
比如socket程式設計, 網路程式設計的基本技術;
比如多核程式設計,併發控制多工執行的基本技術;
改善命運的十六個妙方
前言 教育 什麼是教育呢?不是現在從小學 大學 研究生所學的,那只是知識技能培訓。教育是人文 倫理道德觀念的培養 普及。教育的目的是要明了人與人之間的關係,明了人與宇宙自然的關係,明了因果法則。也就是說,教你怎樣做人的才是教育。科技不能興國,教育才能興國。科技發展了,我們是否就沒有煩惱了呢?社會就能...
PHP的十六個魔術方法
php中將兩個下劃線 開頭的方法稱為魔術方法,這些方法在php中充當了舉足輕重的作用 魔術方法包括 construct 類的建構函式 destruct 類的析構函式 call 在物件中呼叫乙個不可訪問方法時呼叫 callstatic 用靜態方式中呼叫乙個不可訪問方法時呼叫 get 獲得乙個類的成員變...
十六個經典面試問題問答思路剖析
面試過程中,面試官會向應聘者發問,而應聘者的回答將成為面試官考慮是否接受他的重要依據。對應聘者而言,了解這些問題背後的 貓膩 至關重要。本文對面試中經常出現的一些典型問題進行了整理,並給出相應的回答思路和參 讀者無需過分關注分析的細節,關鍵是要從這些分析中 悟 出面試的規律及回答問題的思維方式,達到...