能看懂代碼,就是自己寫不出來,怎麼辦?

oracle小哥


自己寫不出來,就代表還沒有真正明白和理解代碼,那麼題目中表述的看懂代碼,也只能是似懂非懂,但實際上還沒有真正的掌握對應的知識點。


學習編程,要有自己科學的學習方法:

  • 多看,多記

我們學習編程,都是從看別人代碼開始,所學的編程教材上,會對每個知識點都進行講解,配套也有對應的代碼例子進行說明。這個時候是需要記憶這些代碼的寫法,理清楚關鍵點。

  • 多問,多思考

絕大部分人都不是天賦異稟,不會存在看一眼就懂就會的人,所以遇到問題,看不懂,多問問老師,多問別人,難點記住了,消化理解後,才會在自己需要的時候寫出來。

有時候看到有意思的代碼和構架,還需要去查詢各種類似的代碼和說明,舉一反三的去思考這些知識點,加深記憶和理解。

  • 多總結

遇到不懂的代碼,自己一定要思考,也需要也按照例程一點點的將代碼敲出來,並對照是不是正確,編譯後效果情況。這個過程就是學習編程的思路和基本步驟。

所以學編程,寫代碼,你初步要理解下面的過程

1,理解編程這件事,這個是要幹啥,能做什麼事情,培養自己的興趣。

2,掌握用什麼開發軟件進行編程,這個安裝過程,安裝完了,怎麼新建工程,怎麼創建對應的文件。

3,編程的基本套路,也就是基本的一個軟件架子是什麼樣的,包含什麼頭文件,是幹什麼用的,怎麼定義變量,在int main(void)當中怎麼運行,打印printf()函數怎麼寫,將這個套路記住。接下來往這裡面加東西就可以了。掌握這個就可以hello world了。

4, 掌握一些語法,循環語句,加減乘除運算符,判斷比較等邏輯。


以上掌握,就可以開始自己獨立寫代碼了。


如何自己獨立去寫代碼

寫代碼前,先要將思路梳理清楚,分析理解需要實現的功能,然後將功能實現過程,轉化為你需要編寫的軟件流程圖。這個非常重要,能幫你梳理各個過程和運用到的知識點。

根據整理出來的流程圖,將靈活結合與運用。我基本上寫程序,都會整理思路,我一般畫流程圖,會用Microsoft Visio 軟件畫流程,等熟練掌握後,簡單的心理打草稿,複雜的就需要畫流程圖。這一點對於初學者來說,十分有必要。

還有要養成良好代碼編程習慣,養成代碼勤備註。有助於代碼管理和思路梳理。

來個總結:

多看,多寫,多交流。多思考,多總結。

結合這些,做點小項目。培養編程的成就感,越學越有勁,進步也就越快越大,漸漸也也就成為高手了。


科技電小二


能看懂代碼,就是自己寫不出來,很可能這只是你認為的“懂了”,並不是真正的懂了。


01. 細節能懂,但是整體不懂

每個編程語言的語法是有限的,如果是常用語法的話更是沒多少了,一個項目中,隨便拿出幾行代碼你可能知道是什麼意思,但是並不能說:你能看懂每一行代碼,就能看懂整個項目。你可能還需要知道:

  • 項目是做什麼用的?項目用到了哪些框架和組件?代碼是如何分層的?

  • 項目分成了幾個模塊?每個模塊的作用是什麼?模塊和模塊之間是如何配合工作的?

  • 細節上,至少要了解方法的作用?哪些地方可能調了這個方法?如果修改方法的邏輯,是否會對項目其他功能造成影響?

  • 如果是業務相關的項目,對數據結構的瞭解,也是非常有必要的。


02. 代碼能懂,但是業務不懂

如果是業務相關的項目,脫離了業務去看代碼是不切實際的。

  • 業務流程是怎麼樣的?系統在整個業務流程中處於什麼位置?上下游系統都有哪些?是如何交互的?

  • 業務模塊都有哪些?流程是怎麼樣子的?如果有前端頁面的話,需要按照前端--後端--數據庫這個完整的流程去學習。

  • 代碼上有些看起來不合理的地方,也需要結合業務場景來看;反過來也一樣,代碼看起來寫的很好,但是業務流程不一定對。


03. 看的懂,寫不出來怎麼辦

