Home Contact Sitemap

Team Programming Dragon.編程龍

Programming Art、C++、Python、Django、LinuxDev、HCI、Graphics、Web2.0。讓我們成為編程界的朝田龍太郎吧。

Beauty is Our Business

A Birthday Salute to Computer Scientist Edsger W. Dijkstra.

半瓶醋的 C++ 教學(第一章.表):Reading List

既然本教學認為能夠在書上網路上找到的就從那裡找,這邊是建立正確觀念以及進行給予入門的引導以及 C++ 的巨觀,那是目前的書籍尚未能著墨的,因此,我們當然應該先列出究竟有什麼東西是可以在書上網路上找到的。

首先我建議初學者如果有心想要學好 C++,一定要擺一本書在手邊。網路上的資源固然多,但通常是屬於給你查某特定 function 或特定一支 library 的用法的,而不是從頭帶你。也有一些 tutorial 沒錯,不過基本上還沒有看過能夠如書一般既深且廣的。(但是如果只是想先瞧瞧 C++ 長個什麼樣子想要有個概念,那當然不必了,敝站很可能就是您最好的選擇,請參閱第二章何為編程、為什麼需要編程、第三章編程語言的選擇,在這裡我們講解 C++ 與其他語言的比較,並說明為什麼學 C++,第四章提到 Porgrammer 的自我修鍊,建議您可以看完以上三章,並在第五章跟著我們 step by step 一起撰寫您的第一支 program 之後再考慮是否要繼續深入學習)

坊間 C++ 的入門書籍非常之多。小有名氣的也不少,例如小螞蟻《C++ How To Program》或是《C++ Primer》。我個人入門是參考了《C++ Primer》。這類的書籍大多是可當 tutorial 也可當 reference,就是什麼主題都會涵蓋一點但不會太深入這樣。《C++ Primer》非常 comprehensive,在 reference 的面向作得很好,但在上一版的 3rd edtion 之前常有對初學者太過艱澀的批評,4th edtion 之後就改進很多,變得更加適合初學者閱讀。我自己 3rd edtion, 4th edition 都有一本,推薦給大家。

近年來寫 C++ program 的趨勢是 pointer (指標,一種操作記憶體的手法,詳後述)用得越來越少,所以像這類的入門書寫得也越來越簡單。如果要對 pointer 有更深入的了解(而且說實在話一個 C++ Programmer 何時必需寫 C 是很難講的,還是了解一下比較好),建議直接看 C++ 的堂哥 C 語言的書,比方這本 C 的 bible《The C Programming Language》(取作者名頭文字,這本俗稱 K & R)

網路資源當然也很多,不過我個人認為沒有《Dive into Python》之於 Python 這麼知名的線上 tutorial 在。建議大家可以自行 google “C++”, “tutorial” 等關鍵字找最順眼的即可。不過基本上我是覺得入門的時候書為主、線上教程為輔較好。因為 C++ 實在太深太廣,比較難像 Python, Ruby 一樣寫出好的線上 tutorial。

不過網路上有個東西一定要用一下,就是 STL 的線上查閱。後面應該會說的比較詳盡一點,但所謂 library 是一堆已經寫好的 code,包裝起來,你只要知道他的界面(函數名、參數列)長怎樣 call 下去他就可以幫你作很多事。但這界面通常是不會有人完全背得起來,再怎麼老鳥總也要查一下的。當然寫 code 時候帶本書是個可能的 solution,這本 Josuttis 的《The C++ Standard Library》是經典,非常建議把以上兩本k到一定程度之後認真讀一下這本,會用 STL 跟不會用 STL 開發效率可是差很多低。

不過要是你打算優雅的在咖啡店裡面一邊啜著咖啡一邊 coding 的話,帶著幾本磚頭書去就顯得有點遜掉了。這時候線上的 STL 界面就很好用,在對 STL 有基本認識的情況下,線上查閱基本上就足以滿足大部分的需求了(當然其他語言、其他 library 也是相同的道理)。在這邊推薦 C++ Reference 以及 SGISTL Programmer’s Guide

下一節〈第一章.裏〉我們會繼續談一下進階的 reading list。

Tags: ,

. 27 May 08 | C++


Reader's Comments

  1. N.C |

    站長你好
    小弟是C/C++的新手
    想請問通常要閱讀一本有關程式設計的書是否有良好的方式呢?
    像我一開始看C的中文書就覺得還ok
    但開始看The C Programming Language就有點不得其們而入 Orz
    也不是說英文不好 就是不了解要如何閱讀這本書
    C++ Primer我有買中文版 也有差不多的感覺
    不知道是要一個字一個字一頁一頁的慢慢啃?
    還是有需要時才拿來翻章節?
    或是直接看練習題 不會作再看前面敘述的部份呢?
    還望站長解惑~感激 m(_ _)m

  2. jutirain |

    我覺得學寫程式最好的方法是作中學,一個字一個字慢慢啃坦白說很少人有那個耐心(包括我 orz)。

    所以我建議 C++ Primer 從頭至少「翻」個兩三遍,不太懂的地方暫且先不求甚解無所謂,但越前面越基本的東西要搞得越清楚。目標是要知道 C++ 這個語言到底提供了「什麼」給 programmer。

    之後在實作的時候,應該會碰到某些部分不清楚的,或是有「啊,我可以用 xxx 來實作」的感覺的時候再回去細讀,這樣讀起來會比較有動力。另外,多看別人的 code 也很有幫助(網路上很多,由淺到深去看),或是像你說的一樣先看練習題,其實我覺得這作法也還不錯。

    如果你的目標是 C++ 的話 The C Programming Language 可以排在 C++ Primer 後面再看。前者最主要講 pointer 或是一些已經被放入 library 的東西,所以不看暫時影響不大。用熟了再回來看會對底層有更深一點的了解。

    Happy C++ programming! :)

  3. Team Programming Dragon.編程龍 » Blog Archive » 半瓶醋的 C++ 教學(第六章):開源流萬世一系不敗經典 Hello World 實作 |

    [...] Hello World 本質上是一支連玩具都稱不上的程式,但透過寫作,她可以讓我們了解編程的最基本流程,並確認環境設定無誤。我記得自己剛開始編程的時候對環境的設定反而比較苦手,不知道什麼部分該用什麼,不然就是知道該用什麼卻必需一直辜狗;相較之下,語法的部分一開始超簡單,看看書沒兩下就懂了,所以在這邊,如同第零章所述,我想補的是一邊書籍的不足,語法部分就請大家在第一章的推薦書籍之中自修一下。 [...]



Leave a Reply