# 練習 0:起步
> 原文:[Exercise 0: The Setup](https://learncodethehardway.org/more-python-book/ex0.html)
> 譯者:[飛龍](https://github.com/wizardforcel)
> 協議:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/)
> 自豪地采用[谷歌翻譯](https://translate.google.cn/)
你需要設置和配置一些工具來學習此書。有可能你已經有了很多這些東西,但讓我們確認一下。
## 程序員的編輯器
你需要一個程序員的文本編輯器,而不是 IDE。Vim,Emacs 和 Atom 都是程序員的文本編輯器。他們不是簡單的文本編輯器,不僅僅能處理文本,而且為你管理整個項目而設計,并能夠一次處理大量的程序文件。它們還具有 IDE 中的常見功能,如運行構建命令,腳本,以及其它,但有一個主要區別。IDE 通常與單一語言相關聯,因為它對源進行高級的檢測,并為你提供編寫代碼的快捷方式。然后,你不必記住任何事情,只需大多數任何項目中,`ctrl-space`你的方式。當你擁有 100 個另外的 10x 開發人員,它們編寫更多技術債務,你無法處理的時候,這真是太棒了。當你試圖學習時,這是一個糟糕的功能。另一個問題是你必須等待某人,為你編寫任何新語言的 IDE,因此如果 Microsoft 或 JetBrains 不喜歡某種語言,那么你將被卡住。
你可以使用 IDE 做的一切事情,你也可以使用一個真正的程序員的文本編輯器來做,因為像 Vim,Emacs 和 Atom 這樣的編輯器是可腳本化和可修改的,它們永不過時。如果 Haskell ++ 成為下一個熱點,你可以同時處理它和所有過去的項目。如果你依賴 IDE,那么你必須等待別人為你解決這個語言。
如果你剛開始想要一個免費的程序員編輯器,那么你應該獲取 [Atom](https://atom.io/) 或 [VisualStudioCode](https://code.visualstudio.com/) 。這些編輯器運行在我在本書中使用的每個平臺上,都是可校本化的,有很多插件,而且易于使用。如果你愿意,你也可以使用 Vim 或 Emacs。
## Python 3.6
這本書需要 Python 3.6。在理論上你可以使用 Python 2.7,因為許多練習是沒有代碼的挑戰。不過,這些視頻將在答案中使用 Python 3.6,而答案的官方代碼庫也使用 Python 3.6 。這意味著如果你將答案轉換為 Python 2.7,就會有問題。如果你不了解 Python 3.6,那么你可以閱讀[《笨辦法學 Python 3》](https://learnpythonthehardway.org/python3/),來獲得基礎知識。
## 工作終端
如果你已經讀完了《笨辦法學 Python》,那么你知道了我要求你使用終端。現在我不需要告訴你如何開始,但是以防萬一,折翼課的視頻展示了幾個選項。該視頻在 Windows 上非常有用,因為微軟的終端支持和 shell 腳本的風格發生了巨大變化,現在他們正在支持范圍更廣的 Unix 工具。
## Pip+Virtualenv 工作配置
在本書中,你將安裝大量額外的庫和軟件。在 Python 世界中,這最容易用`pip`和`virtualenv`完成。`pip`工具離線安裝軟件包,并把他們放到你的計算機上,因此你可以將它們導入到你的 Python 腳本中。`pip`的問題是,你被迫將其安裝在計算機上的正式目錄中,這需要 root 或管理員權限。解決方案是`virtualenv`工具,它在目錄中創建了一種“Python 包的沙箱”,然后允許你運行`pip`,在這里安裝軟件包,而不是整個主機。在視頻中,我會向你展示如何安裝,以及確保你在所有平臺安裝了`pip+virtualenv`,并使用它。
## 實驗日記
在研究項目時,你將要做筆記和記錄指標。你會希望得到一個方格紙的本子,或者可能是帶有點而不是線的紙張,以及一袋好的鉛筆。你可以使用任何你喜歡的東西,但本書中的一部分過程是在計算機外部跟蹤事件,在解決問題時,作為改變你的觀點的一種方式。你更有可能使用長于計算機的紙張(盡管這可能會在以后發生變化),因此你可能會覺得紙張更“真實”,而電腦沒有意義。先把東西寫在紙上,然后將它們翻譯成代碼,這樣可以幫助你渡過這個感知上的難題。最后,在紙上繪畫更加容易。
## Github 賬戶
如果你還沒有帳戶,你將需要訪問[`github.com`](https://github.com/)并注冊一個帳戶。我將為你提供所有視頻演示和所有項目的免費代碼,以便你可以檢查你的工作。如果你卡住了你可以看看這本書的項目,并看看我如何解決它。還有一些時候,我會讓你修復一個項目,我有意留了一些 bug 作為練習。
### `git`
如果你有一個`github.com`帳戶,那么你還需要使用命令行工具`git`。`github.com`將會提供大量信息,有關如何以及在哪里獲取它,但請觀看視頻,來了解如何為你的平臺最佳安裝它。
## 可選:屏幕錄制軟件
這不是必需的,但是如果你可以獲得軟件來記錄屏幕,并且理想情況下,可以同時記錄你的臉部,那么這將有助于你分析你的工作方式。我說這是可選的,因為完成記錄你的工作可能太困難了,其中你需要檢查并分析一些線索,關于如何改善你的流程。我這樣做了一段時間,它幫助了我很多,但它也扼殺了我的創造力。我的建議是,如果你負擔得起或找到了屏幕錄制軟件,當你覺得你根本無法弄清楚你做錯了什么,需要看觀察你自己的工作,那么你應該使用它。我也認為,在工作時記錄你的實際的臉部和身體,有助于檢查你是否擁有良好的姿勢或其他身體習慣,它們可能會使身體損傷,但同樣,工作時記錄自己一整天太麻煩了。這也是你不能與其他人一起做的事情。
## 深入學習
這就是你現在所需的一切。隨著書的繼續,我會在特定的時候指導你所需的其他事情。為了完成這個練習,你現在應該觀看你的平臺的視頻,然后安裝我告訴你的所有東西。如果你已經安裝了某些東西,那么視頻會有一些東西,可以確認你的工具是否正常運行。觀看它來確保你可以遵循本書的其余部分。
- 笨辦法學 Python · 續 中文版
- 引言
- 第一部分:預備知識
- 練習 0:起步
- 練習 1:流程
- 練習 2:創造力
- 練習 3:質量
- 第二部分:簡單的黑魔法
- 練習 4:處理命令行參數
- 練習 5:cat
- 練習 6:find
- 練習 7:grep
- 練習 8:cut
- 練習 9:sed
- 練習 10:sort
- 練習 11:uniq
- 練習 12:復習
- 第三部分:數據結構
- 練習 13:單鏈表
- 練習 14:雙鏈表
- 練習 15:棧和隊列
- 練習 16:冒泡、快速和歸并排序
- 練習 17:字典
- 練習 18:性能測量
- 練習 19:改善性能
- 練習 20:二叉搜索樹
- 練習 21:二分搜索
- 練習 22:后綴數組
- 練習 23:三叉搜索樹
- 練習 24:URL 快速路由
- 第四部分:進階項目
- 練習 25:xargs
- 練習 26:hexdump
- 練習 27:tr
- 練習 28:sh
- 練習 29:diff和patch
- 第五部分:文本解析
- 練習 30:有限狀態機
- 練習 31:正則表達式
- 練習 32:掃描器
- 練習 33:解析器
- 練習 34:分析器
- 練習 35:解釋器
- 練習 36:簡單的計算器
- 練習 37:小型 BASIC
- 第六部分:SQL 和對象關系映射
- 練習 38:SQL 簡介
- 練習 39:SQL 創建
- 練習 40:SQL 讀取
- 練習 41:SQL 更新
- 練習 42:SQL 刪除
- 練習 43:SQL 管理
- 練習 44:使用 Python 的數據庫 API
- 練習 45:創建 ORM
- 第七部分:大作業
- 練習 46:blog
- 練習 47:bc
- 練習 48:ed
- 練習 49:sed
- 練習 50:vi
- 練習 51:lessweb
- 練習 52:moreweb