很多外行人,甚至程序員新手,會認為寫代碼最重要的是“寫”,其實想比寫重要的多,所以如果你寫不出來代碼的話,先反思一下自己是不是拿到需求之後就直接動手寫代碼了?

  • 個人認為,在正式敲代碼之前,你還需要:

  • 新功能還是對老功能的修改?

  • 如果是新功能的話,你需要從項目整體考慮這個功能;

  • 如果是老功能完善的話,需要對這個功能有充分的瞭解,本次修改涉及哪些代碼?對原有流程有哪些改變和影響?

  • 新增一個方法前,先確認有沒有現成的方法可以複用?修改一個方法之前,先確認會不會對其他功能造成影響?

  • 如果代碼分了多層,需要確認在哪一層進行修改,不要破壞項目原有的結構;

  • 甚至變量、方法起名,你也需要遵守代碼規範,看看項目其他的變量、方法起名是遵照的什麼規範。


總之,要想寫出好代碼,不僅要了解細節也要了解整體,不僅要了解技術也要了解業務,寫之前要多想,設計要充分。

我將持續分享Java開發、架構設計、程序員職業發展等方面的見解,希望能得到你的關注。


會點代碼的大叔


先從小項目入手,自己設計數據結構,自己設計對象,屬性,方法。

多練練就好了。

比如自己做一個電商小軟件。

一、先思考下,抽象出幾個對象:

1.商品product,

屬性:id,name,stock,price,description。

2.用戶user

屬性:id, username, account, email, phonenumber。

3.訂單order

屬性id, product_id, count, total_amount, user_id。

然後就可以設計數據庫啦。

畫一個e-r圖,生成個sql。

二、然後就思考有哪些方法:

1.buy(string productid,string userid,int count);

用戶購買商品的方法,該方法返回訂單號;

2.pay(string orderid)

支付

...........

然後用你熟悉的語言實現即可。

不要小看這個過程,這個就是寫代碼的核心。一旦你領悟了面向對象,領域模型設計,其他就都是語法,語法糖,常識,框架了。

我上學的時候就是強迫自己按照這個模式鍛鍊自己。畫了很多圖,寫了很多代碼,那個時候自己沒有電腦,就把代碼寫紙上,然後上機時敲進去,跟享受這個過程,這樣容易上癮。

希望對你有用。





全站程序員


程序代碼是主觀性很強的東西,同樣的一個功能,每一個程序員所寫出來的代碼都不一樣,所以那句名言“一千個讀者就有一千個哈姆雷特”在代碼上同樣使用。同時,代碼又是隻可意會卻很難言傳的東西。硬件原理,看的多了即使外行人也能指點一下,但是代碼只有編寫的人才清楚。這也使得很多人認為代碼很神秘。

1 代碼要多看、多練

在學習編程語言的時候,我們都會有這樣的經歷:老師在講每行代碼的時候,我們都能聽懂,但是要自己寫的時候,卻一條語句可能都寫不出來。所以,代碼除了要多看,還要多寫。在練習寫代碼的時候,從最簡單的功能開始,要搞懂每一條語句的含義,充分理解編程的思想,高清楚每一個常用函數的使用方法。其實編程者就是一名經理,每一個函數就是一個工程師,經理就是要發揮每一個工程師的優點去實現一個項目。這就要,經理多和每個工程師談話,熟悉每個工程師的做事方法、優點以及確定。用好每一個人。

2 編程之前要做好流程框圖

拿到一個任務後,千萬不要立即開始敲代碼,而是要規劃一下編程思想和流程,先把程序的流程圖畫下來。前文說過,實現一個功能的代碼方法有很多,最重要的是編程思想,一定要先把自己的編程思想、程序構架梳理好後之後再去填充代碼。否則,自己會陷在自己的邏輯裡出不來。

3 優化代碼、提高執行效率

同樣的功能,有的人需要一百行代碼,有的人需要七八十行代碼,而有的人可能只需要四五十行。有的代碼執行效率很高,而有的代碼執行效率卻很低。功能實現了並不代表任務就結束了,接下來要做的工作就是優化代碼,包括優化代碼結構、優化變量、減少全局變量等,同時通過測試來驗證代碼的邏輯防止出現BUG。

編程是一定要動手的,別人講千百遍也比不上自己的一次動手,代碼能看懂卻寫不出來就是因為動手少,不知道從何下手。

以上就是這個問題的回答,感謝留言、評論、轉發。更多電子設計、硬件設計、單片機等內容請關注本頭條號:玩轉嵌入式。感謝大家。

