從Python開始——圖靈圖書學習路線

楊帆發表於2020-04-22

Python目前是入門者學習程式設計的首選語言,它不僅被應用於傳統的程式設計任務,如Web應用程式設計;也被大量“被趕鴨子上架的程式設計師”——科學家、資料專員以及工程師所採用,他們程式設計並非出於興趣,而是必須靠程式設計才能在自己的領域中更進一步。一門簡單的程式語言為業餘程式設計人員提供的便利是不容小覷的。

Python也是圖靈網站搜尋最多的一個關鍵詞。在過去數年,從語言本身的學習,到它在各方面的應用,我們也出版了與之相關的多本圖書,本文大致梳理了多本重點好書的學習路線,希望在大家選書的時候有所幫助。

倉促寫完本文後,我覺得成為一名優秀的工程師需要學習的真是太多了,而且既要涉獵廣泛,又要深度耕耘,職業選手只有終身學習才能保持線上狀態。

如果你只想作為一名業餘人員,掌握一點程式設計技能,幫助自己更好完成日常工作,可以搜尋本文中“入門”和“可以讀讀看”的部分(右側“相關圖書”中所列),找到相關書目開始入門,誰知道呢,也許會就此發現另一片天地。

Python語言學習

  • 零基礎

    父與子的程式設計之旅:與小卡特一起學Python
    是的,這本書的作者之一是一名小學生。對於零起點的讀者來說,它會告訴你什麼是程式設計,什麼是程式,程式有哪些方面,需要了解哪些概念。它不僅以一種有趣的方式介紹了Python程式設計的知識,還適用於其他程式語言的學習。

  • 入門

    Python程式設計:從入門到實踐
    幫助入門python,並達到可開發實際專案的水平
    Amazon程式設計入門類榜首圖書

  • 進階

    流暢的Python(高階)
    挖掘Python及相關程式庫的優秀特性,寫出簡潔、流暢、易讀、易維護的程式碼。
    尤其深入探討了Python語言的高階用法,涵蓋資料結構、Python風格的物件、並行與併發,以及超程式設計等不同的方面。

    Python資料結構與演算法分析
    學習資料結構與演算法對理解電腦科學的本質非常關鍵。
    資料結構與演算法通常是電腦科學專業的第二門課程,比第一門課程更深入。

    精通Python設計模式(第2版)
    在軟體工程領域,設計模式意為解決軟體設計問題的方案。本書將學習設計模式的核心概念,並用其解決軟體設計問題。著重討論“四人組”(GoF,Gang of Four)的設計模式——一些用於解決日常問題的設計模式的統稱。它們能通過有效的響應式模式,幫助構建有彈性、可伸縮、穩健的應用程式,並將程式設計技能提升至新的高度。

    Python函數語言程式設計(第2版)
    Python具備函數語言程式設計的許多核心特徵,使得我們可以借鑑其他函式式語言的設計模式和程式設計技術,編寫出簡潔優雅的程式碼。尤其值得一提的是Python的生成器表示式,使用它可以避免在記憶體中建立大型資料結構,通過降低資源消耗來提高執行速度。

其他基礎知識入門

學習程式設計並不僅限於某個語言,在學習的過程中,也不免要涉及一些其他方面的基礎知識,比如git、shell、資料庫以及演算法等等,我們有一些針對初學者的基礎教程,可以幫助你更好的入門:

  • git

    GitHub入門與實踐
    從Git的基本知識和操作方法入手,詳細介紹了GitHub的各種功能。秉承了日系技術書刊一貫的“手把手教學”風格,作者用親切的語言,簡明扼要的介紹,配以生動詳實的示例為我們一步步講解 GitHub 的使用方法,帶我們在實踐中學習 GitHub。

  • shell

    Linux Shell指令碼攻略(第3版)
    結合豐富的實際案例,介紹瞭如何利用shell命令實現與作業系統的高效溝通。
    普通使用者會樂於看到重新格式化照片、下載視訊和音訊檔案以及檔案歸檔這些技巧。
    高階使用者可以從中找到複雜問題的解決攻略及詳細講解,比如備份、版本控制和網路分組嗅探。
    系統管理員和叢集管理員則能夠學會利用容器、虛擬機器和雲來簡化自己的工作。

  • sql

    SQL基礎教程(第2版)
    豆瓣評分8.8分,日本知名資料庫工程師寫給初學者的實用指南,面向完全沒有程式設計和系統開發經驗的初學者,介紹了關聯式資料庫以及用來操作關聯式資料庫的 SQL 語言的使用方法。

  • 演算法

    演算法圖解
    本書完成了一項不可能完成的任務:讓數學變得有趣而易懂。
    圖文並茂,以簡明易懂的方式闡釋了演算法,旨在幫助程式設計師在日常專案中更好地利用演算法為軟體開發助力。

