有大神說,0基礎學編程簡直是找虐,今天我想說你也可以!

編程入門就一句話:從入門到放棄。

who say eight road!學會套路,保准成為編程超人!

編程是個麻煩事,從哪裡入手也是件麻煩的事情,學了編程,你就脫離了麻瓜的行列 - 知乎專欄。很多初學者往往找不到北,這時候,如果能掌從一門簡單易學的編程語言,那就信心百倍了!

在這裡,我鄭重跟各位安利 Python 。

蟒蛇:老鐵,咱能不提到我嗎?

大家別被這名嚇到,這門語言的創造者Guido van Rossum是根據BBC的搞笑節目「蟒蛇飛行馬戲」(Monty Python』s Flying Cirecus)來命名的——並非他有喜歡看蟒蛇絞殺動物的奇特癖好(不過logo的確是兩條蛇纏在一起)

據我多年 女裝大佬 Python老司機經驗,總結有下:

  • 簡單:閱讀一個好的Python程序,就像在讀英語一樣,這種偽代碼本質是它最大優點之一,使你能專註解決問題,而不是去搞明白語言本身。

  • 免費、開源:Python是FLOSS(自由/開放源碼軟體)之一。你可以自由發布這個軟體的拷貝、閱讀它的源代碼、對它做改動、把它的一部分用於新的自由軟體中。

  • 高級語言:當你用Python編寫程序時,你無需考慮一些底層細節。諸如:怎麼管理你的程序使用的內存之類的。

  • 可移植性:由於它的開源本質,Python已經被移植在許多平台上。如果你小心避免使用依賴於系統的特性,那麼你的所有Python程序無需修改就能在這些平台上運行。包括Linux、Windows、FreeBSD、Macintosh、AS/400、Windows CE等,甚至還有PocketPC!

所以有人說,Python 是一款非常適合新手開的好車,不要駕駛證就能上路。除非你想體驗速度與激情的快感,一般來說,你不需要其它車。

聽說Python有兩個不同版本,我該選擇2還是3?

Python2.x是已經進入穩定狀態的Python版本,Python3.x是開發更加活躍的面向未來的版本。它們在語言特性上有略微不同,但不至於相差太大。

至於選擇哪個版本,要根據你的使用方式而定。一般來說,大部分Linux和MacOS設備都默認預裝Python 2,且舊版本支持的第三方庫也更多;Python 3 則提供更舒服的字元編碼處理機制。

所以,如果你需要處理中文文本,或者你並不需要用到某些只有在Python 2上才能運行的庫,那你可從 Python 3 開始你的學習之旅。

了解了些基本內容,我需要怎麼開工?

為了編寫存儲程序代碼的文本文件,我們需要一個趁手的編輯器

對於編輯器的基本要求之一是語法加亮功能,利用這一功能,你的Python程序的不同部分被標以不同的顏色,這樣你可更好看清你的程序,使它的運行顯得形象化。

如果你使用Windows,我建議你使用IDLE。IDLE具備語法加亮功能,還有其他功能,比如允許你在IDLE中運行你的程序。注意:不要使用Notepad——它是一個糟糕的選擇,它沒有語法加亮功能,且不支持文本縮進。

如果你使用Linux/FreeBSD,你有很多種選擇。

初學編程:使用GEdit / Kate。

有經驗的程序員:使用VIM/Emacs。

勿庸置疑,它們是兩個功能最強大的編輯器。我個人使用VIM編寫我的大多數程序。

是不是還要選擇適合我學習方式的教程?

目前初學者容易接觸到的Python教材大致有以下兩類(文末有具體推薦):

一類是文字材料,例如實體書、電子書、網路教程和程序文檔等。文字教程的好處在於信息密度大,學習中遇到不懂的內容可隨時查閱,書中的文字材料/代碼段可直接複製,方便看到運行結果。

另一類是多媒體教材,例如視頻課程和自學APP等。它們的好處在於直觀、互動性強,能清楚通過動畫、視頻的演示了解教學內容。

不管選哪個,結合教材中的實例代碼,通過不同的修改和輸出了解代碼的執行原理,都是非常重要的環節,多動手吧!

那麼,入門的時候要怎麼做?

懂得查

啊,明明按照教程做的,怎麼跳出這麼多紅字?

