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