很多人學(xué)了C語(yǔ)言,C++,Java仍然不會(huì)編程;而有些人沒(méi)有學(xué)過(guò)計(jì)算機(jī)語(yǔ)言,但有編程的天份;這中間到底缺了什么?
我們來(lái)研究一下3個(gè)問(wèn)題:
1.首先我們要了解計(jì)算機(jī)能完成的工作;
2.了解每種計(jì)算機(jī)語(yǔ)言在做什么;
3.如何通過(guò)計(jì)算機(jī)語(yǔ)言讓計(jì)算機(jī)替我們做什么;
1.電子計(jì)算機(jī)最直接能做什么工作:
電子計(jì)算機(jī)能直接完成的工作如果細(xì)化看,就是在玩二進(jìn)制數(shù);
a.把二進(jìn)制數(shù)按位進(jìn)行左右移動(dòng);
b.對(duì)二進(jìn)制數(shù)中的位進(jìn)行<與,或,非,異或>4種操作;
c.讀地址空間內(nèi)的二進(jìn)制數(shù)當(dāng)指令動(dòng)作;
d.讀地址空間內(nèi)的二進(jìn)制數(shù)當(dāng)數(shù)據(jù)操作;
e.保存二進(jìn)制數(shù)到內(nèi)存空間
f.對(duì)二進(jìn)制數(shù)進(jìn)行算術(shù)操作,結(jié)果存到內(nèi)存空間
g.......
總結(jié)一下,計(jì)算機(jī)的工作=數(shù)據(jù)輸入->計(jì)算和操作->結(jié)果輸出
2.計(jì)算機(jī)語(yǔ)言在做什么?
計(jì)算機(jī)語(yǔ)言只是為了方便書(shū)寫命令計(jì)算機(jī)動(dòng)作的語(yǔ)法;
機(jī)器語(yǔ)言,把命令計(jì)算機(jī)做原始動(dòng)作的指令,轉(zhuǎn)換成二進(jìn)制碼形式,不容易看懂;
匯編語(yǔ)言,把機(jī)器語(yǔ)言,轉(zhuǎn)換成英文單詞,方便閱讀識(shí)別,但仍不容易看懂;
面向過(guò)程語(yǔ)言,把匯編語(yǔ)言,轉(zhuǎn)換成數(shù)學(xué)表達(dá)式的形態(tài),
面向?qū)ο笳Z(yǔ)言,把數(shù)學(xué)表達(dá)式,封裝成獨(dú)立的輸入數(shù)據(jù)輸出結(jié)果的模塊;
面向應(yīng)用語(yǔ)言,把對(duì)象模塊,按照需求自動(dòng)組合成應(yīng)用組件;(正在發(fā)展中)
3.怎樣讓有限的計(jì)算機(jī)完成無(wú)限的工作?
計(jì)算機(jī)只能夠保存和計(jì)算無(wú)符號(hào)二進(jìn)制整數(shù),但我們還是把有符號(hào)10進(jìn)制數(shù),浮點(diǎn)數(shù),文字,聲音,圖片,視頻保存到了計(jì)算機(jī)里;這其中的關(guān)鍵,就是轉(zhuǎn)換;
計(jì)算機(jī)所能保存的數(shù)據(jù)是有限制的,想辦法統(tǒng)統(tǒng)轉(zhuǎn)化成二進(jìn)制;
計(jì)算機(jī)的容量是有限的,想辦法把相同的數(shù)據(jù)進(jìn)行無(wú)損壓縮滿足容量;
計(jì)算機(jī)的字長(zhǎng)是有限的,把超長(zhǎng)的數(shù)據(jù)分解,給計(jì)算機(jī)分段計(jì)算滿足字長(zhǎng);
計(jì)算機(jī)的計(jì)算速度是有限的,研究一個(gè)快速的數(shù)學(xué)邏輯高效計(jì)算;
計(jì)算機(jī)的xxx是有限的,總有辦法可滿足;
軟件開(kāi)發(fā)的編程思想
計(jì)算機(jī)的工作是有限的=數(shù)據(jù)輸入->計(jì)算和操作->結(jié)果輸出
1.跟據(jù)程序的需求,將輸入的數(shù)據(jù)轉(zhuǎn)化成計(jì)算機(jī)能接受的數(shù)據(jù)類型;
2.跟據(jù)計(jì)算機(jī)有限的工作能力,將計(jì)算和操作通過(guò)邏輯思維按步驟轉(zhuǎn)化成計(jì)算機(jī)的動(dòng)作;
3.將結(jié)果按照要求轉(zhuǎn)化成輸出格式。
第1步,轉(zhuǎn)化數(shù)據(jù)類型,計(jì)算機(jī)語(yǔ)言已經(jīng)準(zhǔn)備了很多基礎(chǔ)數(shù)據(jù)類型和API;
第2步,邏輯思維養(yǎng)成;
第3步,逆轉(zhuǎn)數(shù)據(jù)類型,計(jì)算機(jī)語(yǔ)言也已經(jīng)準(zhǔn)備了很多基礎(chǔ)數(shù)據(jù)類型和API;
第1步和第3步,只要百度查找,看例子就能很快掌握,大多可以分享和拿來(lái)主義,但第2步邏輯思維并不能一步登天,思想的養(yǎng)成需要勤奮和努力,和學(xué)習(xí)寫作文的方法是一樣的,要多看別人的代碼,嘗試著多寫代碼,計(jì)算機(jī)語(yǔ)言好學(xué),但編程不是學(xué)出來(lái)的,是花時(shí)間寫出來(lái)的;好比會(huì)寫中國(guó)字,并不一定能寫出好作文。
程序:是為實(shí)現(xiàn)特定目標(biāo)或解決特定問(wèn)題而用計(jì)算機(jī)語(yǔ)言編寫的代碼;
以計(jì)算機(jī)的角度講,程序=算法+數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu):指計(jì)算機(jī)保存數(shù)據(jù)的方法(順序,鏈?zhǔn)?,散列,索?
算法:在計(jì)算機(jī)有限的結(jié)構(gòu)下,解決問(wèn)題的具體方法和步驟
過(guò)程化語(yǔ)言程序基本流程
1.輸入數(shù)據(jù)
2.檢查數(shù)據(jù)合法性
3.數(shù)據(jù)計(jì)算和處理(算法)
4.輸出結(jié)果
開(kāi)發(fā)的難點(diǎn),就是算法(邏輯思想)
計(jì)算機(jī)算法可分為兩大類別:
數(shù)值運(yùn)算算法:求數(shù)值解,例如求方程的根、求函數(shù)的定積分等。(真正難)
非數(shù)值運(yùn)算:包括的面十分廣泛,最常見(jiàn)的是用于事務(wù)管理領(lǐng)域,例如圖書(shū)檢索、人事管理、行車調(diào)度管理等。(說(shuō)難不難,但也不易)
總結(jié):
軟件開(kāi)發(fā)的編程思想,是一種邏輯轉(zhuǎn)化思想,并不是學(xué)計(jì)算機(jī)語(yǔ)言能學(xué)會(huì),但可以從寫代碼中間領(lǐng)悟;首先要熟記和理解計(jì)算機(jī)語(yǔ)言的語(yǔ)法規(guī)則,才能將程序計(jì)算的邏輯準(zhǔn)確的轉(zhuǎn)化成計(jì)算機(jī)語(yǔ)言的語(yǔ)法;最后要勤加練習(xí),慢慢養(yǎng)成(極少數(shù)最強(qiáng)大腦除外);
原文鏈接:
http://http://www.xcore.icoc.cc/nd.jsp?id=15&_np=0_322_2
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。