自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一個實(shí)用主義者的觀點(diǎn):如何學(xué)習(xí)使用C++

開發(fā) 前端 開發(fā)工具
最近C++社區(qū)最大的新聞,毫無疑問就是最新標(biāo)準(zhǔn)終于Final Draft了,C++2011終于有望實(shí)現(xiàn)。可是,誰會關(guān)心呢?

國內(nèi)C++譯作圈比較出名的就這幾個人,劉未鵬PongBa,自從進(jìn)入微軟以后好像更加關(guān)注心智方面的研究,關(guān)于C++的文字幾乎就沒了。孟巖 http://blog.csdn.net/myan 也是很久沒有新博客文字,也少見C++方面的內(nèi)容。榮耀,好像也是非常低調(diào)。最出名的莫過臺灣的侯捷老師,他現(xiàn)在忙于企業(yè)培訓(xùn),估計(jì)沒啥時間寫新文字。這 些人里面關(guān)于C++最新標(biāo)準(zhǔn)的,還是劉未鵬在07年寫的C++0X漫談。

07年啊!!那時候房價還沒有這么高!!物價也沒有這么高!!!車也沒有這么多!!!路也沒有這么堵!!搞C++的程序員你傷不起啊!!!

瞎扯一下,回到正題: (一個初學(xué)者)如何學(xué)習(xí)以及使用C++。

看完coolshell的文字,以及劉未鵬曾經(jīng)寫過的《學(xué)習(xí)C++:實(shí)踐者的方法》http://blog.csdn.net/pongba/archive/2007/12/11/1930150.aspx

可以發(fā)現(xiàn)他們都傾向于這樣一種個人覺得并不很好的方式:列書單。

我在《漫談C語言及如何學(xué)習(xí)C語言》也列書單,但不僅僅列書單。一個初學(xué)者光靠看書,只能完成學(xué)習(xí)過程中30%甚至更少的進(jìn)度。

想學(xué)好C++,能真正把C++用起來,必須要讀、寫、看、說多種手段多種方法結(jié)合使用。

另外我個人對C++的態(tài)度,就是不要學(xué)習(xí)使用它的全部,把它的基礎(chǔ)部分掌握了就好,足夠用了。比如模板元編程這種高級話題,初學(xué)者不要牽扯過多,以免一葉障目不見泰山。學(xué)編程是干嘛的?如果是為了使用,那就學(xué)最核心最基本的那些好了。

在你學(xué)習(xí)C++之前,先明確自己的目的,為什么要學(xué)C++?為什么要用C++?可能是大學(xué)老師要你學(xué),可能是公司開發(fā)項(xiàng)目需要你學(xué)。如果沒有目的沒有需求,不要用學(xué)習(xí)C++來折磨自己了,學(xué)點(diǎn)英語,學(xué)點(diǎn)Python編程都比學(xué)C++好玩有用多了。

學(xué)習(xí)C++之間,還需要準(zhǔn)備一下練習(xí)環(huán)境。我這里偷一下懶,在《漫談C語言及如何學(xué)習(xí)C語言》http://sunxiunan.com/?p=1661 這里提到的開發(fā)工具全都支持C++開發(fā),所以你在里面選擇一個安裝就可以了。在Windows下開發(fā),我建議大家安裝VC2010和SP1(怎么搞到?別 問我,問迅雷吧),新版本雖然有些慢,但是支持Win7操作系統(tǒng),對C++標(biāo)準(zhǔn)支持更好。不是像有些人說的2003到2010沒啥變化,這種人估計(jì)從來不 看release note吧?!至于VC6,還是拋棄了吧。

還有一點(diǎn)想羅嗦一下,C++最好不要作為你的第一門編程語言,選擇C語言更適合。首先是你在C語言中學(xué)到的東西,基本上在C++都可以用,包括一直 遭人唾罵的MACRO宏。另外C語言入門級好書很多。而C++入門級好書不好選。如何學(xué)習(xí)C語言,看我《漫談C語言及如何學(xué)習(xí)C語言》吧,用心點(diǎn)的話,大 概需要半年到一年時間就足夠了。

第一階段,讀書。

建議大家先一次買齊下面5本書,其他書籍不對初學(xué)者推薦:

stanly lippman的《C++ Primer》

《Effective C++:改善程序與設(shè)計(jì)的55個具體做法:第3版 》

《C++標(biāo)準(zhǔn)程序庫—自修教程與參考手冊》侯捷孟巖翻譯

《More Effective C++:35個改善編程與設(shè)計(jì)的有效方法(中文版)》

《C++編程規(guī)范:101條規(guī)則、準(zhǔn)則與最佳實(shí)踐》

第一本書非常難選,我這里建議幾個候選者,讀者可以到書店去翻看一下,哪一本覺得合口味就用哪一本。

候選者A,錢能老師的《C++程序設(shè)計(jì)教程(修訂版)–設(shè)計(jì)思想與實(shí)現(xiàn) 》 http://product.china-pub.com/46574

我上學(xué)的時候,翻過錢能寫的C++書,感覺還不錯。至于這一本實(shí)話實(shí)話我沒看過,但是按照國人教學(xué)風(fēng)格應(yīng)該是一板一眼的。