玩轉嵌入式


這個很正常,就像我們上學的時候,看老師講數學題一聽就懂,然後自己做題的時候一眼就懵。

學編程重點在於思路,可分為“三步走”

第一步:打好基礎

我個人認為,學習編程和學習英語很像,都要花很多時間去“書寫”。我們在照著書上敲的時候,不光要學著怎麼把代碼寫的規範,更要理解其中的函數和關鍵字的意思。大部分教材上都會把一段代碼分成幾個部分,然後每個部分的講解,這些內容要反覆去看去理解。,這是基礎,基礎需要不斷的鞏固,一定要經常翻翻前邊的東西做到溫故而知新。如果連int幾個字節都分不清,就不用考慮往下學了。

第二步:照貓畫虎

當能看懂程序,還能說出其中各個量的用法和意義時,第一步基礎就打的差不多了,可以自己學這些了。但這裡要注意,我們要做的不是僵硬的死搬硬套,而是去學習編程者的思路——如何解決問題的思路。只有理清楚了思路,才能將算法具象化。那麼該怎麼學習其他人的編程思路呢?想做到這點很簡單也很難,你需要做大量的練習,然後把自己的代碼和其他優秀的代碼去比較,想想別人為什麼要這樣寫,這樣做的好處是什麼。

在這樣的練習持之以恆,逐漸培養出編程的思路。很多初學者都在這一步放棄了,畢竟堅持才是最難的一件事。

第三步:總結歸納

不管什麼語言,什麼目的程序,一定記得加註釋!加註釋!加註釋!

在註釋裡說明了變量的意義,函數的作用和參數,會極大的方便以後的工作,不論是新增模塊還是維護。我見過不少同事偷懶或者忘寫註釋,後期在數萬行代碼中找bug的慘象……

迴歸正題,當我們有能力自己寫出代碼的時候,別忘了經常回去看看,變為和過去自己寫的代碼比較。你會發現當時自己覺得寫的賊Cool的代碼現在看起來是那麼的low。然後多做總結,編程說到底就是一個框:得出目的——分析需求——算法實現——程序輸出,很多程序在邏輯上都是類似的,過去的代碼也有很多值得借鑑的地方。


學編程不只是學技術,還是對一個人毅力和信心的考驗,希望大家可以堅持下去。

(都看到最後了,麻煩點個贊或者關注吧,謝謝~)


愛思考的奧特曼


代碼是非常抽象的東西,“程序猿”不僅需要有天賦還要後天的努力

寫程序是非常枯燥的事情,想碼出優質的代碼並不是一件容易的事情,如果想向“程序猿”的方向發展,就要靜下心來,多學、多看、多練了,只要肯付出,我相信肯定的會有回報的。也不是說每個人都需要成為頂級的“程序猿”的。對於很多人來說,碼程序只是一份工作或者興趣,如果要求不高,碼出自己代碼並不難。能看懂代碼,說明已經有一定的基礎,缺少的是練習。

萬事開頭難,首先要實現從“0”到“1”的脫變

不管是C,C++,JAVA,Python,PHP......,各種各樣的入門教程都是從"Hello World!"開始,可見入門是那麼的重要,只有入門了才有機會深入學習。我是做電子產品開發的,只會用C語言寫單片機程序,但我想其實的開發語言也是一樣的,同樣需要搭建開發環境,踏出"Hello World!"的第一步!

多練習很重要

很多朋友在學習寫程序的時候,都會找一些經典的程序來看,當然看是很重要的,可以吸收前輩們留下的精華。看慬比較容易,但能夠按照自己的想法單獨碼出來又是另外一件事了。比如看懂冒泡法的程序後,關掉所有參考,自己來碼一遍,就未必做到了哦!所以不管多簡單的事情,我們都要親自動手練習一下哦!就像學車或者英語一下,除了要多看,還要多練習!

制定計劃,每天進步一點

程序開發是一個不斷學習、不斷進步的過程,沒有終點,永遠都只有起點。如果下定決心向程序開發方向發展,就要堅持,絕不能"三天打漁,兩天曬網!"題主說已經能看懂代碼了,說明已經有定的基礎了,只要能夠制定計劃,堅持學習幾個月,絕對是碼出自己想要的代碼的!在學習過程,如果遇到困難時必須迎難而上,即使再簡單的問題,也不必害羞,可以向同事、朋友或者網友虛心的請教。