多面手 Python

資料分析

  • 入門

    Python資料分析基礎
    如果你使用電子表格軟體進行資料處理,那麼這本書就是為你準備的,書中的示例覆蓋了常用的資料來源和資料格式,包括文字檔案、逗號分隔值(CSV)檔案、Excel 檔案和資料庫,幫你學會用Python來自動完成現在需要不斷重複的工作。

  • 進階

    資料科學手冊
    學習如何通過 Python 的資料科學棧——包括 IPython、NumPy、Pandas、Matplotlib、Scikit-Learn,以及其他相關的程式庫——高效地儲存、處理和分析資料。從實戰角度出發,講授如何清洗和視覺化資料、如何用資料建立各種統計學或機器學習模型等常見資料科學任務,旨在讓各領域與資料處理相關的工作人員具備發現問題、解決問題的能力。

    Python資料分析:活用Pandas庫
    細緻講解了Pandas的基礎知識和常見用法,通過簡單的例項展示瞭如何使用Pandas解決複雜的現實問題,以及如何利用matplotlib、seaborn、statsmodels和sklearn等庫輔助進行Python資料分析,涵蓋了資料處理、資料視覺化、資料建模等內容。此外,本書還簡單介紹了Python資料分析生態系統。

    Python資料探勘入門與實踐(第2版)
    認真學完本書,能較好地理解資料探勘的基礎知識,掌握用資料探勘知識解決問題的最佳實踐,此外還能從書中找到幾個值得你深入研究的方向。作為資料探勘入門讀物,囊括了比賽結果預測、電影推薦、特徵提取、好友推薦、破解驗證碼、作者歸屬、新聞聚類等大量經典案例,

  • 可以讀讀看

    程式設計師的數學
    程式設計的基礎是電腦科學,而電腦科學的基礎是數學。因此,學習數學有助於鞏固程式設計的基礎,寫出健壯的程式。有的讀者可能會說“但我數學不好啊”,很多讀者“一碰到算式就跳過不讀”。本書儘可能減少了“大家不想看的算式”,也沒有過多的定義、定理和證明。
    這是為幫助程式設計師更容易理解程式設計而寫的書。希望你能通過本書學到有助於程式設計的“數學思維”。

    爬蟲

在我的軟體工程師職業生涯中,我幾乎沒有發現像網頁抓取這樣的程式設計實踐,可以同時吸引程式設計師和門外漢的注意。雖然寫一個簡單的網路爬蟲並不難,就是先收集資料,再顯示到命令列或者儲存到資料庫裡,但是無論你之前已經做過多少次了,這件事永遠會讓你感到興奮,同時又有新的可能。——《Python網路爬蟲權威指南(第2版)》

Python網路爬蟲權威指南(第2版)
網頁抓取涉及非常廣泛的程式設計技術和手段,比如資料分析、自然語言解析和資訊保安等。本書將在第一部分介紹關於網頁抓取和網頁爬取(crawling)的基礎知識,一些高階主題放在第二部分介紹。建議所有讀者仔細學習第一部分,並根據自己的實際需求深入探索第二部分。

Python 3網路爬蟲開發實戰
如果你需要了解全面和前沿的爬蟲技術,而且想迅速地上手實戰,這本書就是首選。
部落格文章過百萬的靜覓大神力作。

Python 3反爬蟲原理與繞過實戰
知己知彼方能百戰不殆。作者韋世東是一名高階爬蟲工程師,對各種爬蟲和反爬蟲的技巧進行過深入的研究。書中首先對各類反爬蟲技術進行了合理的歸類,然後通過剖析多個案例幫助大家理解各類反爬蟲技術的原理。