候選者B,stanly lippman的《essential C++》,這本書我有,但是感覺不適合作為初學(xué)者使用,如果你有一兩年編程經(jīng)驗(yàn),看看這本書也許還行。

候選者C,stanly lippman的《C++ Primer》,基本上用這本書入門,應(yīng)該是比較花費(fèi)時間的,但也很正統(tǒng),這本書買了肯定不白瞎。

我推薦A+C,或者你到圖書館選擇隨便選一本《C++設(shè)計(jì)教程》作為A的替代,先知道一下皮毛。

初學(xué)者階段需要注意的是,每看完一段,都(必須的!)要自己做做上機(jī)實(shí)驗(yàn),把章節(jié)后面的練習(xí),文章中的代碼示例,自己動手把程序敲進(jìn)去,編譯一下,運(yùn)行起來,調(diào)試調(diào)試。這一步非常重要,如果你做不到,那就學(xué)不好。

至于IDE如何調(diào)試,如何設(shè)置斷點(diǎn),如何建立、配置項(xiàng)目,不屬于這篇文字范疇,但有問題的話,歡迎留言,我會盡量解答。

C++包含幾個方面范式,一個是傳統(tǒng)的結(jié)構(gòu)化編程,一個是面向?qū)ο蟪绦蛟O(shè)計(jì),一個是基于模板編程,還有就是STL標(biāo)準(zhǔn)模板庫的使用。

讀者可以按部就班,先學(xué)習(xí)結(jié)構(gòu)化編程,主要掌握基本的程序語法、關(guān)鍵字、數(shù)據(jù)結(jié)構(gòu),比如const的使用,4種xxx_cast概念等等。

面向?qū)ο缶幊?,要?shù)量掌握class、new、delete,對象(資源)管理,對象生命周期,構(gòu)造、析構(gòu)、拷貝構(gòu)造、拷貝賦值這些與對象實(shí)例相關(guān) 的內(nèi)容,了解一下多態(tài)、繼承、重載、覆蓋、operator重載這些內(nèi)容。另外簡單了解一下多重繼承、異常處理機(jī)制等等概念。寫寫例子實(shí)現(xiàn)一下,其實(shí)都不 難理解。

模板方面的內(nèi)容,不要挖的太深,了解并且實(shí)驗(yàn)一下如何定義模板類模板函數(shù)偏特化這些基本知識就夠了。我可能用的比較淺,但是我八年工作經(jīng)歷來看,模板的內(nèi)容屬于不常使用的。

STL方面,掌握幾個基本的類型比如vector、list、map、set、string,了解一些基本算法,比如find之類,基本上工作就足夠了。

在這里要推薦第二本C++必須有的書籍《C++標(biāo)準(zhǔn)程序庫—自修教程與參考手冊》侯捷孟巖翻譯。這是一本必須放在手邊的書籍,因?yàn)镸SDN關(guān)于STL的內(nèi)容寫得真是太爛了,比其它內(nèi)容差的太多太多。前面介紹的STL,有了這本書在一邊輔助,有問題一查便知。

我一直在提的就是了解基本就足夠了。沒錯!對于初學(xué)者而言,千萬不要想著什么都學(xué)什么都會。C++的內(nèi)容太多陷阱重重,什么都想知道,只能是胡子眉 毛一把抓。抓主干抓基本抓核心,對我提到的內(nèi)容,注意不同的層次:掌握、熟悉、了解,這些內(nèi)容多看看,其它的碰到了在深入學(xué)習(xí)。

C++第三方library,比如boost,如果沒有必要,不建議大家學(xué)習(xí)和使用在自己的項(xiàng)目中。當(dāng)然也有例外,比如asio和boost-python都是最近風(fēng)頭很勁的庫,做網(wǎng)絡(luò)編程或者配合python的話,可以選擇。

如果對于C++基本語法以及common knowledge有了認(rèn)識了解,下面需要增加的就是工程實(shí)踐設(shè)計(jì)方面的內(nèi)容,基本上大家都推薦這幾本,我也不例外。

《Effective C++:改善程序與設(shè)計(jì)的55個具體做法:第3版 》

《More Effective C++:35個改善編程與設(shè)計(jì)的有效方法(中文版)》

《C++編程規(guī)范:101條規(guī)則、準(zhǔn)則與最佳實(shí)踐》

這三本書的風(fēng)格都是條目式,內(nèi)容很實(shí)在,不玩虛的不炫技,里面的內(nèi)容都可以立刻用在工程實(shí)踐當(dāng)中。

另外需要說明的是,純粹C++知識對于實(shí)際編程工作是不夠的,必須結(jié)合特定領(lǐng)域,比如Windows下編程你要知道SDK API,Linux編程你要知道常用的system call,數(shù)據(jù)庫編程要知道一些如何連接查詢更新的步驟。這些沒法在這里一一介紹,可以咨詢公司內(nèi)的其他同事,或者留言給我好了。

看完這幾本書,可能你對C++的了解已經(jīng)上了一個臺階,這時候就不要繼續(xù)死讀書了,該動手做點(diǎn)什么了。