Python程序在運行時遇到的錯誤,通常會顯示詳細行號和錯誤信息,方便用戶查找修正。遇到自己不認識的,別慌,先看看它們的描述,再打開你的文件,找到出錯的行號。

如果問題過於詭異,就要好好利用 Google 或者必應這些搜索引擎,搜索你遇到的具體問題,通常情況下,基礎性語法和邏輯問題還是比較容易解決的。

懂得想

上面步驟,依然沒有解決我的問題怎麼辦?

耐心點,不要指望搜索幾秒鐘就能解決一個複雜問題。如果你第一次搜索沒有結果(或者結果太多),也不要拋出一堆問題,這時要進行思考。

思考並不是發獃,要動起手來,通過搜索得到的信息,修改你代碼中「可能有問題」的部分,觀察它的輸出結果,逐步定位問題產生原因;

或是通過修改從網山搜到的別人代碼,研究運行情況,來了解別人是如何解決特定問題的。

懂得問

可我想破了腦袋還是不明白,救救我啊!

這點我放到最後來說,因為如何提出一個好問題至關重要。

除了學習群和論壇之外,有幾個主要的問答網站:

國內:段錯誤(SegmentFault )

國外:爆棧網(Stack Overflow )

在問問題前,請在這網站上再搜索一遍你的問題——畢竟新手容易遇到的問題,在這裡可能早有人回答過了。

那麼,當你排除以上一切,準備開始問時,該怎麼組織自己的問題呢?這裡有幾點建議:

話不在多而在精

提供簡練精確的信息非常重要。

第一,表現出你為簡化問題付出了努力,可使你得到回答的機會增加;

第二,簡化問題使你有可能得到更有用的答案;

第三,在你精鍊自己問題的過程中,可能自己就找到了解決方法。

描述錯誤信息,不做猜測

向別人陳述你的猜測是沒有用的(如果你的診斷理論真的那麼有用,你還會向別人求助嗎?)。所以,你只需要告訴他們問題的原始狀態,而不是你的解釋和理論,讓他們來解釋和診斷。

描述目標而不是過程

如果你想知道如何做某事,但在實現過程中卡住了,你需要在開頭就表明你的目標,再陳述你遇到問題。

當你選擇學習編程,你的業餘時間都會被它所佔據,隨著學習曲線逐漸變陡,你感到枯燥、迷茫、自卑以及腦汁耗竭的痛苦。

這是非常正常的。許多人(包括我)在學習一門新技術時,都會遇到類似問題。對此,我個人的解決辦法有:

1、找點樂子

當你看完基礎語法,對繼續往下挖掘感到枯燥時,別勉強自己,翻翻書本,找一些有趣的練習題練練手,或者編寫、修改一些簡單有趣的小項目,跟你朋友講你學到的新內容,給自己找點成就感。

2、專註在當前的學習目標上

沒有技術背景的人,學習編程入門容易被複雜的技術體系嚇到,網上經常會出現「一定要讀這本書」、「最好先有 XX 基礎再看這篇教程」之類的警告,結果常會出現這種情況:本來你只打算學編寫網頁 ,結果卻開始苦讀《精通正則表達式》。

別擔心,你無需掌握所有分支,很多時候,你只要知道在需要某個知識點時,能從這類教程中找到對應用法即可。

3、習慣無知

無論學習什麼,往往越深入就覺得自己無知。這並不是壞事,它能讓你保持謙虛,但千萬不要被嚇得不敢繼續前進。

覺得寫出來的代碼就像一坨屎?正常,因為你看過的例子和學到的知識增進了你的眼界,但編程技能和思想需要在練習中成長,所以千萬不要因此而自卑,繼續嘗試,相信自己。

4、注意休息

人的認知能力是會隨著時間流逝而耗竭的,別逞能,站起來走動走動,呼吸一下新鮮空氣吧!

最後,祝各位新晉魔法師學習順利,祝大家賺大錢~


推薦閱讀:

用數據告訴你在上海你得這樣租(sheng)房(dian)子(qian)
第一章 | 使用python機器學習
Python 黑客相關電子資源和書籍推薦
有人反覆問Python container 是啥?
如何用 python 解析三層結構 XML?

TAG:编程入门 | Python | 代码 |