必讀的編程書:用Python玩轉(zhuǎn)數(shù)據(jù)科學編程
本文轉(zhuǎn)載自公眾號“讀芯術(shù)”(ID:AI_Discovery)。
在數(shù)據(jù)科學的實際應用中,編程的重要性要遠遠高于數(shù)學。為什么這么說呢?原因在于,當你與一些軟件開發(fā)人員共事于一家公司時,了解如何讓自己發(fā)揮更大的作用是很重要的。
大多數(shù)數(shù)據(jù)科學家都在提供產(chǎn)品/服務的公司里工作,這些產(chǎn)品/服務主要由軟件開發(fā)團隊開發(fā)。數(shù)據(jù)科學家通過數(shù)據(jù)分析或某種類型的預測建模來擴展上述產(chǎn)品或服務的功能,只知道如何在筆記本上訓練機器學習模型是不夠的。同樣地,要和軟件開發(fā)部門展開有效工作,只了解軟件開發(fā)的基本知識也是不夠的。
你需要知道如何編寫簡單有效、可讀性高的代碼,還需知道這些代碼的最佳組合方式。數(shù)據(jù)結(jié)構(gòu)、算法、設計模式以及面試問題就是更高級的編程概念發(fā)揮作用的地方,這些概念不一定只與面試有關(guān)。大多數(shù)人會選擇Python作為編程語言,因此掌握該語言的非數(shù)據(jù)科學方面至關(guān)重要。
本文就將介紹3本對于數(shù)據(jù)科學家極其有用的編程書,讓我們開始吧!
《使用Python實踐數(shù)據(jù)結(jié)構(gòu)和算法》(Hands-On Data Structures and Algorithms with Python)
鏈接:https://amzn.to/3hiEHW8
如果打算認真對待編程工作,那么一定要學習數(shù)據(jù)結(jié)構(gòu)和算法。這本書涵蓋了初學時不太理解的一些概念,但閱讀之后你就自然懂了,你會發(fā)覺有效的代碼是如此地優(yōu)美,書中還介紹了一些常見面試問題的回答。
這是學習Python編程語言中的數(shù)據(jù)結(jié)構(gòu)和算法的入門書籍,它涵蓋了諸如內(nèi)置數(shù)據(jù)類型、集合模塊的數(shù)據(jù)類型、單鏈接和雙鏈接列表、堆棧、隊列、樹和樹遍歷、散列表、圖表、搜索和排序算法等主題。
網(wǎng)上有許多關(guān)于這些方面的學習資源,但是我覺得這本書的價格更合理。這本書有400多頁,別想著很快就能讀完。書里的主題相當復雜,至少要花兩個月的時間。
《掌握Python設計模式》(Mastering Python Design Patterns)
鏈接:https://amzn.to/2ZulMBw
將設計模式看作一組最佳實踐,在設計應用程序時,可以用它解決特殊問題,這本書會教你如何構(gòu)造代碼。僅靠筆記本無法解決產(chǎn)品環(huán)境問題,即便不編寫應用程序(傳統(tǒng)意義上來說),你也必須學習如何正確地構(gòu)建代碼。
這本書涵蓋了包括抽象工廠模式、構(gòu)建器模式、適配器模式、裝飾器模式、橋接模式、外觀模式、命令模式、觀察者模式等眾多設計模式。
為了使學習更有邏輯性和易用性,這本書分為幾個章節(jié),主要章節(jié)為創(chuàng)建模式、結(jié)構(gòu)模式和行為模式。本書只有250頁左右,所以你應該不會花太長時間就能讀完。再次提醒,這個話題一點都不簡單,所以慢慢來,不要著急。
《Python中編程面試的要素》(Elements of Programming Interviews In Python)
鏈接:https://amzn.to/3ivutTS
如果你讀了的第一本書——《使用Python實踐數(shù)據(jù)結(jié)構(gòu)和算法》,你可能會發(fā)現(xiàn)這兩本書有點相似。但這不代表再讀這本書是做無用功,讓我來詳細說明。
你需要好好學習數(shù)據(jù)結(jié)構(gòu)和算法,復習幾個月前學過的概念絕對是有用的。此外,你應該學習或至少瀏覽一些最常見的編程面試問題,你可能在面試時遇到這些問題。你應該了解這些東西,即使它與數(shù)據(jù)科學沒有直接聯(lián)系。
我知道這聽起來很無奈,但這就是數(shù)據(jù)科學,面試官要求你要知道大量知識,在工作中你也許只會用到5%。也許會用到吧,但事實就是如此殘酷。
想成為優(yōu)秀的數(shù)據(jù)科學家,你要學的東西還有很多,先從這三本書開始吧。