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