學習完Python基礎後,我接下來應該做什麼?
本文將探討學習完Python基礎後,可以學習哪些內容。
掌握Python基礎的初學者往往傾向於資料科學和機器學習領域。資料科學是一個不同的主題,需要專門的教學和學習。在網頁抓取方面,Python是一個非常有用的工具。網頁抓取是其未被充分利用的應用之一。Python專家可以從網站中提取大量資料。
儘管被認為是初學者語言,但Python基礎課程也幫助專業開發人員和程式設計師處理各種科學應用。
人工智慧
人工智慧軟體不同於其他型別的軟體,它需要一種線性且一致的語言。這裡Python就發揮了作用。Python是唯一一種吸引人工智慧軟體的程式語言。
Python擁有一個非常活躍的社群。它有一個專門的庫,旨在幫助對人工智慧和機器學習感興趣的初學者。在學習Python時,大多數開發人員已經知道自己想要達到的目標。Python基礎為你的思考提供了結構。
現實世界中的應用
對於所有Python新手來說,最好的訊息是,這種語言的應用在我們周圍隨處可見。這些技術直接應用於軟體,帶來即時的樂趣。Python主要是一種初學者語言,但也可以供那些不打算成為開發人員的人學習。像編碼一樣,學習Python既是一種愛好,也是一項良好的職業技能。
在各種平臺上練習編碼
編碼需要始終練習。
可以透過使用各種編碼平臺(例如HackerRank、Codechef等)獲得持續的練習。
這樣你才能熟練掌握這門語言。
然後嘗試自己構建一些小型專案。
練習和專案
如果你熟悉程式設計概念和Python語法,練習是檢驗你知識的好方法。你用來學習Python的資源幾乎總是包含練習,所以這些將是一個不錯的初始選擇。我還建議使用下面列出的資源來磨練你的技能。
如果你遇到困難,請重新閱讀相關資料,進行線上搜尋,尋求澄清等——簡而言之,嘗試解決它。跳過某些難題是可以的(如果你有時間,可以稍後再返回),但你應該能夠解決大多數初學者問題。記筆記和備忘單也會有所幫助,尤其是在處理常見錯誤時。
Exercism、Hackinscience 和 Practicepython——這些都對初學者友好,並且標註了難度等級
100頁Python入門練習——來自我的入門指南的練習題
Adventofcode、Codewars、Python Morsels——包含更多針對中級到高階使用者的挑戰性練習
Checkio、CodinGame、CodeCombat——基於遊戲的挑戰
/r/dailyprogrammer——目前不活躍,但有大量過去的挑戰和討論
專案是在你掌握了基礎知識和語法之後才會出現的。我們構建了一段10行的程式碼來處理一個常見問題——新增body { text-align: justify }:將epub檔案從非對齊改為對齊。我們當時並不知道這行程式碼會派上用場。我們在網上找到了一個解決方案,然後自動化了解壓epub、插入程式碼行和重新打包的過程。
你可能需要搜尋文件並閱讀一些StackOverflow的問答。當你定期使用該解決方案時,你肯定會遇到極端情況和需要引入的功能。這是一種學習和掌握程式設計的絕佳方法。
現在我們使用了一個更高階的EPUB閱讀器,它允許我們自定義對齊方式。這是另一個來自現實生活的例子。我們在Linux上執行,並且經常使用終端。我們需要一個命令列工具來執行簡單的計算。有bc命令,但它不接受直接的字串引數,並且需要你設定比例和其他引數。因此,我們查找了如何在Python中構建CLI工具,並使用內建的argparse模組建立了一個適用於我們特定用例的工具。
以下是一些幫助你開始專案的資源:
Python專案實踐——我關於初學者到中級專案的一本書
附帶解決方案的專案——演算法、資料結構、網路、安全、資料庫等
基於專案的學習——網路應用程式、機器人、資料科學、機器學習等
Peter Norvig的Pytudes——Python程式,通常很短,但難度很大
書籍:
除錯
瞭解如何除錯程式非常重要,最好從一開始就學習,而不是作為書本最後的一個章節。將Python作為一個這樣的資源材料的絕佳示例。
像 Pythontutor 這樣的網站可以幫助你直觀地除錯程式——你可以一步步執行它並觀察變數的當前值。像Pycharm和Thonny這樣的IDE通常包含類似的功能。這些視覺化是由pdb模組驅動的。此外,請參閱使用pdb進行Python除錯。
除錯可能是一項非常令人沮喪的任務。休息一下是有益的(有時我們會在夢中找到解決方案或發現問題)。儘可能減少程式碼,以便只剩下複製問題所需的最小程式碼。與朋友討論問題等也可能有所幫助——這被稱為橡皮鴨除錯。我們經常在編寫要釋出到StackOverflow/Reddit等網站上的問題時發現問題,因為寫下你的問題是提供清晰度的另一種方法,而不是僅僅在腦海中有一個模糊的想法。
測試
瞭解如何編寫測試是程式設計旅程的另一個重要組成部分。在大型專案中,通常會分配額外的工程師(通常遠遠超過程式碼開發人員)來測試程式碼。即使在這些情況下,編寫一些健全性測試用例也可以幫助你更快地開發,因為你會知道更改不會破壞基本功能。
在測試方法論方面,沒有單一的共識。有各種型別的測試,例如單元測試、整合測試和測試驅動開發。通常會使用這些方法的組合。機器學習現在被用於縮短測試時間,如 使用機器學習更有效地測試Firefox 所示。
對於非平凡的專案,通常需要像內建模組unit test或第三方模組pytest這樣的框架。
以下是一些有用的學習資源:
obeythetestinggoat——Web的測試驅動開發,使用Python、Selenium、Django、JavaScript及其夥伴
Python中的現代測試驅動開發——測試驅動開發指南,包含一個現實世界的應用示例
總結
本文介紹了在掌握 Python 基礎知識後可以學習哪些內容,並提供了多個學習資源。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP