標籤:

學C++真的需要看那麼多書嗎?


一般情況下,同類型的書認真看完一本,再加上一定量的練習,水平就可以完爆一多半書單愛好者。


不會。C++主要靠練,只要你練得夠多,大部分書其實是可以被經驗代替的。當然前提是你真的花了非常多的時間,而且對自己的要求很高——不在於如何做出軟體,而在於撰寫代碼本身。很多人都秉承著一種「只要東西搞出來了,怎樣都可以」的信念。工作可以這樣,但是學習也這樣肯定要大打折扣。如果你是一個這樣的人,那你過了十幾年可能就會開始疑惑——為什麼我付出了這麼多的努力卻比別人爛那麼多。有很多知識是在一種不功利的心態下才有可能被你發現並學會的

我在學習C++的過程中,除了語法相關的書籍以外,擺明了只跟C++有關係的書也就讀了《深入理解C++對象模型》一本(當然剩下的兩米多都是general的東西)。後面那些在接觸到其它流行的書籍的時候,我翻了一下,大部分都不用看了。因為我之前「浪費」了很多時間去重新發現了他們。

工具的使用技巧跟學術理論是不一樣的,技巧只要你肯花時間,自己發現是完全沒有問題的,弱智也可以做得到。

當然這樣也有壞處,就是我如果看了那些書,那麼本來可以更快的學會C++。

不過倘若我當時看了這些書,也有壞處,就是同樣在「學會C++」的前提下,我強迫自己練習的時間就變短了,很多C++以外的知識可能就沒有機會接觸到,然後就干別的事情去了。


都看過了又告訴你不用看,別聽他們的!

語法的書得看一本吧,還真以為騎車呢,上來就能跑。

系統類的書得看一本,要不你用了個socket()都不知道哪來的。

數據結構,演算法也得看看吧,你天天用map,不知道map是什麼東西,你用的放心嗎?

設計模式也得看看吧,我看了別人的代碼,我就想,靠,為什麼這麼寫,直接一點不就行了,搞得哥好不容易看明白怎麼調用的,然後問題來了,他幹嘛這麼寫呀。是設計模式,人家通用的方法,你要是懂了不是一眼就明白了。

我經驗太少,感覺看書很重要,當然了,有些知識點直接網上看更直接。


我看過的C++書,其實很有限。

入門:一本極其古老的C++和圖形混搭的書。介紹語法也介紹如何用DOS下的CGI庫。

進階:和別人沒啥不一樣。Effective C++/More Effective C++/Effective STL。

深入:C++ Templates/C++對象模型。

就這些。TCPL沒看過,C++ Primer沒看過。因為知道這些書的時候已經過了入門階段。剖析STL沒看過,因為我自己剖析的。

然後靠的這個


不,de你必須看。


真不需要看那麼多書,多寫代碼,弄明白每行代碼都是什麼意思,類庫方面都看官方文檔即可


不需要,很多特性知識,你讀書的時候不會理解,必須要經過熟練的使用才能明白其中的設計,另外絕大部分需要你讀很多書的知識你日常都不會用,慢慢的生疏了,書也就白看了。

工作中需要做什麼就做什麼,把小模塊儘可能的寫完美,有這個追求就可以了。


看你如何定義熟練使用了。

如果你寫的幾萬行代碼,都是在大公司符合公司標準,並且有足夠實力的人review過的話,那你就不需要看很多書了。

重點不是看書這個行為。而是C++需要學很多東西,學的方法可以是看書加自己實踐,也可以是工業界的實踐(無非是把看書變成了別人指出以及給你講)。

看書可以讓你在實踐中醍醐灌頂。盲目實踐容易在錯誤的方向越走越深。很多坑,不讀書又沒人和你說過的話,你摔了都不知道坑在哪裡。

當然這是廣義來談,不是說題主,如果你通讀過primer,已經算是讀過很多東西了。至少 effective C++最早的那本中大多數的內容,你看一眼標題和第一段就可以過了。


原先我也以為不用那麼多。

直到看到老司機設計的代碼比我穩定比我美觀比我好維護還尼瑪比老子寫的少的時候,恍然大悟他媽寫C++多看點書真是jb有用。


不需要看很多,但也不是說不看,有的書必看

1 先看一些書,入門,了解各種特性和代碼基本結構,以及一些原理性的(宏,模板編譯器是怎麼個處理方式等等)

2 練,多寫程序,做簡單的遊戲,刷簡單題都可以,掉坑後要長記性

3 深入看內存模型、重要的標準規定、別人的經驗等,因為這些從經驗比較難得到,或只能得到模糊的感性印象

如果有其它語言的大量實踐經驗,步驟2可以重點放在語法熟悉上,否則還是得多練,順便練習自己的代碼能力


matlab好學吧,用Matlab編好程序然後自動生成C++。然後修改一下就可以了z

////

最重要的是Matlab生成的代碼很規範,代碼的規範和可讀性是非常重要的。


理論學習和實踐缺一不可,當你發現你目前所做的事無比輕鬆或者無比困難的時候你就需要讀書了。如果當前的問題對你來說有點吃力但又不至於無從下手,就應該以練習為主了。至於怎麼讀書,每個人情況不一樣。有的人讀完一本書不需要讀第二遍,這種人搜集書單有益無害。有的人比如我,一本書只讀一遍的話別說記憶了,有的知識點甚至無法理解,那麼這種時候還追求閱讀量就沒什麼意義了。


因人而異。

科班出身且專業技能不差的,主要靠練習,當然讀書也沒壞處,特別是眾人推薦的。

如果是野路子程序員,看書是必須的,而且不僅C++方面的,其他計算機科學的書,比如操作系統和數據結構,非常重要(見過所謂C++程序員寫出大把的C風格代碼,從不用多線程,數據結構亂用,效率低的想砸電腦)。


Accelerated C++;學習C++:實踐者的方法(Beta1)


要啊,這可是身世都要一本專著來說的語言啊。

除了這獨一門,我就問還有誰?


不看書當然可以啊,學好了。

不過有上進心的人話就會發現,自己總結的那套經驗,別人早就已經寫在書上了。



把一本primer讀透真的是沒什麼卵用的事情。哦,不對,是有用的,應付考試。

事實上在實際軟體工程應用中,用到的知識也不僅僅局限於C++本身。第三方依賴庫很重要。

而在演算法競賽中,就我個人經歷而言,用到的知識不足primer的十分之一。

由此可見,按需學習很重要。各種功能可以了解,但不要花大量的精力去嘗試著讀透。與其坐定下來花一個下午苦讀重載運算符,還不如花一個下午研究一下Python,很多問題都能解決了呢。


認真看完c++primer,用word做好電子筆記方便日後查閱。做筆記的時候比較麻煩(我做了10萬字筆記……),但是遇到問題來查電子筆記超級爽,輸一個關鍵字能立即看到所有相關內容,一勞永逸,複習效率超級高。

然後把數據結構與演算法分析從頭到尾所有數據類型和演算法都自己實現一遍,變著花樣實現,組合實現。

做好這些脫離菜鳥妥妥的~


沒必要一定看很多書 但是學習不得不去看書 你從博客等上面學了 不看書另說。


推薦閱讀:

既然建議盡量避免使用goto語句為何C++還要支持goto呢?
c++ ,如何按照不同的要求調用標準庫sort函數排序?
在C#中,如何實現跟native dll 中途的線程間通信?
學C#需要學好C++么?
c++中子函數的局部變數在函數結束後是否會銷毀變數的內容?

TAG:C |