從簡單的項目開始,積累經驗

經過一段時間的學習後,感覺就會有點飄,覺得自己可以肩負重任,完成一些重要的項目的。其實還是白紙一張,還是完全沒有經驗的。對於新人,領導不會交託重要的項目,自己也不必恢心,即使再簡單的項目,也用心去做到完美。是金子總有發光發亮的一天!

歡迎關注@電子產品設計方案,一起享受分享與學習的樂趣!關注我,成為朋友,一起交流一起學習

  • 記得點贊和評論哦!非常感謝!

電子產品設計方案


——首先呢,我覺得你寫不出來的原因有兩種情況:

第一種情況是,你腦子是有思路的,但是你不熟悉所學語言的語法結構,之所以不會寫;還有一種情況就是,你可能懂該語言的語法結構,但是離開別人的代碼你就沒有了思路,無從下手。

編程的本質是棘手,建議你多寫一些代碼,即使是一些簡單的代碼,快速的增加自己對代碼的熟悉度和認知和對邏輯思維鍛鍊,寫得代碼多了,你就會總結出來一些規律來,這樣對於你以後寫複雜的代碼會有一定的幫助。多嘗試著寫一些小功能,小程序之類的,寫多了你就發現,其實寫代碼並沒有那麼複雜。


世界上最優秀的程序員也會遭遇無法解決的軟件工程問題,之所以碰到這樣的問題,並不一定意味著你缺乏技能或知識。多學多看,一個人的智慧永遠不如一群人的智慧,別人寫的代碼總有你學習的地方,建議你多泡論壇,多查度娘或者多看別人的視頻教學,善於整理和總結。世界上沒有一蹴而就的東西,只有經驗豐富了才能寫出號代碼。


TM野指針


我來說一下!首先任何項目不是一天寫完的,也不是任何新人上來就知道怎麼寫一個大的項目,這很正常!

但當你要開始寫一個項目或者一段代碼的時候,你先要明白自己要幹什麼?為什麼要這這個功能!這非常重要!最開始得時候先自己想著什麼就寫什麼,按照正常的思維寫唄!比如,你要計算一個人的平均交易額,你第一步先要獲取這個客戶id,然後你要通過這個id來獲取他的成交訂單記錄時間和金額,你就這樣寫唄!然後運行,可能會報錯,自己多寫寫就熟練了!當你寫的越來越多,你會發現之前的寫法很不好,有改進得地方。你就修改,慢慢的就變成大神了!這期間肯定需要問別人和查資料!關鍵你每一次問別人之後,你必須自己思考一下為什麼要這樣!不然沒長進的!

如果你是連最基本的語法或者框架都不知道,那你就得把最基本的教學視頻看一遍,然後自己跟著動手練一下!不能很看電影一樣!切記!


屍哥




你好,這是作為新手必然經歷的一個階段。

我們在學習英語時都有這樣一種感覺,當有一定的詞彙量時,看一下別人寫的英文文章比較容易看懂,但是讓自己寫一篇英文文章,卻感覺無從下手,你現在的感覺就類似學習英文的情況,為什麼會這樣呢?

能看懂代碼,只要學會編程語言的語法,記住關鍵詞即可。看懂代碼就像閱讀英文文章,本身不需要過多的思考,相對簡單。

但如果要自己編程,除了懂編程語言外,更多的是依靠經驗,只有通過多加練習,掌握各種編程處理問題的方法,到時候,你就會覺得寫代碼也不是一件多麼複雜的事情!

所以,多多練習才是王道,遇到一些編程任務時,先不要看別人是如何實現的,儘量自己實現,然後把自己編寫的代碼和別人的代碼相比較,學習別人好的地方,堅持一段時間後,你就會發現可以輕鬆編寫代碼了。



Gfilsxin


能看懂,寫不出來。這表明兩點:1,還沒看懂。2,實戰能力欠缺。

有你這種狀態的人不在少數。我能說的是,他們之看懂了其中的英文單詞,而不是程序的語法語義。

建議在做程序前,先進行基礎知識的培訓,網上或者實體培訓店進行培訓,真正搞清軟件的框架,IDE開發環境的使用,其中控件,消息處理,圖象處理,字符串處理,文件處理,或者更進階的,網絡,dll等製做方法。循序漸進。

開始寫小的app,把學到的都用上,從實用到美觀,逐漸形成自己的程序庫,為以後正式開發做準備。


分享到:


相關文章: