本節書摘來自異步社群出版社《易學c++(第2版)》一書中的第1章,第1.7節,作者:潘嘉傑 ,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
在學習c++語言之前,不少初學者就已經有了很多疑問,這是件好事。在正式學習之前對所學的内容和整個過程有一個大緻的了解有助于安排學習的進度和深度。是以,下面羅列了初學者的常見問題,并根據筆者的經驗給出了答複。如果您沒有以下這些問題,那麼可以跳過本章節,避免引入過多的新名詞而産生困擾。
問題1:學習c++大約需要多久?有些書籍上說幾十天就能學會c++這是真的嗎?(來自網友e-mail)
回答:在高校中安排的c++課程約為半年至一年,但事實上要精通c++,這點時間是遠遠不夠的。c++并不隻是一門簡單的計算機語言,而是逐漸形成了一個學科體系。要熟練運用c++,做出界面美觀、功能強大的程式,還必須對資料結構、stl、設計模式等各個專題進行深入學習。是以,學習c++所需時間取決于學習者本身的基礎和期望達到的學習效果。如果一位零基礎的初學者要掌握c++語言本身的所有特性,1~2年的時間是比較正常的。至于說幾十天能夠學會c++,對于已經精通其他計算機語言的學習者來說也是可能的。
問題2:學習c++需要什麼樣的數學和英語水準?學曆較低可以學c++麼?(來自網友留言)
回答:學習程式設計必然會用到數學和英語。至少輸入的代碼基本都是英文字母,我們要用的算法多少和數學、邏輯學有些關系。是以,徹底沒有數學和英語基礎就學習程式設計真的很困難。一般認為,有國中或以上的數學和英語基礎就可以學習程式設計了。在現實中,很多中學生已經成為了程式設計高手。如果已經忘記以前所學的數學和英語知識,建議略花一些時間去回顧一下。數學和英語對學習程式設計還是有莫大的裨益。數學能夠鍛煉一個人的邏輯思維能力,使接受算法的速度更快;英語則有助于學習者看懂計算機的回報資訊、閱讀更多原版的技術資料。
問題3:以前學習過程式設計,時間長都忘記了,現在不從事計算機行業。随着年齡增加,學習能力和記憶力都可能有所減弱,這樣能學習c++嗎?(來自網友e-mail)
回答:學習能力和記憶力的确會随年齡受到影響。但是學習c++本來就是一個周期相對較長的過程,最重要的是保持學習的熱情和耐心。c++語言的基礎部分已經基本固定,不會經常發生重大變化,是以即使年齡稍大,經過努力後掌握c++是完全可能的。
問題4:很多網友說學習c++之前要學c語言,是這樣嗎?(來自網友留言)
回答:在1.5節中已經說明,c語言的部分文法的确與c++相似甚至相同。如果有c語言的基礎學習c++肯定會更快。但是,這并不意味着學習c++之前必須要學c語言,而且對于初學者來說在短時間内接觸這兩種語言反而會造成部分概念的混淆。是以,如果你的目标是c++而不是c語言,那麼不必特意在學習c++之前先去學c語言。
問題5:現在學習c++主要有哪些內建開發環境?哪個最适合初學者?(來自網友e-mail)
回答:首先需要說明的是,內建開發環境和編譯器又不是一回事情。通常內建開發環境可以搭配一種或多種編譯器。編譯器的功能是将c++源程式轉變成可執行的程式,而內建開發環境則是一系列代碼編輯、調試和管理工具。目前windows作業系統下使用比較廣泛的內建開發環境有微軟的visual studio(包括6.0版、2010版和2012版等)、dev-c++、eclipse、code::blocks等。從內建開發環境的界面友好程度來看,微軟的visual studio有着不小的優勢。并且visual studio的市場占有率也是非常高的,很多院校、教育訓練機構、企業都在使用。是以,建議有條件的初學者優先選用visual studio。如果實在無法安裝visual studio,那麼dev-c++或code::blocks也可以作為替代。
問題6:如何保持學習c++的積極性和熱情?(來自網友e-mail)
回答:對于大多數初學者來說,學習c++語言還是有一定難度的。是以,必須要掌握好學習的速度和節奏,不要對自己産生過大的壓力。有些讀者說隻需要3周就能把小半本書看完,可是剩下的那部分卻始終看不進去。事實上這說明了前面的小半本書還沒有完全消化吸收——暴飲暴食自然就要沒胃口了。建議初學者不要貪急貪快,那樣很容易毀掉自己的學習熱情。如果為自己訂制了一個相對長期的、寬松的學習計劃,反而更容易培養自己的積極性。
問題7:零基礎的初學者應該學vb還是學c++?(來自網友留言)
回答:不得不承認,用visual basic制作一個windows視窗界面的程式比c++友善得多。是以,初學者可能在學習visual basic的時候覺得更容易,更有成就感。basic和c++屬于計算機進階語言中的兩支路線,各有所長。但是,從計算機進階語言的發展趨勢來說,c++更具有代表性。如果隻是想了解一下程式設計,學習visual basic也未嘗不可。
問題8:看完《易學c++》之後應該學習些什麼内容?(來自網友留言)
回答:《易學c++》是一本入門級的c++教程,主要面向沒有程式設計基礎的讀者。本書中的内容都是c++語言中必須掌握的基礎知識。當看完《易學c++》之後,并不表示你已經成為一個c++高手,而隻能表示你入門了。是以,如果想更深入地了解,在看完《易學c++》之後必須再去看一些更高層次的書籍。此外,還可以去閱讀一些關于資料結構、算法、設計模式等方面的書籍,強化實際應用。