人工智慧

  • 機器學習

    Python機器學習基礎教程
    機器學習入門書,全面涵蓋在實踐中實現機器學習演算法的所有重要內容,幫助讀者使用Python和scikit-learn庫一步一步構建一個有效的機器學習應用。對於那些想要使用機器學習演算法而又不想花費大量時間研讀微積分、線性代數和概率論的人來說,希望本書能夠有所幫助。

  • 深度學習

    深度學習入門:基於Python的理論與實現
    日亞“人工智慧”類圖書榜首
    深度學習真正意義上的入門書,使用平實的語言,結合直觀的插圖和具體的例子,將深度學習的原理掰開揉碎講解,簡明易懂。
    對於非AI方向的技術人員,本書將大大降低入門深度學習的門檻;對於在校大學生、研究生,本書不失為學習深度學習的一本好教材;即便是在工作中已經熟練使用框架開發各類深度學習模型的讀者,也可以從本書中獲得新的體會。

    Python深度學習
    Keras之父、Google人工智慧研究員François Chollet執筆。通俗易懂,幫助建立關於機器學習和深度學習核心思想的直覺。
    30多個程式碼示例,帶你全面掌握如何用深度學習解決實際問題。

  • 計算機視覺

    Python計算機視覺程式設計
    Amazon.com計算機視覺類圖書第一名。計算機視覺就是用計算機程式設計,並設計演算法來理解在這些影像中有什麼。計算機視覺的有力應用有影像搜尋、機器人導航、醫學影像分析、照片管理等。 本書旨在為計算機視覺實戰提供一個簡單的切入點,讓學生、研究者和愛好者充分理解其基礎理論和演算法。

Web開發

Flask Web開發:基於Python的Web應用開發實戰(第2版)
Web開發入門經典教材“狗書”。作者採用講解與例項相結合的方法,不僅介紹了Flask安裝、使用等基礎知識和Flask核心功能,還帶領讀者從頭開始一步步開發了社交部落格應用Flasky,涵蓋開發、測試到部署的Web開發全過程。

Django企業開發實戰:高效Python Web框架指南
資深開發工程師the5fire多年開發經驗總結。以部落格系統為原型,教你以真實的視角搭建自己的生產環境,通過從零開發到部署完整案例,介紹了Python Web框架Django在企業中的應用。

  • 可以讀讀看

    現代 Web 應用都不可避免地需要使用 HTML、CSS 和 JavaScript。另外,如果經常與網路技術打交道,網路相關知識也必不可少,以下圖書可供參考:

    HTML5與CSS3基礎教程(第8版)
    全球最暢銷Web開發入門書 ,經典之處是獨特的分步講解形式,貫穿全書的統一示例,以及通過提示和補充材料給出的豐富的擴充套件學習資源,因此對初學者而言,這套圖書歷來是學習效率的保證。

    JavaScript高階程式設計(第3版)
    本書提供了JavaScript開發人員必須掌握的內容,全面涵蓋了JavaScript的各種高階、有用的特性。“與那些把大量篇幅花在講解背景知識上的書,以及那些讓人感覺好像是要使用JavaScript開發導彈制導系統的書相比,這本書讓人感覺細緻周到、親切自然。這是一本寫給“普通人”的書,它能讓你編寫出引以為榮的程式碼,構建出令人叫絕的網站。”

    網路是怎樣連線的
    “計算機網路概論”圖解趣味版,讀懂了這本書,你就理解了網路世界的全貌。

    圖解HTTP
    如果想要在前端工程師道路上走得更堅實,絕對不能繞開學習 HTTP 協議這一環節。
    本書的特色為在講解的同時,輔以大量生動形象的通訊圖例,更好地幫助深刻理解HTTP通訊過程中客戶端與伺服器之間的互動情況。通過本書,可快速瞭解並掌握HTTP協議的基礎,前端工程師分析抓包資料,後端工程師實現REST API、實現自己的HTTP伺服器等過程中所需的HTTP相關知識點本書均有介紹。

網路程式設計

Python網路程式設計(第3版)
涵蓋網路程式設計所有經典話題,包括網路協議、網路資料及錯誤、電子郵件、伺服器架構,以及HTTP及Web應用程式,對SSL支援、非同步I/O迴圈的編寫方法、跨站指令碼以及跨站請求偽造攻擊網站的原理及保護方法等內容也有詳盡介紹。

以上就是目前Python領域已出版圖書的大概路線圖了,當然還有很多細分領域的圖書沒有被提到,比如特徵工程、對抗網路、NumPy、Serverless架構、SQLAlchemy、測試驅動開發、SciPy、黑客攻防等等,如有需要,可在社群內搜尋相關主題,也可點選python標籤,檢視所有相關圖書。

倉促成文,如有疏漏,敬請諒解。

相關文章