1. 程式人生 > >如何自學 Python 這門簡單的語言?

如何自學 Python 這門簡單的語言?

Title

從一開始著手學習 Python 到現在已經半年了。不敢說自己已經駕馭的多熟練,但講真 Python 確實是一門低門檻的語言。

關注公號比較早的讀者應該很瞭解我,這個公號裡面大部分都是實戰的專案,從WebHubBot 到 NCMbot ,以及小程式的後臺,統統都是 Python 來實現的。那麼回到主題,我們到底如何自學 Python 呢?

其實 Python 非常適合初學者上手,相比較於其他主流程式語言,它有更好的可讀性。以及非常豐富的第三方元件庫,我們幾乎不用再做“重複造輪子”的工作。其次,開發環境也是極其易配。

很多讀者,以及我的圈內好友在看到我一直在學習 Python 的時候,都會問我一個問題,“我該如何學習 Python?”。通常情況下,我都會回答,讓他們去學習 廖雪峰老師整理的教程。

因為我完全就是通過網上資源自學 Python 的。一下午時間瀏覽完廖雪峰 Python 教程的基礎篇。之後就開始上手專案,同時一步步再補充其他知識點。

結合這半年的學習,我個人整理了主要的幾個經驗:

  1. 很多老司機都推薦新人找一本書來看,當然,如果你有充足的時間,那麼就找一本淺顯易懂的書,從頭到尾看下去,同時把所有的例子都動手跑一邊。但你覺得自己的時間並不多,想快速掌握這門語言,那麼我極力推薦廖雪峰的Python 教程。因為我確實是從這個教程裡面學到了很多,不懂得地方再查資料去補充。

  2. 找一個實際的專案去練手。我當時是因為要寫一個爬蟲專案,爬取 Instagram 的圖片,如果選擇用 Java 的話就太笨重了。因此不得以我就選擇了學習 Python。在這種條件下的效果比你平時學一門語言的效果要好很多。所以,最好的狀態就是去做一個實際的專案。比如去搭建一個自己的部落格網站。

  3. 找到一個已經會 Python 的司機。讓他給你指出一條路子,同時在遇到卡殼的地方就找他指點。這樣將會事半功倍,當然別人的時間也是有限的,所以當你遇到問題的時候,第一步應該是去搜索查詢問題。

當然,別人的經驗未必就適用於你自己。雖然上面我說過只花了一下午的時間就掌握了 Python 的基礎知識,那是因為我已經掌握了其他的開發語言如 Java、JS等等的。

對於一個完全沒有程式設計經驗的初學者,在學習 Python 的時候,面對的不僅僅是 Python 這門語言,還需要面臨程式設計屆的一些普遍問題,比如:

  1. 從零開始,根本不知道從何入手,書籍看到第二章就看不懂了

  2. 遇到問題不知道如何尋找解決方案

  3. 缺少計算機基礎知識,被一些教程中略過的“常識性”問題卡住

  4. 看懂了語法之後不知道拿來做什麼,學完一陣子就忘了

  5. 缺少資料結構、設計模式等等的程式設計基礎知識

所以除了之前說過的那三點經驗,給初學程式設計者的額外建議:

  1. 切勿浮躁,自信是成功的開始,雖然你已經看了很長時間的資料,但還是不能把程式跑起來。但相信我,幾乎所有程式設計師一開始都是這樣的狀態,也都是一步步折騰過來的。

  2. 選擇合適的教程。有些書籍是很經典,但未必就適合你。

  3. 多動手。不要只顧著看教程,一定要親自動手讓這些程式在自己電腦跑起來。

  4. 額外的知識,如英語、計算機基礎知識

  5. 要學會看別人程式碼。這裡推薦多使用 Github。之前我也整理過一系列的 Github 教程。Github系列教程一 「開門」Github系列教程二 「加入Github」Github系列教程三 「上手Git」

  6. 學會檢視官方文件

那麼、

為什麼一直以來我都極力推薦每一個開發者都要學會使用 Python。是因為這門語言真的很簡單,我所說的簡單是相比較於 C 和 C++ 這樣的語言你需要學習很多底層的知識。

有的人學習 Python 是覺得工資高,其實這樣的人比較危險但也是比較有激勵的,還有就是覺得 Python 比其他語言好用。

其實我個人一直很看好 Python 的前景,因為我認識的很多工程師都已經在學 Python,當然很多都是月收入大幾萬的。

當然,我個人並非一直用 Python ,我現在是一個 Android 開發者,學 Python 的初衷只是覺得在某些場景下用 Python 去實現比其他語言會好用很多,因此我一直在學習 Python,畢竟技多不壓身,同時一直堅信 Python 在未來幾年內必定會有大的前景。

同時,學習某一門語言千萬別抱著等等看的想法。對於一個技術人員而言,缺乏對新技術的渴望和熱情,這是一件非常危險的事情。之前有看到過一則新聞,有個老外的演講,說自己50多歲了仍然堅持每天寫程式碼,瞭解最新的動態,所以他才能做到他們公司的首席科學家,因此他才能時刻指導專案團隊前進並保證專案的質量。他同時坦言對於一個不寫程式碼、不瞭解最新技術動態的技術人員或者技術團隊的負責人而言,這種團隊也就足夠做做小專案,一旦壓力和專案過大,就會有很多問題暴露出來。

對於一個新人而言,無論學習什麼技術,都要以鼓勵的姿態出現。太多用薪水和你個人所看到的現狀去衡量一門技術,那絕對是欠缺眼光的。任何一門技術,一旦有人去學習,他就有可能逐漸成為這個領域的專家,即便是再爛再沒人用的開發語言技術,他也有可能就是明日的奠基者或者大佬。

最後,學習是對自己最好的投資,而機會屬於有準備的人,這是一個看臉的時代,但最終拼的還是實力。人與人之間的差距不在於智商,而在於如何利用業餘時間,所以沒有等出來的輝煌,只有幹出來的精彩。

其實只要你想學習,什麼時候開始都不晚,不要擔心這擔心那,你只需要努力,剩下的交給時間,而你之所以沒有變強,只因你還不夠努力,要記得付出不亞於任何人的努力。

關注公眾號 DeveloperPython ,一起進步

Code