如何提高代碼能力


150行以內的程序保持較高的1Y率 
咱們先練到50行,然后練到100行。 
  
     在ICPC比賽中,個人能力方面,如果粗略地分的話,大致可以分為算法能力、代碼能力和查錯能力。那些大學才開始參加比賽的選手,寫代碼的基本功一般會比較扎實,主要瓶頸應該是算法能力。而對於OI轉ICPC的選手來說,代碼能力往往是最大的缺陷。隨着OI轉ICPC的選手逐漸增多,代碼能力的問題愈發暴露了出來。 
  
  
一、如何定義代碼能力 
  
     Comars曾經給代碼能力作過一個比較准確的定義。2004年暑假時,Comars曾經說過:他認為150行以內的題目,他的1Y率非常高,並且保持穩定;而當代碼長度超過150行以后,1Y率就開始急速下降了。如果我們畫出一條1Y率的曲線的話,150行就是一個轉折點。我們不妨認為,150行就是Comars當時的代碼能力。一年以后,經過努力,Comars把代碼能力提高到了250行。不過,這已經是后話了。 
  
  
二、如何提高代碼能力 
  
    我一直覺得寫程序和寫文章是一個對很好的類比。寫文章需要先從宏觀入手,構思文章的結構寫程序同樣需要。一個好的結構,就是一個好的開始。一個好的開始,是成功的一半。 
  
    一篇好的文章需要各種句式和詞藻的合理組合。體現到寫程序上來,就是一些單句以及三五行的小結構的熟練使用。這些都是需要平時總結和積累的。 
  
     但凡文章寫得好的人,一定看過很多別人寫的文章。同樣的道理,多看別人的程序,用心地去看,也可以提高自己的代碼能力。 
  
     我鼓勵隊員去看別人寫的程序,特別是像Comars這樣的選手寫的程序。從優秀的程序中,我們可以體會別人良好的程序結構,同時也可以學到很多寫程序的技巧——三五行的小技巧。在和Comars做隊友的兩年時間里,我通過看Comars的程序,學會了很多小技巧。逐漸地,我覺得我寫的某些程序已經和Comars有點相像了。 
  
     那么,如果身邊沒有Comars這樣優秀的選手可以借鑒,該怎么辦呢?其實沒關系。任何一個程序都是可以看的。一個程序,就算寫得再差,總還會有一兩個閃光點,要想辦法把它們找出來。另外,程序里寫得不好的地方,也要一一找出來。 
  
     讀程序,從某種角度來看,就像讀史。好的歷史是用來借鑒的;不好的歷史則應該引以為戒。讀程序也是一樣,擇其善者而從之,其不善者而改之。 
  

------------------------------------------------------------

-----------------------------自己的訓練目標-----------------------------

1 現階段寫代碼3-5行為一個思維原子下一階段以5-10行。即這3-5行腦子里想好,一遍寫對。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM