知乎千萬熱議:如何系統地自學python?

程式設計師_大白發表於2022-03-14

這是我在知乎關注的一個問題,關於如何系統地自學python?累計有1103萬多的瀏覽。

分享讀者
我從15年接觸人工智慧領域,迄今演算法工作年限已達 6年,以校招生的身份加入位元組跳動公司擔任演算法工程師並獲得企業內部最高獎項。
輔導多名學生通過面試並供職於百度、平安科技、小米和聯通等企業的演算法崗位。對於就業指導和麵試技巧有著自己的思考和豐富經驗。

本文主要針對很多轉行的朋友在考慮要不要選擇python,以及如何系統的自學python,給出我的建議,如有不足之處,歡迎評論區留言交流!

為何選擇Python?

為什麼要學習Python呢?為什麼不選擇目前流行的其他20種語言中的一種呢?當你開始時,會有許多這樣的疑問。

選擇你的第一個程式語言就像選擇你的第一個皮卡丘。

一個語言本身怎樣並不是那麼重要,重要的是程式設計師要知道如何用這門語言做成一些牛逼的事。

如果你並不想學Python,那麼本文不適合你。當你對自己的決定有信心並專注於後面的學習時,你將更可能成功。選擇哪種語言並不重要,但是一旦做出了選擇,就要堅持下去。

網際網路上充斥著大量關於各種語言和框架比較的言論,足以讓任何理性人產生選擇障礙。

我見過有初中級程式設計師聲稱他們會3-4種語言。他們傾向於泛泛的瞭解各種語言,卻無法寫好任何一種語言的程式,這就是想要嘗試一切而不鑽研某一門的後果。

Python是一種設計精良的語言,還有大量的線上文件和教程。並且它還被用於很多領域,所以無論你的水平如何,都有很多值得學習的東西。不過其他20種語言大多也是如此。

每種語言都有它的優點和缺點以及它最適合的應用場景。Python最常用的3個用途是資料處理,Web應用後端程式和自動化指令碼。基於其設計基本原則所追求的清晰度和簡潔性,Python可以說是初學者的最佳選擇。

你總能聽到這樣的聲音,“你做出了錯誤的選擇”。十有八九說這些話的人就是想向你推銷某些東西或者他們自身缺乏安全感。

怎樣學習Python?

既然你已經選擇了Python,那麼我們來談談如何學習它。

其實很簡單,選擇一個教程並完成它。然後再學習另一個,周而復始。

只學一本書或一個視訊課程是不夠的。還需要以漸增的方式不斷接觸程式碼,這需要有耐心、毅力和付出(以及其他優秀品質)!

因此我提出了一個給初學者的基本學習流程。作為人類(我上次測試過,AI對學習python不感興趣),你的學習路線圖可能會有所不同,但只需以它為參考就可以了。明白何時進入更高層次的學習非常重要,大多數人知道得太晚了。

1.基礎 – 用python思考怎樣把那些無聊的工作自動化。試試官方教程“The Python Tutorial / python.org”。 學會使用互動式學習工具python koans和版本管理工具git。

2.自學教程 – 學習RealPython.com上的文章和Corey Schafer的教學視訊,閱讀《Python初學者指南》(TheHitchhiker’s Guide to Python”),儘可能的多讀多看。學習Flask(用 Python 編寫的輕量級 Web 應用框架)官方教程。
Python基礎
image
如果你有需要,我也可以分享出來,掃描下方二維碼,即可前往免費領取!
在這裡插入圖片描述

3.文件 – 通過閱讀Python文件學會使用Python庫,可以從requests庫開始。開始構建你自己的程式,任何程式都行,不要忘記參考步驟2中的文章和視訊。

如果你有需要,我也可以分享出來,掃描下方二維碼,即可前往免費領取!
在這裡插入圖片描述

4.交流 – 翻看過去的Pycon技術大會的視訊,它們的含金量很高。強烈推薦書籍《編寫高質量的python程式碼》(Effective Python)和《Powerful Python》以及Talk Python Training上的課程

5.原始碼 – 瀏覽你最喜歡的Python包的程式碼,現在正是參與Python開源專案的好時機。

您可能更想選擇edX課程而不是閱讀書籍,但其實學哪個課程都無所謂,整個學習過程才重要。

通過閱讀書籍建立堅實的基礎。

按照教程用Python完成單個任務,如傳送電子郵件或讀寫檔案,這會讓你瞭解許多有用的Python包和庫。

逐漸養成閱讀文件的習慣,使用Python庫構建小型應用程式。

深入理解語言及其工具,瞭解該領域的資深人員正在做什麼。

直接閱讀原始碼。

如果你已經嘗試過上圖中所有的資源,下面的連結有更多有用的資料

在學習任何教程時,記得要編寫程式碼作為練習,僅僅閱讀程式碼示例是不夠的。

學習通用問題的解決

就像水彩和油畫有一點點不同一樣,學習語言(框架/庫)和學習程式設計之間也存在細微的差別。

在你學習諸如“Web全棧開發”課程之前,請明白它不會讓你成為一名優秀的程式設計師,只會教你用一個特定的流程來解決一個簡單的問題。(的確,大多數這種課程中搭建的web應用程式是很簡單的。)知道如何搭建雖然很好,但能夠設計自己的程式就更好了。要留意程式設計結構、設計模式和演算法,這些並不是Python所特有的,對所有語言都差不多。

堅持下去,自然會發現規律。

尋找答案

如果你遇到困難(會的,還可能不止一次),請在放棄之前嘗試解決它。很可能有人之前已經遇到過同樣的問題並且在網上釋出瞭解決方法,去上搜吧。此外,Python社群(一個全世界使用Python的程式設計師交流社群)也很不錯,在那你可以隨時向人們尋求幫助。還可以加入Gitter上的Python頻道。

哇Python!

Python中有很多值得學習的東西。它可以被用於許多領域,不要跳過基礎知識的學習而直接轉到特定的專業領域。比如,學習科學計算包PyTorch應該在學會打包之後,使用Django應該在使用虛擬環境之後。從長遠來看,深入掌握Python的知識是值得的。某個特殊庫的使用可以減少除錯程式所花費的時間。

需要花多少時間來學習?

9條命吧。

學習東西需要時間,而且比大多數人告訴你的要長的多。你不可能在幾個月內成為程式設計師專家,好事多磨。我建議你首先關注Python至少一年,避免在這一年裡分心,但不要害怕學習其他新事物。Python並不是成為一個技術全面的開發人員的唯一知識。學習Git,Markdown,HTML也很不錯。在這個過程中你可能還要重拾JS或統計學。

持續不斷的學習,而不是隻學一次就夠了!

明白學習/構建週期

任何創造性的/研究性的努力都有兩個不斷重複的階段 – 學習和構建。

在學習階段,你應該專注於積累知識。閱讀書籍,完成每個教程並熟悉已經掌握的知識。

在構建階段,你可以通過應用前一階段獲得的知識來創造新的東西。不要懷疑你的技能,不要相信那些說你不行的聲音,編寫自己的應用程式,完成後回去繼續學習。

要平衡這兩個階段,比如一到兩個月的學習階段,然後是一個月的構建階段,大多數人都害怕開始構建階段。

崗位內推、學習交流

我們大量需要前端崗位、python崗位、Java 崗位、Android 和 iOS 的開發崗位,工作地點:北京位元組,歡迎校招社招評論區留言!
在這裡插入圖片描述

如果你覺得自己學習效率低,缺乏正確的指導,歡迎評論區留言,我會邀請你加入資源豐富,學習氛圍濃厚的CSDN官方技術圈一起學習交流吧!

相關文章