計算機專業的學生編程練習從哪裡開始?

看到知乎上有前輩說過 一個合格的計算機學生畢業之前必須要寫到10萬行代碼。本人現在大二,可以寫一些簡單的c++程序,想大量練習編程。請問有什麼平台可以讓自己有目標去練習呢?


去做遊戲,譬如說伊蘇II這樣的,適合C++練手。這種程序,規模適中,邏輯複雜,涉及到很多跟系統交互的知識,但是用到的技術點不多,最適合拿來訓練編程水平了。


程序員進階三大路(bi)徑(ge):

操作系統,編譯器,圖形學/渲染器/引擎

為啥是這三大?

1. 看起來高大上

2. 需求相對明確

3. 有各種層次的案例能夠模仿

4. 結構簡單,邏輯微複雜

總之就是好寫又裝逼。。。。


我的經驗是:

寫遊戲,那些簡單而經典的遊戲,比如:

  • 貪吃蛇

  • 俄羅斯方塊

  • 連連看

  • 迷宮尋徑

等等。

思路是:你會簡單的C++,可以學習OpenGL、Microsoft DirectX,選擇一個方向實現這些遊戲,然後拿給你同學、弟弟妹妹們玩,叫他們給意見,緊接著繼續改,直到大家滿意。

編程涉及到的點

  • C++基礎,指針、函數、類等等基本概念要真知道
  • 了解圖形學方面的API,能編程繪圖、GUI設計等等
  • 把演算法應用於實踐,比如迷宮尋徑,最短路徑怎麼算,迷宮圖怎麼來生成等等
  • 遊戲存檔、多用戶處理,是不是要用到SQLite來存儲數據等等
  • 不滿足,把遊戲轉轉平台,OS X、Linux系統下再嘗試下,你會學到更多,最好比較著來

別說這樣很簡單,但是我相信真正做起來會很鍛煉人的,至少你能夠深度入門編程可以做些什麼

至於ACM,你說你現在大二,應該開了「數據結構」課程,可以去刷OJ排名吧!找簡單的開始,做300題左右,如果你還有興趣和激情,那就繼續,找團隊一起刷ACM、參加競賽什麼的;沒有興趣、沒有強勁的隊友,還是算了吧!

完!


怒答,本人也是大二狗!

會c++說明你學的精啊,你可知我兩年學了什麼,C會一點點,c++會一點點,JAVA會一點點,Python會一點點。。。。學的太雜了有沒有啊!!!

當然我現在在做Android,所以只能給你一些意見,你要是真喜歡編程的話,可以從網上直接找一些項目做(當然不是接項目,而是照著別人的需求自己做著玩),只是打代碼是永遠無法進步的啊!(當然基礎演算法和數據結構還是需要勤練的)

也許你會說你只會一點點C++,怎麼能做項目呢?但是尼瑪我大一剛進學校就做Android項目了,

我可是一個文科生啊,以前只是喜歡玩網路遊戲而已啊(允許我做一個姚明的表情)

但是就是這樣,我在三個月內把ES文件瀏覽器模仿了出來,並且能看各種文件,還能收發以及搖一搖截圖,這在以前簡直是不可想像的。

-----------------上面都是我的發泄而已------------

你想有目標去練習,其實到處都是目標啊,你可以去github上,對著各類大神的項目照抄,對,就是抄(那些代碼不精通誰XX能寫出來啊),然後就是分析代碼了,這是最重要的了,因為除非你是一個非常,怎麼說呢,就是認真的人,否則誰能把C++的基礎演算法和數據結構搞得透徹啊。(當然也不是沒有T_T),分析完了之後就是給代碼寫注釋,這真是一個好方法呀,簡直贊,寫完之後給朋友看,看是否別人能通過你的注釋理解項目,這樣你就能找出不足,而且當你把注釋寫的完美的時候,我相信你寫代碼的能力也不會差了

當然如果你覺得不合適的話就去看譚浩強的書吧,不是死看,而是邊打代碼邊找錯誤,你懂得→_→

ACM的題目我覺得吧,至少不是適合我的


我覺得剛剛學習編程的時候,把精力放在演算法的實現比較好,把基礎打好在以後的幫助會非常大,而且工作面試也主要考這些啦。;-) 這裡推薦做ACM的題目和翻看一些演算法書。


跟著vczh造輪子啊!


跟著做習題?把你遇到的問題用代碼解決,查找文件,文件內檢索,網路發包收包等等。
再進階就是自己去發現需求了。
自己把已有的知識結構利用上,排序,文本匹配,相似度計算,網路容錯性等等。
以上都很基礎,檢驗個人動手能力而已,但是越基礎的東西越考驗思維全面性,儘可能不用標準庫吧。
希望有幫助。


推薦閱讀:

計算機專業如何自學好以及職業規劃?
非計算機專業,正在自學前端中,可以通過哪些途徑彌補自己在計算機基礎知識上的不足?
如何規劃研究生三年最後成為谷歌軟體工程師?
大學畢業離開家鄉到北上廣工作打拚的程序員們都是怎麼規劃自己的人生的?
大學計算機專業怎麼自主學習?

TAG:大學 | 計算機專業 |