第二階段,寫代碼。

書讀百遍其義自現(xiàn),代碼寫的多,bug就會多。開場詩念完就講講如何寫代碼。這其實(shí)是非常難的一步,有不少朋友書讀了很多,但是就是寫不出一行代碼,或者寫出來的還是非常奇怪充斥著低級錯誤的代碼。這就是熟練度不夠的緣故。

平時喝茶的時間拿出來,想想代碼該如何設(shè)計(jì);平時泡妞的時間拿出來,想想這個函數(shù)有沒有更好的實(shí)現(xiàn);看到winzip、迅雷、QQ,想想如果自己寫該如何實(shí)現(xiàn)功能。不僅要想,還要動手做一做。

如果你是做Windows編程,這里推薦一下codeproject.com,這個網(wǎng)站上的項(xiàng)目設(shè)計(jì)了Windows開發(fā)的方方面面,比如GDI如 何操作,數(shù)據(jù)庫,控件菜單窗口消息循環(huán)等等,都比較短小精干,而且都包含了整個項(xiàng)目代碼下載(而不僅僅是某個片段),下載以后編譯調(diào)試一下,會對自己提高 幫助很大。

現(xiàn)在坊間也有一些step by step的書籍,教你如何一步步實(shí)現(xiàn)某個功能,這種書可以根據(jù)書評銷量選一本然后照著實(shí)踐編程。

第三階段,看高人編程。

這一步針對讀者已經(jīng)工作而且公司中有高手存在的情況。跟高手拉好關(guān)系,然后坐在一邊看他編程,一般有些人不喜歡別人看,但是如果你表現(xiàn)出很仰慕的表情,問題應(yīng)該不大。一般比較靠譜的軟件公司對于新人都會指定一個導(dǎo)師,如果幸運(yùn)的話,你就看你的導(dǎo)師如何編程好了。

其實(shí)這是學(xué)徒到大師中很關(guān)鍵的一步,有個詞叫”傳幫帶“,就是師傅手把手的教。其實(shí)編程也是一門手藝,如果沒看過師傅真實(shí)的工作狀態(tài),想變成高手要比較困難一些。

看高人編程看什么,看他如何寫代碼,如何思考,用了哪些工具、快捷鍵,遇到問題怎么調(diào)試怎么跟蹤的?這些都是書本上很少見,但是工程實(shí)踐中又非常有用的東西。

第四階段,分享知識。

自己水平夠不夠,一做分享就知道。

不少公司都會定期舉行技術(shù)分享會這類活動,或者有些地方社區(qū)也會搞搞技術(shù)分享。如果你覺得自己學(xué)的差不多了,就試著把自己知道的講出來,分享給其他人。

這樣做有幾個好處,一個是增加你對知識的了解。我做過不少ppt,當(dāng)自己想說點(diǎn)什么的時候才知道自己有多深淺哪個地方還欠缺,這個辦法萬試萬靈。在 問答環(huán)節(jié),你還可以與其他人互動,其他人的問題未必你都懂,這時候就可以繼續(xù)深入學(xué)習(xí)。另外可以增加你自己的技術(shù)知名度,是一個很好的廣告效應(yīng)。

如果沒有類似的技術(shù)分享怎么辦?

我建議讀者注冊一個stackoverflow.com的賬號,到那里去回答問題,一樣也是非常好的分享方式。
 

原文鏈接:http://www.cnblogs.com/lua5/archive/2011/03/31/2000786.html

【編輯推薦】

  1. 程序員新招:Java與C++混合編程
  2. C++,C語言的增強(qiáng)版
  3. C++開發(fā)者快速學(xué)習(xí)Objective-C語言核心語法
  4. .NET、Mono與Java、C++性能測試大PK
  5. 實(shí)例演示C++多態(tài)的實(shí)現(xiàn)過程
責(zé)任編輯:陳貽新 來源: 博客園
相關(guān)推薦

2022-09-25 23:00:03

人工智能機(jī)器人深度科技化

2012-02-15 09:25:14

云計(jì)算數(shù)據(jù)整合文件傳輸

2013-08-14 10:18:45

UbuntuUbuntu Edge

2011-06-23 08:40:27

2011-01-13 15:37:25

vSphere備份

2011-05-07 14:15:47

工作站惠普

2011-06-02 10:32:37

工作站試用

2024-01-18 23:42:31

鴻蒙鴻蒙星河版

2017-05-18 15:57:07

企業(yè)網(wǎng)

2012-09-25 13:32:34

Deepin

2022-04-26 13:08:09

LXQtLinux桌面

2012-02-24 10:48:56

語盒開源

2012-06-02 01:24:33

程序員

2018-09-19 09:05:54

Linux桌面開源

2012-11-26 12:49:11

打印機(jī)

2011-06-15 17:50:40

佳能激光打印機(jī)

2021-01-11 15:04:49

深度學(xué)習(xí)人工智能數(shù)據(jù)

2021-05-28 18:12:51

C++設(shè)計(jì)

2011-10-21 09:16:36

云計(jì)算虛擬機(jī)安全虛擬化

2021-08-01 16:13:52

Clapper視頻播放器Linux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號