標籤:電腦語言 英文單詞 軟體開發 二進位 it行業
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/7F/F7/wKioL1cy_KjBrhVXAABoL-OAbfo636.jpg" title="001.jpg" alt="wKioL1cy_KjBrhVXAABoL-OAbfo636.jpg" />
很多人學了C語言,C++,Java仍然不會編程;而有些人沒有學過電腦語言,但有編程的天份;這中間到底缺了什嗎?
我們來研究一下3個問題:
1.首先我們要瞭解電腦能完成的工作;
2.瞭解每種電腦語言在做什麼;
3.如何通過電腦語言讓電腦替我們做什麼;
1.電子電腦最直接能做什麼工作:
電子電腦能直接完成的工作如果細化看,就是在玩位元;
a.把位元按位進行左右移動;
b.對位元中的位進行<與,或,非,異或>4種操作;
c.讀地址空間內的位元當指令動作;
d.讀地址空間內的位元當資料操作;
e.儲存位元到記憶體空間
f.對位元進行算術操作,結果存到記憶體空間
g.......
總結一下,電腦的工作=資料輸入->計算和操作->結果輸出
2.電腦語言在做什嗎?
電腦語言只是為了方便書寫命令電腦動作的文法;
機器語言,把命令電腦做原始動作的指令,轉換成二進位碼形式,不容易看懂;
組合語言,把機器語言,轉換成英文單詞,方便閱讀識別,但仍不容易看懂;
面向過程語言,把組合語言,轉換成數學運算式的形態,
物件導向語言,把數學運算式,封裝成獨立的輸入資料輸出結果的模組;
面嚮應用語言,把對象模組,按照需求自動組合成應用組件;(正在發展中)
3.怎樣讓有限的電腦完成無限的工作?
電腦只能夠儲存和計算無符號二進位整數,但我們還是把有符號10進位數,浮點數,文字,聲音,圖片,視頻儲存到了電腦裡;這其中的關鍵,就是轉換;
電腦所能儲存的資料是有限制的,想辦法統統轉化成二進位;
電腦的容量是有限的,想辦法把相同的資料進行無損壓縮滿足容量;
電腦的字長是有限的,把超長的資料分解,給電腦分段計算滿足字長;
電腦的計算速度是有限的,研究一個快速的數學邏輯高效計算;
電腦的xxx是有限的,總有辦法可滿足;
軟體開發的編程思想
電腦的工作是有限的=資料輸入->計算和操作->結果輸出
1.跟據程式的需求,將輸入的資料轉化成電腦能接受的資料類型;
2.跟據電腦有限的工作能力,將計算和操作通過邏輯思維按步驟轉化成電腦的動作;
3.將結果按照要求轉化成輸出格式。
第1步,轉化資料類型,電腦語言已經準備了很多基礎資料類型和API;
第2步,邏輯思維養成;
第3步,逆轉資料類型,電腦語言也已經準備了很多基礎資料類型和API;
第1步和第3步,只要百度尋找,看例子就能很快掌握,大多可以分享和拿來主義,但第2步邏輯思維並不能一步登天,思想的養成需要勤奮和努力,和學習寫作文的方法是一樣的,要多看別人的代碼,嘗試著多寫代碼,電腦語言好學,但編程不是學出來的,是花時間寫出來的;好比會寫中國字,並不一定能寫出好作文。
程式:是為實現特定目標或解決特定問題而用電腦語言編寫的代碼;
以電腦的角度講,程式=演算法+資料結構
資料結構:指電腦儲存資料的方法(順序,鏈式,散列,索引)
演算法:在電腦有限的結構下,解決問題的具體方法和步驟
過程化語言程式基本流程
1.輸入資料
2.檢查資料合法性
3.資料計算和處理(演算法)
4.輸出結果
開發的痛點,就是演算法(邏輯思想)
電腦演算法可分為兩大類別:
數值運算演算法:求數值解,例如求方程的根、求函數的定積分等。(真正難)
非數值運算:包括的面十分廣泛,最常見的是用於交易管理領域,例書檢索、人事管理、行車調度管理等。(說難不難,但也不易)
總結:
軟體開發的編程思想,是一種邏輯轉化思想,並不是學電腦語言能學會,但可以從寫代碼中間領悟;首先要熟記和理解電腦語言的文法規則,才能將程式計算的邏輯準確的轉化成電腦語言的文法;最後要勤加練習,慢慢養成(極少數最強大腦除外);
原文連結:
http://http://www.xcore.icoc.cc/nd.jsp?id=15&_np=0_322_2
IT行業:軟體開發編程思想