Show
选技术书有两个诀窍,一是看市场是否认可,二是看作者是否NB市场认可的书自然是卖的的最好的,京东上搜一下python,爆款书都排在前面(广告除外)。 爆款技术书内容质量可能不是最好的,但一定是最适合入门者学习的,而且架构合理,错误率低,版本更新快。 作者牛逼,书自然也不会差到哪去。比如说《利用Python进行数据分析》的作者Wes McKinney,他是开源分析库pandas的主要作者;还有《Think Python》的作者Allen B. Downey,Think系列大牛;其他像《effctive python》、《python cookbook》的作者都是python社区的重量级人物。这些大佬的书值得一读。 Think Python作者python的自学书籍非常多,涉及基础入门、web开发、机器学习、数据科学、自动化测试、量化交易等各个门类,新手很容易陷入到处是书却无书可看的局面。 所以我们要明白自己学习python出于什么目的,处于哪个阶段,再选择合适的书看。 如果想少走弯路,不妨花个早餐钱看看视频课程。自制力比较差的小伙伴,跟着老师把python基础走一遍,效率非常高。 《Python编程,从入门到实践》 这应该是世界上最畅销的Python编程书,没有之一。英文名叫作《Python crash course》,作者Eric Matthes是一名高中老师,正是有着丰富的教学经验才会写出这样深得人心的书。 该书的特点是一半基础(语法知识),一半游戏(案例练习),所谓寓教于乐,通过案例练习的方式巩固基础知识。这里的练习和高中数学枯燥的课后练习可不一样,作者把代码放到一个个场景里,学习者在写个小游戏的过程中就把语法掌握了。 看了本书的目录,基本把python的核心语法都讲到了,学完之后可以搞点小事情,比如数据分析、可视化编程、web开发等。 《Python学习手册》 这是一本老少咸宜,高手与小白都可以看的一本书,英文名叫作《Learning Python》,作者Mark Lutz是一位Python培训讲师,也是Python社区的元老级贡献者。可想而知该书是一本百科全书式的python宝典。 该书已经出到第五版,对语法的讲解非常详细,而且有丰富的插图和示例代码。详细有时候意味着啰嗦,很多人觉得作者过于琐碎,但其实不太明白作者的用心良苦,想要学好python还真得细细琢磨语法。 当然语法书需要配合大量的练习,切忌盲目啃书,敲代码才会理解更深。 本书的主要内容包括:python百科小常识、python历史、命令行、IDE、python语法基础、python模块、大量的练习。 如果你真心想做一位python开发,该书是不错的起点。 《笨方法学Python》 这本书体现的是一种学习python的思维,不对,应该是学习任何一种编程语言的方法论。作者鼓励的是practice、practice、practice,这或许真的是学习编程的唯一捷径。 书里面一步步引导初学者从下载软件开始,到安装、配置,写出第一个hello world,最后实现一款有用的小软件或者有趣的小游戏,最终学会并喜欢上python。 我也是看这本书入门python的,捧着它敲了一个月的代码。 给大家看看作者的自述,很有意思: Python进阶书(适合有基础的)《流畅的python》 豆瓣9.4分!这本书不是通俗意义上的python语法书,而是教你写出更简洁、更规范、更聪明的python代码。 内容方面深入探讨了Python语言的高级用法,涵盖数据结构、Python风格的对象、并行与并发,以及元编程等不同的方面。作者Luciano Ramalho是一个几十年的骨灰级python程序员,既做开发,也教编程课。 《Effective Python:编写高质量Python代码的59个有效方法》 这本书讲的并不是Python基础编程,而是Python的规范和技巧,也就是pythonic。 pythonic简单的翻译就是python风格。pythonic code,就是说写代码要带有浓厚的python规范和python风格。而Python的代码样式规范称之为PEP 8规范,往大了说,遵守PEP 8是成为一个优秀python程序员的必备条件。 书中有59个Python编程的技巧和捷径,并用真实代码示例进行了解释。当然阅读起来会有些门槛,适合那些有基础的童鞋。 《Python Cookbook》 cookbook系列一向是精品,python这本也不例外,适合有基础的朋友看,里面讲了很多python编程的奇技淫巧,对资深开发者来说也是可以长读的。 该书介绍了Python应用在各个领域中的很多使用技巧和方法,其主题涵盖了数据结构和算法,字符串和文本,数字、日期和时间,迭代器和生成器,文件和I/O,数据编码与处理,函数,类与对象,元编程,模块和包,网络和Web编程,并发,实用脚本和系统管理,测试、调试以及异常,C语言扩展等。 以上推荐的都是比较经典的python书,大家看的时候选择其中一两本即可,因为知识点都是通的。 对于小白来说自学也不是件容易的事,需要花相当的时间去适应python的语法逻辑,而且要坚持亲手敲代码,不断练习。 我这边也整理过一些开源的Python学习资源,大家可以看看。 一、起因每年都有若干个朋友同事咨询我,他们想学习Python,学好Python,希望我能分享分享经验技术。 我自己在python开发上有一定积累、平时也喜欢分享一些技术知识。但是想回答这个问题,还真不容易。 因为 Python 涉及的知识内容还是比较多的,短时间内必然无法详述所知。我自己也比较希望分享的内容能对朋友们都有用,而不是说完即忘、听完即止。 入门类的介绍太粗浅,网络上各处也都有。 纯粹的知识讲解,那么基本只能讲一小块,毕竟Python的一小个分支内容,都可以出一整门课的内容来讲解。这样讲反不如直接在网络上寻找相关课程上,毕竟也是人家精心准备的。 于是往往就回复朋友们,让他们多读书,并推荐相关书籍读。 但事后细想,这就像教武功只教招式,却不告诉心法内功的修炼方式。可能可以学个一招半式,但无法精进。要成为大师,应该内外兼修。 故而,也要修炼 学习的内功心法,即能快速掌握一项技能知识的方法与能力。 所以写下本篇文章,既分享书籍,也配合分享一套自学python的方法论,帮助小伙伴后续更快地学习、进阶。 毕竟授人以鱼不如授人以渔。 我是有这个信心分享自学方法,因为我自己也是一路自学而来的。 我是非IT科班出身,本科金融、研究生数学,Python等技术均是纯自学的。自学的成果也算良好,硕士一毕业便在香港从事量化开发工作,业余时间分享的知乎,如今也有9000余人关注。 有这个成果,大概可归因于:兴趣 + 工作需求 + 良好的学习方法
而本文重点将分享我的一套Python技术学习方法论,提供一套在学习python路上的参考指南。 前半部分以重点阐述学习方法,后半部分则分享对应的学习路径、与优质书籍推荐。 期待得到各位收藏与点评。 在介绍学习方法前,先简单介绍一下我们的学习对象:Python。 Python是一种流行的编程语言。它由Guido van Rossum创建,于1991年发布。Python社区二十几年来蓬勃发展,在很多业务领域上形成了强大的生态,如 Web开发、网络编程、自动化运维、Linux系统管理、数据分析、科学计算、人工智能、机器学习等,以至于不少初创公司都采用Python来覆盖大部分技术需求。 Python 知名应用包括但不限于 Youtube、Reddit、Dropbox、豆瓣以及我正在写作的知乎。 Python 优点Python是公认的效率极高的工具性语言,其优点包括:
Python 缺点任何事物都不可能是完美的,Python也是。我们也需要理解Python的劣势,以更好地在我们工作中进行技术选型。 Python较为明显的劣势有:
但瑕不掩瑜,Python 依然是一门出色的语言,在中小型业务上依旧游刃有余,现在学习它还是十分超值的。 三、Python 学习方法话归正题,我们开始介绍 自学Python技术 的方法。 任何技术的打磨,都需要吸收大量的知识进行积累(输入),并在长期实践中进行完善(输出)。 Python 也不例外。 对于自学,最主要的途径无外乎以下几条
以上这几条在自学的过程中都会用到,不过在不同阶段侧重不同。 1. 视频:入门、学习概念性知识在入门阶段,看视频教程是有必要的。因为入门时大概率眼前是一片茫然的,啥都不懂,这时候配合看一些视频教程,可以跟着操作,很快就能学习到怎么安装环境、使用Python和相关的库,用什么样的编辑器(IDE)来写代码等等。入门具体应用场景,如数据分析,也一样,你可以跟着视频,一步一步走写代码看结果,从读入数据、分析数据、画图、生成报告,做完以后也就都大概懂了。 前期不用过于强调自己知识体系的完备性,保护好自己的兴趣和求知欲反而更重要。 但看视频就跟老师上课一样,所有东西过一遍,往往学了个大概,对基本概念不甚明确,没有书里详尽,会导致基础不扎实。 所以建议看完视频,对技术有一个全局的认识以后,便可以开始读书。 2. 读书:系统性学习与建立知识框架单位时间内书的信息密度比视频大的多,而且读书可以自己控制速度,简单的地方可以一扫而过,难的地方就放慢速度,读起来更有效率。 相比于看视频而言,看书需要主动、需要投入更如精力和毅力,但看书吸收效率高。 所以
读书方法是本文的重点,后面将详细介绍我的心得和相关书籍推荐。 3. 技术文档:学习成熟的第三方工具与技术实践技巧通常根据业务类型,你需要对相应的主流的工具框架进行学习,如对于数据分析领域而言,numpy、pandas就是必学。 大量数据书籍中都会有介绍这类工具的使用,但是到了实践中的时候,你会发现书上的内容还是比较有限的,想要全面了解,那么阅读这些工具的文档是必不可少的,如果文档上依然解释的有限,那么放心,你大概率不是第一个遇到这个问题的,可以充分利用Google进行搜索,各个论坛上基本都有相关的答案。 4. 技术论坛:技术实践与技巧,是知识体系的精华补充编程这个技术,是公认的最适合自学的一门技术。高质量的学习资料很多都是免费开源的,并且很多高质量项目最关键的源代码也是公开的;同时遇到问题也是最容易得到解决的,因为同行程序员们都是电脑前活动的动物,而且喜好分享(炫耀~)技术知识,你的问题大概率各种论坛、博客上已有发表,且下面有一堆资深老鸟提供解答方案,99%的问题几乎都是如此。 如果不幸,遇到了1%没有人问过的问题,那么也不必担心,详细地把这个问题描述好,发到问答网站上,不久一定会有热心小伙伴提供解决方案,毕竟这又是一次难得的炫技机会。 特别的,如果要在社区里进行提问,非常推荐先阅读一遍《提问的智慧》,能够提高问题得到又快又好的回答的概率。个人认为是技术学习的必读文章之一。 5. 业务实践:总结经验,反哺知识体实践是检验整理的唯一标准,同时,实践的过程中,你会明白所学的技术该用在哪,也会逐渐意识到自己的不足,知道光会用技术,和用好技术是两码子事,从而逐步去完善自己的技术体系。 6. 源代码:深度理解,可从底层进行改造技术框架以满足需求当业务更加深入的时候,你会需要对原有框架进行改造、甚至自建一套框架,那么此时去阅读阅读经典项目的源代码就非常有必要了,能偷师学习最精华的架构设计与功能实现。 四、Python 读书方法论:飞轮读书法其中,在各个知识学习的途径里,我尤为看重书籍阅读。 读书的方法,尤为推荐读书飞轮这套理论,作者是 亚马逊工程师 阿莱克西斯 @阿莱克西斯,文章链接 文章的核心观点为:多读书、重阅读速度而轻练习。很像2000年前诸葛丞相的那套“观其大略、不求甚解”。 我个人对这套方法论是非常认同、也极其受用的。我个人研究生毕业4年多时间内,应该买了不下六、七百本书,堆满了书房。 关于什么是读书的飞轮,如何转动读书飞轮,《书魔的学习方法》原文中有较详细地展开说明。 本文的这个章节,将摘录部分原文,并结合我个人对其的理解进行简要阐述 另外备注一下:读书的飞轮适合 技术入门后、且有一定实践积累的阶段 开始使用。入门时还是要仔仔细细看书,打好基础、打好基础、打好基础。 1. 什么是读书的飞轮读书的飞轮效应 指的是技术书会越读越快。 其理论基础在于:
进而去解决我们学习的终极矛盾 —— 用“有限的大脑去记录无限的知识” 所以飞轮式读书法非常强调 快速读书、海量读书,重阅读与思考,轻练习与实践。其原因也不难理解:
2. 如何转动读书的飞轮:如何才能够让飞轮转起来,读更多的书? 这里总结了8条Tips:
以上,就是对飞轮读书法的一个大概说明。 有了这个“武功心法”后,相信你学习“武功招式”应该能更加得心应手。 五、Python 书籍推荐那么我们正式进入Python的读书学习。 读书,自然要读好书。 这里我把自己阅读过的Python好书分成三部分(1. 原理 2. 数据分析 3. 工程开发),每个部分精选5、6本书进行分享。 分享的书籍将以 由浅入深、循序渐进 为原则进行推荐,让大家逐步深入各个模块的知识学习。 另外,大部分都是豆瓣高分书籍,推荐理由豆瓣上也有详细阐述,我这里就简单提上几嘴,部分内容直接引用豆瓣精选书评。 1. 原理最开始学习Python时,就必须要学习它的原理。 学习路径:从基础语法,到高级语言特性,到最佳实践,如果有时间再翻源码学习 《Python编程 从入门到实践》第2版
基本上,当要入门一项学科知识前,都必须有一个大概的框架,这样学起来效率会比较高。 本书是面向初学者的Python编程实用指南,也是目前豆瓣上python书籍评分最高的书籍之一。书本的理论和实践恰到好处,行文逻辑流畅不跳跃,内容精简没有艰深晦涩的概念,非常适合入门,零基础小伙伴读入门系书籍要慢慢来,最重要的目的是培养兴趣。 边看边码代码,看完这本书之后,基本就是入门了。如果追求快速落地应用,其实也可以快速调到数据分析数据学习进行实际案例分析。此时,你会编写简单脚本解决问题。 《流畅的Python》
本书应该是深入理解Python原理与语法的最好书籍之一,是极佳的 Python 进阶类书目。书本聚焦在数据模型、数据结构、函数对象、面向对象、控制流程与元编程等话题上,关注 Python 对象的构造以及语言内部的特性细节,目的是让读者写出更地道、简洁高效、可读易用的代码。 全书 600 多页,洋洋洒洒,旁征博引,内容充实到让人应接不暇,让人时不时就产生一种“又学到了新知识”的感觉,以及一种“哦我想进一步学习 xxx”的求知欲望。 Python进阶,必买必学! 《Python Cookbook》第3版
本书和《流畅的Python》一样,也是深入理解Python涉及的高级语法和特性书籍,文字描写相对于《流畅的Python》会更晦涩一些,但在Python类机制与原理上阐述得更深入,适合作为前者阅读的辅助或补充书籍。 同样是Python进阶,必买必学! 《Effective Python——编写高质量 Python 代码的 90 个有效方法》
学好了基础原理,动手时也要了解了解最佳实践。 本书汇聚了90条优秀实践开发技巧,可以帮我们掌握Pythonic编程范式,充分发挥出Python语言的强大功能,写出健壮而高效的代码。 《编写高质量代码:改善Python程序的91个建议》
与上书相似,不过是国人所写,额外添加了 设计模式、python内部机制的探讨,非常适合作为《Effective Python》一书的补充。 《Python源码剖析》
如果读完《Python Cookbook》和《流畅的Python》还不过瘾,恭喜你,你可以去挑战、去吸收到Python的精髓 —— C语言 Python本质上是C语言编写的,《Python 源码剖析》是一本极好地讲解Python运行机制的书,书里用最基础的C语言解释Python的运行原理,你会感叹,原来这些Python神奇的功能,是这么实现的。 这本书需要C/C++功底。书中以CPython为研究对象,在C代码一级,深入细致地剖析了Python的实现。书中不仅包括了对大量Python内置对象的剖析,更将大量的篇幅用于对Python虚拟机及Python高级特性的剖析。通过此书,读者能够透彻地理解Python中的一般表达式、控制结构、异常机制、类机制、多线程机制、模块的动态加载机制、内存管理机制等核心技术的运行原理,同时,本书所揭示的动态语言的核心技术对于理解其他动态语言,如 Javascript、Ruby等也有较大的参考价值。 很推荐进阶后的小伙伴读这本书。因为书本旧,08年的,所以现在绝版了,基本只能看到电子版。但我当时看得很过瘾,于是一高兴,就花了近5倍价格,买了本正版二手书收藏,算是用实际行动做了推荐。 2. 数据分析学习Python,大部分人都是看中了其强大的数据分析能力,很多公司的业务也都有这方面的需求。 数据分析,核心包括获取数据、数据预处理、数据分析建模和数据结论输出4个步骤。
(引用自书籍《Python数据分析与数据化运营》第二版) 学习路径推荐:从数据分析,到机器学习,再到深度学习,并且结合业务实践,提高开发的熟练度 《利用Python进行数据分析》
数据分析入门必读 这本书是Pandas的模块作者写的书,曾是AQR Capital Management的定量分析师。除了pandas之外,作者对本书覆盖的iPython,NumPy,matpotlib等也都有着很深的理解。而本书的主要章节也是对这几个工具进行详尽介绍,用较为丰富的用例阐述其功能。这几个库基本是Python数据分析过程中不可或缺的。欲善其事,必先利器,这本书值得一个必看标签。 这本书我至今都带在身边的工具书之一。 看完这本书,你就应该有能力解决业务相关的数据分析问题 《机器学习实战——基于Scikit-Learn与TensorFlow》
本书分为机器学习和深度学习两部分。推荐机器学习部分,涵盖机器学习的基础理论知识和基本算法——从线性回归到随机森林等,帮助读者掌握Scikit-Learn的常用方法;深度学习建议阅读《Python深度学习》。对于机器学习的原理推导则推荐看周志华的西瓜书。 《Python深度学习》
Keras之父执笔,大神不但技术了得,文笔也好,涵盖了深度学习的基础知识、Keras使用模式以及深度学习最佳实践。 本书立足于人工智能的可达性和大众化,书中包含30多个代码示例,步骤讲解详细透彻,读者甚至无须具备机器学习相关背景知识即可展开阅读。本书的目标:在学习完本书后,读者将具备搭建自己的深度学习环境、建立图像识别模型、生成图像和文字等能力。 《Python金融大数据分析》
本书的大部头同样有对 numpy,pandas, matplotlib, scipy 的详尽介绍,不同的是,介绍过程中,均是使用金融方面的样例。内容全面,除了基础的数据分析外,还介绍了 组合优化、估值、衍生品定价 等Python金融应用 。本书干货不少,值得金融分析领域的从业者一看。 《Python数据分析与数据化运营》第二版
本文作者是十余年的互联网从业者,数据以互联网运营业务为主题,展开对数据分析的基本知识、评估指标、应用场景、分析模型、小技巧、经验分享等,而且可贵的是知识点之间的衔接非常完备,不像传统工具书那样有章节间的知识断层。实用性非常强,其中的技巧、经验可以完全范化到各个领域。 《Python科学计算》
绝佳的数据分析库参考手册。相比市场上多数书籍均是介绍各个工具库的案例实践,本书则侧重于工具库的内在原理阐述,让你使用工具库时能更驾轻就熟。涉及的应用领域包括数值运算、统计分析、符号运算、图表可视化、图像处理以及界面设计等。作者功力深厚,写作严谨,每个章节都很扎实不注水,可见作者研究之深。 其他
3. 工程开发软件开发周期通常步骤冗长、且需多次迭代,其必然要对编程开发有对应的要求。 以 算法工程师 为例,其主要业务是将 数据分析师 的模型结论进行工程化部署,看似写个代码就好,实则工作量十足。 因而也十分有必要:
学习路径推荐:从类级别的面向对象,到模块级别的设计模式,再到库级别的架构体系,到系统级别的持续交付,打造工程化、体系化的开发范式 《Python面向对象编程》
Python 是一种面向对象的解释型语言,面向对象是其非常重要的特性,面向对象的封装特性能够提高类的易用性,减少编程过程中代码出错的风险;继承特性实现代码的复用;抽象让程序的设计和实现分离;而多态提高了程序的可扩展性。本书通过Python的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念和原则。 《Python3标准库》
对于程序员而言,标准库与语言本身同样重要,它好比一个百宝箱,几乎能为各种常见任务提供完美解决方案!本书以案例驱动的方式讲解了标准库中一百多个模块的使用方法和工作原理,比标准库的官方文档更容易理解,是Python程序员熟练掌握和使用标准库的绝佳参考书籍。 《Head First 设计模式》
有了工具,不代表能用好工具。你还需要会一点经典的设计模式来整合他们。 本书相当赞的一本设计模式入门书。用实际的编程案例讲解算法设计中会遇到的各种问题和需求变更,并以此逐步推导出良好的设计模式解决办法。比传统的“四人书”好读很多。 《架构整洁之道》
本书是马丁大叔在架构领域的登峰之作,围绕“架构整洁”这一重要导向,系统地剖析其缘起、内涵及应用场景,涵盖软件研发完整过程及所有核心架构模式及原则。 《Python进阶 —— 实际应用开发实战》
很进阶的书,并且都采用了最新的技术,介绍了Python语言的在软件生命周期中的最佳实践和敏捷开发方法,涵盖测试、打包、发布、以及项目模板化,并对python语言的新特性asyncio展开详细描述。 《Python项目开发实战》(日)
难得的完整介绍python程序开发全生命周期的书,书本有点旧,但不妨碍其通用知识。 作者从Python的环境搭建开始讲起,介绍了Web应用的开发方法、项目管理及审查、测试与高效部署、服务器调试等内容,尽可能网罗了Python项目开发流程中的方方面面,有助于开发者建立有序生产环境,提高开发效率,让编程事半功倍。 其他
六、尾声至此 Python 书籍推荐也描述清楚了,但是实际要成为领域的专家,不仅仅是学门技术语言就够的。工程师要学好操作系统、计算机网络、数据库开发、服务器管理;分析师也要不断钻研各自领域的业务特性与数据风格,并且学会和需求方打好配合。 学海无涯,T型人才到哪都稀缺,自学完Python,再继续拓展其他的知识边疆吧。 自学是艰苦的,但苦中有乐。 因为自学的生活无比充实,每天都能感到今天的自己比昨天有所提升,也能期待着明天的自己又比今天更强。 变得更强,与君共勉! |