徐州網(wǎng)站建設(shè)多少錢僅需500元(什么是編程,編程是用來干什么的)請問什么是編程,
什么是編程?百度百科的解釋是:編程是編寫程序的中文簡稱,就是讓計(jì)算機(jī)為解決某個問題而使用某種程序設(shè)計(jì)語言編寫程序代碼,并最終得到相應(yīng)結(jié)果的過程這樣的解釋是非常合理的:其中的關(guān)鍵詞是計(jì)算機(jī)、程序語言、結(jié)果。
我也從這3個方向說說自己的一些看法!由于自己認(rèn)識的局限難免出現(xiàn)錯誤,希望大家指正一:認(rèn)識計(jì)算機(jī) 計(jì)算機(jī)的發(fā)展大家也有所了解,在這里就不多費(fèi)口舌我們現(xiàn)在用的計(jì)算機(jī)CPU只能認(rèn)識0和1,這是目前的現(xiàn)狀(如果你能發(fā)明另一種機(jī)器,能夠識別更多的符號,那么我支持你,并由衷的希望你能有所成就)。
計(jì)算機(jī)由哪些部分組成,各有什么作用,少一個組成部件會有什么后果? 這些問題是非常深刻的,我們不一定要對他們了如指掌(不是不重要),但最起碼要有一些基本的認(rèn)識電腦只要有個CPU,主板,內(nèi)存就可以點(diǎn)亮加個軟驅(qū),就可以運(yùn)行DOS操作系統(tǒng)。
再加個硬盤,就可以把WINDOWS系統(tǒng)放到硬盤上運(yùn)行起來對CPU是如何工作,CPU做了哪些事情,CPU為什么只能認(rèn)識0和1,CPU的尋址方式? 對CPU我了解得不深,不敢隨意賣弄但有一個還是是需要知道一下的,CPU基礎(chǔ)計(jì)算只有3個:與,或,非。
這3個邏輯門實(shí)現(xiàn)了我們現(xiàn)在所有的計(jì)算機(jī)程序計(jì)算二、程序語言TIOBE 2016年12月編程語言排行榜:
據(jù)不完全統(tǒng)計(jì),全世界的編程語言就多達(dá)1000多種,我們學(xué)完也幾乎不可能,也沒有那個必要有人說一個優(yōu)秀的程序員至少要掌握6門以上的編程語言,其實(shí)想想還是有一定道理雖然一個人編程能力的體現(xiàn)并不是你會多少語言,而是你能寫出多少精妙的程序。
要想寫出精妙的程序,編程思想是必不可少的沒學(xué)過面向過程的語言如:c,你說你想通了面向過程,這得打個問號沒學(xué)過面向?qū)ο蟮恼Z言,你說想通了面向?qū)ο?,這還得打個問號當(dāng)然那種大神除外哈!拋開編程思想說編程語言就是耍流氓,語言本身就是思想的體現(xiàn)。
那我們就說說編程思想吧!1、過程性的編程思想計(jì)算機(jī)只認(rèn)識0和1 ,但是人們用0和1寫程序是非常困難的為了方便就出現(xiàn)了0,1的第一層抽象標(biāo)記:匯編語言目前的CPU只能執(zhí)行過程性的程序,任何高級語言都必須轉(zhuǎn)換成過程性的編程語言后再交給CPU執(zhí)行。
在匯編里主要有三個操作:比較,跳轉(zhuǎn)(goto),過程調(diào)用(call)為什么說它是過程性的編程思想,值得你去好好的體會一下不妨寫幾個算法的程序(在程序里面用到比較,跳轉(zhuǎn),過程調(diào)用),再來看看匯編程序的特點(diǎn),相信你會有所感悟。
2、結(jié)構(gòu)性的編程思想隨著人們解決的問題越來越復(fù)雜,匯編程序當(dāng)然束縛了計(jì)算機(jī)軟件的發(fā)展因此編程思想發(fā)生了一場革命性的變化,結(jié)構(gòu)性的編程方法出現(xiàn)了在結(jié)構(gòu)性編程思想的編程語言里面,C語言首當(dāng)其沖C語言里面有幾個能表現(xiàn)出結(jié)構(gòu)化思想的地方:分支(if), 循環(huán)(while,for),結(jié)構(gòu)體(struct). 只要你會用這三個,那么你就可以寫出結(jié)構(gòu)化的程序,但不一定你就了解什么是結(jié)構(gòu)化的編程方法。
什么叫做結(jié)構(gòu)化?為什么說goto會破壞程序的結(jié)構(gòu)化?結(jié)構(gòu)體有什么作用,你能說出結(jié)構(gòu)體的哪些好處? 這些都是值得認(rèn)真體會的地方別人給的定義不見得都全面還是自己理解比較靠得住結(jié)構(gòu)化編程里面最具代表性的書籍就要屬"數(shù)據(jù)結(jié)構(gòu)",具體哪本書比較好就不知道了,好像都差不多,只要是用C寫的就行。
C語言的"數(shù)據(jù)結(jié)構(gòu)"里面就是專門來講怎么用結(jié)構(gòu)性的編程思想來解決實(shí)際中的算法問題看完某些章節(jié),然后自己找個問題,再用程序去實(shí)現(xiàn)它多寫一些程序,會很有幫助還有需要說明一下,并不是所有的時候結(jié)構(gòu)化的編程一就定好。
3、面向?qū)ο蟮木幊趟枷氍F(xiàn)在該說說面向?qū)ο缶幊塘诉@個也是現(xiàn)在用得最多的編程思想什么是面向?qū)ο螅徒Y(jié)構(gòu)性的思想有什么不同?從程序語法上看,面向?qū)ο蟊冉Y(jié)構(gòu)性的程序多了兩個特性: (1)、 結(jié)構(gòu)體成員的私有化。
結(jié)構(gòu)化程序里面,結(jié)構(gòu)體的成員都是公有的然而在面向?qū)ο罄锩?,結(jié)構(gòu)體改稱為類,并且成員分為公有和私有兩個部分就因?yàn)檫@一點(diǎn)的不同,就產(chǎn)生了接口的概念接口不就是類成員的公有部分么?(2), 類的繼承因?yàn)槌霈F(xiàn)了繼承,才出現(xiàn)了多態(tài)。
然而就是因?yàn)槎鄳B(tài),才出現(xiàn)諸如:隱藏啊,虛函數(shù) …等等這些概念多態(tài)的出現(xiàn),能夠讓同一組數(shù)據(jù),在不同的階段,用同一種表達(dá)方式,執(zhí)行不同的操作如果把這個東西領(lǐng)悟到了,那么你會感嘆一句"原來程序是可以這么寫的".。
因?yàn)橐陨蟽牲c(diǎn)的變化,編程思想也隨之發(fā)生了巨大轉(zhuǎn)變它可以讓程序更適合人的思維方法來編寫面向?qū)ο蟮木幊陶Z言就很多了,可謂五花八門 :C++ 、 JAVA 、C#等這三種語言我都用過,下面說一下我用的感覺吧!他們的語法都出自于C語言,這對我們從C語言入手學(xué)習(xí)編程的很親切。
都說C++和JAVA有很大的不同,而JAVA和C#卻非常相似,你知道為什么嗎?最根本區(qū)別就在于垃圾收集器就是因?yàn)镴AVA里面有垃圾自動收集功能,所以JAVA不能和C兼容,而且也不能使用指針在C++中的值類型和引用類型是可以自己定義的。
如果對象被定義為值類型,那么當(dāng)編輯器自動把對象收集走之后,有時自己會一無所知如果對象被定義為引用類型,那么又要必須記得把它釋放掉,不然又會引起什么內(nèi)存泄漏的問題在JAVA和C#里面就不一樣,在這兩種語言里面,自定義的類,初始得到的對象只能是引用類型。
并且有垃圾收集器幫你回收垃圾對象所以就不會出現(xiàn)內(nèi)存泄漏的問題因?yàn)镃#比JAVA后出來吧,JAVA所具有的特性,C#基本上都有并且還具有一些JAVA所不具有的特性當(dāng)然在這里不是說哪個語言好,哪個語言壞其實(shí)他們都是來實(shí)現(xiàn)面向?qū)ο缶幊痰墓ぞ摺?/p>
在面向?qū)ο蟮木幊汤锩妫硇詴鸵獙?《設(shè)計(jì)模式》"了不過設(shè)計(jì)模式這個東西,不是你看書就能看懂的并且你硬套那些模式,不一定對你有多大的好處這個東西,只有設(shè)計(jì)做多了,才能有所領(lǐng)悟,自己得到總結(jié)總結(jié)多了,就會發(fā)現(xiàn)和書上的那些東西不謀而合,或許可能比書上總結(jié)得更好 。
好了,目前編程思想的發(fā)展就到這一步了將來的編程思想的會是一個什么樣子,我也不得而知希望有志之士能夠發(fā)明一種編程的思想出來,推動軟件業(yè)的發(fā)展,讓中國也來引領(lǐng)一下世界軟件的發(fā)展潮流大家走進(jìn)程序界的初衷是什么呢,這個我也不敢胡亂猜測。
但是有一點(diǎn)還是要的,那就是錢畢竟我們都是要生活的而往往能夠快速用來賺錢的都是一種應(yīng)用技術(shù)像windows編程,linux編程,WEB開發(fā)等等你掌握了其中的一門技能,就可以謀得一個職位,可能還可以拿到一個不錯的薪水。
然而如果你掌握了編程思想,那么那些應(yīng)用技術(shù)將一通百通(因?yàn)閼?yīng)用技術(shù)往往都是對特定的一些函數(shù)的調(diào)用,通俗一點(diǎn)就是調(diào)用API) 掌握了編程思想你將不在局限于某個特定的編程技術(shù),而是對整個軟件系統(tǒng)有了全局的把握,研究的不再是編程技術(shù),而是協(xié)議和規(guī)范。
就現(xiàn)在的發(fā)展看來,技術(shù)的迭代周期超乎想象的短深入了解程序思想還是很有必要的我們程序猿需要一顆不老的心三、結(jié)果這個結(jié)果 才是我們想要的到達(dá)這個結(jié)果的路很多,怎么走才最快最好最方便,一直是我們探索的在探索過程中才出現(xiàn)了計(jì)算機(jī)、才出現(xiàn)了程序。
這條路會越走越寬、越走越遠(yuǎn)我們深信看完上面的文字。你對“什么是編程?是不是有了屬于自己的答案?