前言
這是專欄的第一篇內容,萬事開頭難,有了想法就要實施。原計劃去年六月開始寫這部分內容,但由於事情太多,一直等到今天才正式開始。
那爲什麼要寫這部分內容呢?從大三開始,我就再沒用過C++,至今爲止已經四年了。之所以不用,一方面確實是後續的項目一直沒有用到它,還有一個原因就是當時這門課學的太爛了(這門課確實難學)。然而就像《寶蓮燈》裏,二郎神對沉香說的話一樣,“平時總是差不多,一到真正用的時候就會差很多”。所以,我想把它重新學習一遍,痛徹心扉的那種 。
綜上,本專欄內容主要面向以下羣體:
- 計算機專業,大一和大二的童鞋們;
- 沒有建立一個完整的C++知識體系盆友們;
- C++基本功並不紮實的小夥伴們。
小夥伴們,你們準備好了嗎?
本篇內容結構
本篇內容結構如下圖所示,將介紹以下五個方面內容。
C++
我將通過以下內容說明:C++同其它的編程語言相比,其優勢和特點,以及適合初學者練手的原因。
- 排行。下圖(源)是2020年2月份,前10名編程語言的2001-2020年走勢圖。大家會看到,Java、C和C++一直高高在上,而Python由於近年來人工智能的飛速發展,呈後來居上之勢。
- 優勢。
- 可移植性。C/C++的跨平臺使用性很好,很少存在系統不支持此二者開發的軟件。跨平臺可以類比爲,和平精英這款遊戲既可以在華爲手機上玩,也可以在蘋果手機上玩。
- 高效簡潔。與Java和Python相比,在一定程度上,C++代碼編譯出來的程序,運行速度要比前兩者快。簡潔是指,C++裏存在許多封裝好的庫,一些常見函數可以隨時調用。
- 適合大項目的開發。有這樣一種說法,代碼量3w行以下,Java和C要好些,因爲它們更易實現,但項目一旦開發量過大,必然會考慮C++。舉個栗子,愛玩遊戲的童鞋可能聽說過GTA5,這個遊戲有相當一部分比重使用C++進行開發。
- 特點。當然,沒有任何一樣事物是完美的,C++也不能例外。 首先,它難於理解,尤其對新手而言。其次,它對C++開發人員從業的基礎要求相當之高。當然,也有童鞋反映它的開發效率不高,項目骨幹離職可能會導致項目無法進行。但是,從C++工程師自身角度考慮,不可替代性意味着更高的價值。
- 敬畏。程序員是需要有敬畏之心的,對於從業多年的人而言,會發現自己很厲害的同時也很無知。Python的確易於上手,而且從價值導向而言,Python工程師薪酬待遇也很好。但從技術領域而言,還是C++工程師更爲出色。一個簡單的栗子:A同學對B同學說:“你們學計算機的整天說自己學的多麼痛苦,我也沒感覺啊,我學Python不到半個月就會了。”B看了A一眼,樂了。“你覺得簡單就對了,你要是覺得難,說明我們這幫學計算機的IDE工具開發的不到位呀!”。
推薦書籍
《C++ Primer Plus》(第6版)這本書,直觀上給人的特點,就是厚,看上去就很能唬人的那種。爲了探究這本書是否適合新手入門,我還特意查了一下這本書在豆瓣的書評,總體而言,它在評論區中的評價褒貶不一。我個人觀點如下:
- 存在即合理,一本書歷經這麼常的時間經久不衰是有它的歷史原因的,而且歷來傑出的人或作品,總會充滿爭議;
- 一個良好的知識提升體系,具體可參見學C++的最好入門書;
- 全面而又詳盡的知識點,以及每章習題都配有參考答案。當然,知識點多,難免會讓人覺得瑣碎,既然是參考答案,當然也不乏謬誤。而這,也正是專欄需要幫助大家理解的內容。
準備工作
- 選擇VS工具版本。通過下圖之間的版本對比,不難發現社區版完全可以滿足童鞋們學習的需要,而且此版本可買免費下載安裝。
- 安裝Visual Studio 2019。VS 2019官方下載鏈接,進入後選擇社區版下載即可。
- 安裝教程。首先,可以參考官方文檔,對於新入行的童鞋來說,自行查看IDE的能力很重要;其次,可以參考已有教程,例如:教程1、教程2和教程3。
本書獲取方式
- 淘寶、京東、亞馬遜等電商平臺;
- Kindle電子書,自行付費購買;
- 私信作者。
文末彩蛋
無意間發現的一個網站,有着大量的計算機各專業電子版書籍(英文版!!!)。