會(huì)看程序但是不會(huì)寫(xiě),要怎么練習(xí)、學(xué)習(xí)?
網(wǎng)友解答: 能看得懂程序的大體思路,但是自己動(dòng)手編程的時(shí)候卻不知道該如何下手,這是一個(gè)編程初學(xué)者比較常見(jiàn)的問(wèn)題。這與程序員學(xué)習(xí)新的編程語(yǔ)言剛好形成了一個(gè)強(qiáng)烈的反差,程序員學(xué)習(xí)一門(mén)編程語(yǔ)言
能看得懂程序的大體思路,但是自己動(dòng)手編程的時(shí)候卻不知道該如何下手,這是一個(gè)編程初學(xué)者比較常見(jiàn)的問(wèn)題。這與程序員學(xué)習(xí)新的編程語(yǔ)言剛好形成了一個(gè)強(qiáng)烈的反差,程序員學(xué)習(xí)一門(mén)編程語(yǔ)言非常注重應(yīng)用,所以往往動(dòng)手能力比較強(qiáng),但是理論知識(shí)卻并不是特別扎實(shí)。
這讓我想起在多年以前,很多Java程序員在做某些項(xiàng)目的時(shí)候會(huì)被要求有SCJP(現(xiàn)在的OCJP)的認(rèn)證,這個(gè)考試看起來(lái)并不復(fù)雜,基本上都是選擇題,而且會(huì)告訴你選擇幾個(gè)答案,很多已經(jīng)使用Java語(yǔ)言較長(zhǎng)時(shí)間的程序員對(duì)自己充滿了信心,結(jié)果不少程序員都沒(méi)有通過(guò)考試,這就充分說(shuō)明一個(gè)問(wèn)題,編程語(yǔ)言的基礎(chǔ)部分也是有很多內(nèi)容需要仔細(xì)研究的。
所以,初學(xué)者能看懂代碼卻寫(xiě)不出代碼,主要的原因是實(shí)驗(yàn)做的太少了,編程不是通過(guò)看書(shū)就能學(xué)會(huì)的,更需要通過(guò)大量的實(shí)驗(yàn)才能建立起自己的編程思路,實(shí)驗(yàn)是學(xué)習(xí)編程語(yǔ)言的重要環(huán)節(jié)。編程語(yǔ)言是一種工具,未來(lái)是要天天使用的,所以能看懂代碼的意義并不大,能自己動(dòng)手把代碼敲出來(lái)才重要。
學(xué)習(xí)編程語(yǔ)言應(yīng)該一邊學(xué)習(xí)一邊做實(shí)驗(yàn),在搞清楚一個(gè)概念之后,馬上做實(shí)驗(yàn)把這個(gè)概念通過(guò)代碼驗(yàn)證出來(lái),然后再舉一反三多做幾個(gè)實(shí)驗(yàn)。比如通過(guò)某個(gè)方法(method)來(lái)完成數(shù)學(xué)計(jì)算,可以直接在方法中完成結(jié)果的輸出,也可以把結(jié)果返回到調(diào)用處,然后再打印出來(lái)。在這種反復(fù)實(shí)驗(yàn)的過(guò)程中建立起自己的編程思路,這才能夠更透徹的掌握編程語(yǔ)言。
我做編程工作多年,我會(huì)陸續(xù)在酷米寫(xiě)一些關(guān)于編程方面的文章,感興趣的朋友可以關(guān)注我的酷米號(hào),相信一定會(huì)有所收獲。
如果有Java、Python、Scala等編程方面的問(wèn)題,也可以咨詢我。
謝謝!
網(wǎng)友解答:會(huì)看程序但是不會(huì)寫(xiě),這不僅僅是新手會(huì)遇到的問(wèn)題,也是編程老鳥(niǎo)們都會(huì)遇到的問(wèn)題。
偽代碼剛開(kāi)始學(xué)些程序的時(shí)候,基本就是一個(gè)類,甚至只有一個(gè)方法(我就按照java來(lái)說(shuō)了),如果編寫(xiě)代碼困難,可以先寫(xiě)偽代碼。
什么是偽代碼?就是你的程序要實(shí)現(xiàn)一個(gè)功能,需要做幾步操作,每一步操作都要做什么。
例如要做一個(gè)功能,輸入兩個(gè)數(shù)字,輸出它們相加之和的和,偽代碼如何來(lái)寫(xiě)?
1.輸入A
2.輸入B
3.C = A + B
4.輸出C的值
下一步就是,把偽代碼翻譯成真正可以運(yùn)行的代碼。
多寫(xiě)能起步了,剩下的就是多練習(xí)了,剛開(kāi)始的代碼不一定要寫(xiě)的多好,都是在不斷的練習(xí)中完善的。
例如上面的例子,當(dāng)你代碼寫(xiě)完開(kāi)始測(cè)試的時(shí)候,可能不小心輸入了一個(gè)字母,程序報(bào)錯(cuò)了,那么自然而然的需要完善你的程序:
1.輸入A
2.判斷A的類型
3.輸入B
4.判斷B的類型
5.C = A + B
6.輸出C的值
在你不斷的學(xué)習(xí)和練習(xí)的過(guò)程中,你的寫(xiě)出來(lái)的代碼也在不斷的進(jìn)化。從剛開(kāi)始一個(gè)類一個(gè)方法,慢慢的會(huì)做一些代碼結(jié)構(gòu)的設(shè)計(jì),這時(shí)候?qū)懗鰜?lái)的代碼,也終于有點(diǎn)兒代碼的樣子了。
過(guò)了一段時(shí)間,可能是幾個(gè)月,可能是幾年,當(dāng)你覺(jué)得自己的代碼寫(xiě)的很漂亮的時(shí)候,看到了別人寫(xiě)的代碼,或者是一些開(kāi)源架構(gòu)的源碼,你就又會(huì)發(fā)現(xiàn)自己“不會(huì)寫(xiě)代碼”了。比如第一次看到maven構(gòu)建的項(xiàng)目。
這時(shí)候又需要開(kāi)始一段寫(xiě)偽代碼、不斷練習(xí)的過(guò)程。