# 【知識精講】成為一名 Power User
## Part1
按照慣例,在開始進一步學習之前,首先要介紹如何配置開發環境——然而,這里我們并不會直接手把手地教大家配置好一個開發環境。因為,在成為一名開發者之前,首先你要學會成為一名 Power User。
## Part2
雖然我們都知道,計算機科學的學習內容顯然不是如何修電腦,但是想要在計算機科學的世界中生存,你必須擁有作為 Power User 的一系列基本素養:
首先,你要擁有最起碼的分析與解決問題的能力——你不能像個文盲一樣,連顯示屏上明顯的文字提示(很多提示原本就是中文的)都視而不見,而只會盲目地問些“我的程序運行不了怎么辦”之類的毫無意義的問題——一名 Power User 問出的問題應該是“我的程序運行報錯,編譯器提示 error XX ”這樣有信息量,有價值的問題;
## Part3
其次,你要具備最基本的英語閱讀能力——在計算機科學的世界里,很多內容都是英文的,你至少要能夠借助翻譯工具讀懂這些英文材料……事實上,計算機科學中使用的英文并不難,除了少數專有名詞之外,其他的內容還是很淺顯易懂的,這一點大家無需害怕。
最后,你需要具備起碼的信息檢索能力——在現代社會,即使是你不打算從事計算機科學相關工作,如果你連使用搜索引擎搜索關鍵字的能力都沒有的話,那么你遲早會被這個社會所淘汰。
## Part4
接下來,我們將大致介紹一下不同平臺的開發環境配置方法:
在大多數的 Linux 操作系統上,你只需要安裝幾個包就可以了。對于基于 Debian(如 Ubuntu )的操作系統上,請找到終端( Terminal )應用并打開,在它的命令行中輸入如下命令進行安裝:
~~~
sudo apt-get install build-essential
~~~
對于基于 RPM 的系統(如 Fedora ),請同樣找到終端(Terminal)應用并打開,在它的命令行中輸入如下命令進行安裝:
~~~
su -c "yum groupinstall development-tools"
~~~
## Part5
對于 Mac OS X(以下簡稱 Mac)用戶,請從 Mac AppStore 下載 Xcode,然后從 Launchpad 上啟動——Xcode 是一款由 Apple 推出的 IDE,它在第一次運行時會自動配置好所有需要的工具鏈。如果你對于 Xcode 的安裝有問題,可以借助搜索引擎的幫助,獲得更多信息。
[](https://res.jisuanke.com/img/upload/20160712/4529a9cd3e019fe27d5c7511cc4884e555bbed52.jpg)
需要注意的是,你當然也可以直接使用 Xcode 來編寫 C++ 程序,但是我們強烈建議你不要這么做。一方面我們更推薦使用文本編輯器來編寫 C++ 程序,另一方面 Xcode 作為 C++ IDE 的表現本身并不盡如人意——它更適用于編寫一些 Apple 平臺專用的程序,例如 iOS APP 等。
## Part6
此外,如果你不嫌麻煩的話,你也可以選擇使用虛擬機或者 SSH 來訪問一個真正的 Linux 環境。
[](https://res.jisuanke.com/img/upload/20160712/9389edb3c6e3f3f6f46ceb74c548edbd44603d58.jpg)
如圖,我們可以使用 Mac 自帶的終端(Terminal)訪問一臺 Linux 主機。
## Part7
對于 Windows 用戶,你有很多種解決方案可以選擇:如果你在使用較早版本 的Windows ,那么你可以使用 CygWin 或者 MinGW ,在 Windows 下安裝一套完整的跟 Linux 平臺相差無幾的工具鏈(在此過程中你可能需要上網搜索如何修改 Windows 的 **環境變量**)。或者你也可以像在 Mac 下一樣,使用虛擬機或者 SSH 來訪問一個真正的 Linux 環境(Windows 需要額外安裝 SSH 的客戶端,例如 Xshell )。
[](https://res.jisuanke.com/img/upload/20160712/9c317419e37dc1f6848c3090343a16436c191eda.png)
圖為 MinGW 安裝管理器,它可以幫你自動下載好所有需要的 MinGW 工具鏈。
## Part8
如果你正在使用 Windows 10,那么我們強烈推薦你開啟 Windows 自帶的 WSL 子系統(需要升級到 Windows 10 版本1607 或者更高的版本),然后你就可以使用與原生的 Ubuntu Linux 完全相同的方法來編譯和運行你的 C++ 程序了。
[](https://res.jisuanke.com/img/upload/20160712/a8cb19792606e4acdf714840166ab02c118aadf6.png)
圖為在 Windows 10 中運行原生的 Linux Bash ,并使用`makefile`執行編譯操作
## Part9
如果你是 Microsoft Visual C++ 用戶的話,請注意以下幾點:
首先,為了保證對新的 C++ 標準的支持,盡可能使用最新版,不要使用 Visual Studio 2010 以前的版本(比如“著名”的 Visual C++ 6.0);其次,g++ 編譯器與 MSVC 編譯器有一些細微的差別,兩者之間的差別可能導致編譯結果出現偏差。至于在初學階段你會遇到哪些差別,需要你借助編譯器的相關功能,自行探索——同樣,這也是Power User應該具有的能力。
[](https://res.jisuanke.com/img/upload/20160806/ebe4d274f48606956a3f47a326d7e3cb1e4e9368.png)
圖為Visual Studio 2015,注意選擇新建項目為“Win32 控制臺應用程序”。截至課程發布,Visual Studio 的最新版本為 2017。
## Part10
最關鍵的是,作為一名初學者,你必須要小心,不能過度依賴 Visual Studio 作為 IDE 的功能(盡管在后續課程中,你會發現它的強大超出了你的想象)。這就像是學車一樣——雖然在日常生活中你接觸到的都是開起來簡單方便的自動擋家用轎車,但是在駕校練車的時候,你仍然要從手動擋開始練起,因為只有這樣才能培養出扎實的駕駛技巧。
## Part11
另外,跟 g++ 一樣,你也可以從[這里](https://www.visualstudio.com/downloads/#build-tools-for-visual-studio-2017)下載最新版本的 Visual C++ 編譯器工具鏈(而不需要安裝整個 Visual Studio )。
安裝完成之后,在開始菜單中搜索“VS2015 x64 本機工具命令提示符”或者類似的內容,即可直接調用 Visual C++ 編譯器提供的 cmd(Windows 自己的命令行工具,跟 Unix Terminal 相似)環境,無需設置環境變量。
## Part12
使用以下命令:
~~~
cl hello.cpp
~~~
即可進行編譯——我們可以看到其使用方式跟 g++ 幾乎一樣。需要注意的是,cmd 下執行應用程序的方式是直接輸入文件名回車,不要加`./`——這一點跟 Unix 是不同的。
[](https://res.jisuanke.com/img/upload/20170114/aa62249a89f6118085c14ea34807951dc1202b75.png)
- 教材介紹
- 《編程初學入門常識》
- 什么是程序語言
- 【知識精講】編程與編程語言
- 【選擇測試】編程語言分類
- 【知識精講】高級語言分類
- 【選擇測試】編譯與解釋
- 【選擇測試】程序員笑話-Java
- 熟悉鍵盤上用于編程的鍵位
- 【知識精講】認識你的鍵盤
- 【知識精講】中文和英文字符
- 【匹配測試】識別中英文符號
- 【選擇測試】中英文符號的影響
- 【伴隨編程】不要使用中文引號
- 【伴隨編程】不要使用中文分號
- 【伴隨編程】正確地輸入符號
- 【選擇測試】找出程序中的錯誤
- 初始工程師思維
- 【知識精講】二進制思想
- 【選擇測試】程序員笑話-湊整
- 【知識精講】閉合的邏輯
- 【選擇測試】程序員笑話-條件
- 程序員職業與生活
- 【知識精講】程序員的發展方向
- 【知識精講】程序員的裝備
- 【知識精講】程序員的健康
- 【選擇測試】做一名健康的程序員
- 《C++程序設計》
- 前言
- 【知識精講】編程與計算機科學
- 【知識精講】編程與軟件工程
- 【知識精講】如何學習編程
- 你好C++
- 【知識精講】你好,C++
- 【知識精講】C++程序是如何開發的
- 【知識精講】成為一名Power User
- 【伴隨編程】讓我們一起說你好
- 【知識精講】你的第一個C++語言程序
- 【伴隨命令】編譯、運行你的程序
- 【伴隨編程】將變量流式輸出
- 【選擇測試】變量的作用域
- 【知識精講】變量與數據類型
- 【匹配測試】C++語言的入門概念
- 【知識精講】在程序中學會換行
- 【選擇測試】正確地換行
- 簡單數學運算
- 【知識精講】重新認識基本運算
- 【選擇測試】運算符的理解
- 【伴隨編程】做一下簡單的運算
- 【伴隨編程】a 的 n 次方
- 【知識精講】數學函數
- 【伴隨編程】讓C++語言變成計算器
- 【伴隨編程】計算球的體積
- 【匹配測試】數學世界知多少
- 【知識精講】在程序中添加注釋
- 【選擇測試】正確地寫注釋
- 從伴隨輸入到變量地址
- 【伴隨編程】 一個數字復讀機器
- 【選擇測試】理解標準輸入輸出
- 【伴隨編程】一個加法計算器
- 【程序設計】A+B+C問題
- 【伴隨編程】簡單的I/O格式控制
- 【知識精講】地址與取地址符
- 【伴隨編程】看看我們的地址
- 習題一:面積與周長
- 【程序設計】矩形面積與周長
- 【程序設計】三角形面積與周長
- 【程序設計】圓形面積與周長
- 程序中的是與非
- 【知識精講】是非的表示與關系運算
- 【伴隨編程】驗一驗關系運算式
- 【選擇測試】關系運算式求值
- 【知識精講】如果的意義
- 【伴隨編程】分段函數求值
- 【知識精講】如果之后的如果
- 【伴隨編程】五則運算器
- 【選擇測試】分支的嵌套
- 【伴隨編程】問號表達式
- 【知識精講】是非之間的邏輯組合
- 【伴隨編程】判斷閏年
- 【程序設計】日期合法性
- 【知識精講】多路順序結構
- 【知識精講】在程序中學會縮進
- 【選擇測試】正確的縮進
- C++程序中的苦力
- 【知識精講】使用循環結構
- 【選擇測試】對比兩種循環
- 【伴隨編程】使用while循環
- 【填空測試】理解循環結構
- 【知識精講】自減和自增運算符
- 【伴隨編程】使用自增運算符
- 【知識精講】for循環
- 【選擇測試】for循環的使用
- 【程序設計】一大波好玩兒的程序
- 《代碼能力快速提升》
- 《基礎數據結構》
- 《搜索入門》
- 《動態規劃基礎》
- 《數論和基礎數學》
- 《圖和數基礎》