2011-02-17 102 views
0

我是第二年compsci大學生,和我的計劃正變得越來越大,而我要做他們的時間越短,我發現我的標記下降。規劃計劃的策略和工具?

我相信這不是因爲我沒有投入足夠的時間或精力,而是因爲我沒有創建更大程序的經驗。

第一年的課程對我而言是微不足道的(特別是第一學期),甚至第二個課程通常只有一個組成部分,可能有一兩個棘手的部分。

我現在給出的作業的一個示例包括製作一個vCard閱讀器,只給出標準,該標準採用.vcf vcard文件並將其解析爲結構。鑑於我們必須處理的結構和功能定義,這項任務的'硬'部分很多。值得注意的是,我們不得不處理一直持續到下一個(「摺疊」線)線,解析一個給定的線,妥善發現錯誤,並返回給定的代碼,並在恰當的方式管理多個指針,以確保一切都完成在結構灌裝前。

現在,我們已經瞭解了特定的工具,功能圖,在這裏列出的功能和基於是誰打來的,其功能將它們鏈接,和我發現這使我有我最近的任務,所以我就不說了需要跟蹤那些呼叫什麼的人。另一方面,我相信發生的事情是我不能確定如何處理這樣一個更大的任務,並最終重寫和重新思考我的代碼。這佔用了我有限的時間,導致在截止日期前沒有達到所有要求,或者測試不當。

因此,我要求任何策略或工具,我可以利用這些工作,使這些任務更容易。

如果它是相關的,我的大部分編程是在C中,因此功能,而不是面向對象。

+0

僅供參考,C是不是一個功能性的語言 - 它的當務之急或程序。函數式編程是非常不同的東西。 – Chuck 2011-02-18 00:58:45

+0

對不起,我的意思是程序。 – Blackbinary 2011-02-18 13:31:21

回答

3

編寫任何代碼之前,寫在紙上流程圖這表明你的程序的邏輯進程。然後,在將它寫在紙上之後,將其翻譯成代碼。這樣做可以幫助你:

  1. 想想你的程序需要做什麼。
  2. 幫助你看到一些問題,你的代碼提交到他們面前。
0

我發現,使用版本控制系統上的小項目,他們非常有幫助。它不會讓你更容易看到你的設計,但它會爲你節省時間,因爲你可以更自由地進行實驗,並且更少害怕破壞某些東西。它也將幫助你確切地看到你改變了什麼。任何分佈式版本控制系統都應該足夠適用於小型項目。 GitMercurial很受歡迎。 Darcs也不錯。

將它與一個很好的視覺差異工具結合起來,真正發揮它的最大功效。

+0

非常好的建議......但離題。 – 2011-02-17 23:24:46

3

這裏有一些指引,可以幫助您保持跟蹤:

  1. 要留意以前的任務中。這些東西通常建立在以前的東西上(如果不是在代碼中,那麼在概念上)。

  2. 由於規則#1推論,挑好版本控制系統(如Git或SVN),並學習如何使用它們的基本知識。學習編寫代碼版本將作爲一名學生和一名嚴肅的程序員都能幫助你。

  3. 儘量保持簡單。我記得我曾經有一個朋友想要給老師留下深刻印象,並且幾乎試圖重新設計STL。他最終與自己在做的事情糾纏在一起,錯過了最後期限,失敗了。

  4. 我知道你說你不OOP工作,但其中的一些概念可以適用於你在做什麼。如果你至少嘗試去思考的,你的代碼建模的東西條款和它們之間的相互作用,那麼你可以經常打破就像你在你的問題描述更簡單方面的.vcf語法上的問題。

  5. 具有良好的參考書籍。在大學我很幸運,我的學費大部分都是由學校支付的,所以我有一些額外的現金,我拿到了巴恩斯和諾布爾,並且儘可能多地購買參考書。今天,您大概可以完成我所做的免費在線電子書。但讓專家坐在你身邊肯定是有幫助的。

  6. 最後但並非最不重要的是,在我開始任何嚴肅的項目之前,我會用鉛筆和一張紙來展示應用程序的流程圖。我並不是想說你瘋了,但是認真的寫下一些盒子和箭頭會給你一個好的想法,讓你在編碼樹木時回顧一下。

我確定還有很多東西,但這些東西對我有很大的幫助。