作者spider391 (小乖)
看板C_and_CPP
標題Re: [問題] 我自學C++ 接下來我該怎麼走
時間Wed Feb 17 15:19:26 2010
: 我是買C語言教學手冊 第四版 和 C++教學手冊 第二版 (洪維恩)
: 我是先把C看完以後再看C++
: 然後我在今天終於看完了C++
: 我在想 我該不該買 c++ primer 4/e
: 我想問 我接下來該往哪個方向去走
該往哪個方向走,一路向北嗎?? XD (這也是我剛學程式的時候遇到的困惑)
靠自修學程式需要蠻大的決心與毅力,還要對抗外界酒肉朋友找出遊的誘惑~~
最好的情況是能夠找到工作,藉由工作的壓力,可以很快的入手
(至少前輩會幫你把執行環境都架好 ~~),再來由工作的內容再去學相關的
知識相輔相成。
看完那兩本書有空虛的感覺是當然的...
至少 C++ 不是光看一本書就能夠熟練的。(我現在大概同時在看三四本書)
我這邊提供幾個方向:
1. 如果以後工作想寫 driver,可以玩玩組合語言
參考書籍: Assembly Language for Intel-Based Computers, 5th Edition
http://kipirvine.com/asm/
可以學到簡單的計算機架構、高階語言是如何用組合語言實作出來的、如何使用
中斷、如何在 C++ 中使用組合語言。
2. 想寫圖形介面軟體:
C++ 的標準 I/O 只有 iostream,沒有提供圖形介面,
所以需要學習使用第三方 Library,像是 wxWidgets, MFC , QT , OPENGL .etc
當然學習 Library 也不是一蹴可幾,要看一大堆文件,
有時看了因為沒有範例碼也不知道怎麼用。
我推薦我目前在玩的 wxWidgets
http://www.wxwidgets.org/
wxWidgets 下載後 samples 資料夾內有大量的程式碼範例。
絕對沒有時間讓你空虛,包含資料庫,網路,圖片,以及各種元件的使用範例
配合 CodeBlocks IDE 來玩更是如虎添翼。 不輸 MFC
他的 tutorial 還有一個俄羅斯方塊程式,
可以研究它是如何用物件導向的方式去寫
3. 想要寫網路的話:
這個我不是很熟,不過可以從寫個聊天室開始,也是開是玩 linux 的一個好契機
可以找 Cormen 的書,學習如何使用 socket API。
4. 其他...
n大:我覺得語言只是實現想法的工具 重要的反而是背景知識。
這句話很正確,想要實現想法,不管用 C 、 C++ 、 Java 、 C#
都可以。但工具也是要熟練才是,畢竟工欲善其事,必先利其器。
不必說很計較所有語法的細節,要用在查就可以了,例如
C 的浮點數格式表示法... (IEEE 754?? 我考完是馬上還給老師)
但是其中的概念要有 (至少知道怎麼文件要如何看)
這也就是說,如果連基本的二補數概念都沒有,那...
有些基本功要有,推薦此書
"程式設計師的自我修養:連結、載入、程式庫 "
http://etaitbook08.pixnet.net/blog/post/30108377
這本書把整個程式執行的流程講得很清楚,讀完此書,以後遇到
編譯錯誤時,大概心底就有個譜了。
如果想把 C++ 學的好,那就要把 STL 給弄很熟 (資料結構的書要先看過)
會用 STL 後,應該就會覺得寫 C++ 是件很快樂的事情XD
有一堆書要看我推薦侯捷翻譯的
"泛型程式設計(Generic Programming)與 STL" (圖書館應該有QQ)
這本把 STL 的基本觀念講得很清楚。(正在 K 中...)
STL 熟了以後,就可以玩傳說中的 boost 了,用了 Regex 的類別你就不會再碰
perl 了 (科科),或是進入神奇的 Functional Language :lambda ...
另外除了 C++ 和其標準函式庫,對於開發環境的熟悉也很重要
你每次編譯都要按滑鼠嗎? 你注解一行一行的 key "//" 嗎?
每次開發新的專案都要重新設定 include path 以及 library 嗎?
"快速鍵"的使用也是很重要的 (如果魔獸很強的話,應該是很容易上手)
這樣會讓你覺得寫程式有點類似鋼琴般的迷人 (debug 時不在此狀況)
這樣學習 C++ "基本"工具,我想沒有一兩年砸下去是很難的,
這也是迷人的地方吧~~
除非像是 knuth 這類的好像天生下來就會寫所有的程式 (嘆)
"The Art of Computer Programming" 這本書不知道何時才可以規畫開始看(殘念)
======================================
程式員是條不歸路 但我依然要走下去
======================================
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.43.7.64
推 Arim:推 02/17 16:19
推 doncr:推 02/17 17:20
推 andyisman:寫ACM配STL真是輕鬆又愉快 ( ̄▽ ̄)/ 02/17 19:08
→ VictorTom:寫driver不一定要用asm, 大型的driver更是大部份的code 02/17 20:32
→ VictorTom:多是C/C++這種high level的code, 甚至firmware也差不多; 02/17 20:33
→ VictorTom:相對的, BIOS也許用到asm的機會更多一些@_@" 02/17 20:33
→ clanguage:現在大概只有bios跟寫DSP的人比較會用到asm了 02/17 20:41
推 VictorTom:CD完忘了回來補推....XD 02/17 21:10
推 softwind:靠自修學ASM是天方夜譚~ ASM需要的背景知識更多阿 02/17 22:10
→ suhorng:我就是自修ASM的啊... 02/17 22:16
→ suhorng:只怕有心人 02/17 22:16
推 snoopy0907:自己也想請問各位有沒有推薦用linux寫程式的書? 02/18 01:02
推 monkeyting:回樓上,Linux就直接抓code回來讀了,通常書都是工具了 02/19 00:08
→ monkeyting:太特別的東西也不會教到,自己多google別人的經驗... 02/19 00:09
→ monkeyting:嗯…寫driver已經是高手中的高手了,要會的domain 02/19 00:11
→ monkeyting:knowledge是如此的廣… 02/19 00:12