python十年从业者,上市公司技术总监:python应该这样入门和进阶
先说下我用Python的经历,我 2009 年开始用 Python 写爬虫和数据挖掘,那时的工作是做舆情分析和问答系统。最近6年时间做Python web开发和继续写爬虫,顺带做产品运营工作。 至今用Python也有10年了。那时的 Python 2.7 是主流,Python 3.0 刚出来,根本没啥人用,因为3.0不向后兼容和很多第三方库都不支持。现在Python 3的使用已经是绝对主流了, 所以学习的话学Python3了吧。把一个项目从Python2改造成Python3的过程是很痛苦的,不是重新修改一下语法那么简单。
过去几年我每年都会面试一些候选Pythoner ,从中选出合适的开发者。一些被聘用的面试者前一份职业可能跟猿人学的读者朋友有相似之处, 这些人中有的是学气象的,有的是在海上做石油勘探的,有的曾经是开大货车的,有的是从部队转业出来的。我都把他们改造成了合格的Python developer。那个开大货的后面被我发掘,成为了技术部的负责人。
说到这感觉我是想要卖课的一样了,别误会啊,交代一下经历的意思是,我有实际经验能体会和知道新手怎么入门和进阶的,不是胡说。
一、关于学习书籍
Python入门书籍我推荐《python编程快速上手》,这是一本非常薄和精炼的书籍,国外很多Python大佬对他的溢美之词我就不截图了,哈佛和MIT等大学使用它作为教材。我也只看过这一本Python书籍,我在2009年用了一个下午的时间看完了它的英语电子版,就开始练手写代码了,可见它是多么的精炼和短薄。中英文电子版都是免费的。(文末有领取方式)
书籍多了也看不完,所以要抱着一本使劲啃,一本书要反复读,编程类书籍里面的代码,要自己手动敲进电脑,运行调试通过,看懂每一行代码。
二、为什么Python语法熟练了还写不出程序
那是练得不够多,代码写得不够,光看书,看视频不大量练习是不可能的。书籍上,资料上的代码要用手一行一行敲,运行时可能会报错,运行结果不一致。这就需要调试程序,不要怕程序出Bug,调试Bug,那是作为程序员的常态生活。也是进阶的一个重要手段。善用搜索引擎,你遇到的问题,绝大部分在网上已经了解决方案了。要去看程序报错时的错误栈提示,会告诉你程序第几行,出了什么问题。
如果没有报错,是程序逻辑错误的话,如果不会用IDE的调试工具的话,没关系,最笨的调试方法就是给每一行都加print打印,把关键变量值打印出来,然后分析这些值跟你的设想是不是一致的,就知道程序逻辑错在哪里了。
记得有个读者朋友问我一个爬虫抽取网页的问题,抽取不出来他想要的信息,他一直在生看代码排查抽取逻辑那一块代码,我让他把前面关键变量的值打印出来,他自己一下就明白错误了。是因为他保存网页的字符串是空的,而抽取网页信息那一块的代码没有问题的。
一个将来以写代码为职业的大学生,毕业要找到一份不错的编程工作,大学几年的编码量要达到6-10万行。而一个人每天的有效编码量在100-150行左右。你可以算一下,大学几年基本每天都要大量编码练手才能达到这个量。
我举这个例子是想说明,你想作为一个没有编程基础的人能上手写Python代码,有效编码量至少也要达到5000行左右。
按每天有效编码100行算,也至少要连续写代码50天。
这跟学英语是一个道理,单词量不够,听力听的时间不够,就只能囫囵吞枣。
三、写小项目练手
当你看完一些知识点,想要强化练习时,就需要写一些只需几行代码到十几行代码的小功能来练手。在大学学Linux系统编程时,老师建议学Linux的方法就是把常用的系统命令,自己写程序来实现。
我觉得这也可以运用在学Python上。
1).比如实现find命令:查找指定文件名的文件:
2).实现ls命令:显示当前目录有哪些文件,显示文件的创建日期和文件大小。
可以很好熟悉Python内置os模块和sys模块
还要实现ls 可以按修改时间排序,文件大小排序等。
可以熟悉Python的list 和 dict 这个两个数据结构。
3).实现cat和wc命令,统计指定文件中的字数,行数等。
可以熟练Python的str字符串
4).实现wget命令,把指定url的网页抓下来。
可以熟悉一些网络知识,对风靡万千的requests库有所了解。
简而言之,勤加练习,多动手,善用搜索引擎。
书籍内容
第 1 章 Python 基础
第 2 章 控制流
第 3 章 函数.
第 4 章 列表
第 5 章 字典和结构化数据
第 6 章 字符串操作
第 7 章 模式匹配与正则表达式
第 8 章 读写文件
第 9 章 组织文件
第 10 章 调试
第 11 章 从 Web 抓取信息
第 12 章 处理 Excel 电子表格
第 13 章 处理 PDF 和 Word 文档
第 14 章 处理 CSV 文件和 JSON 数据
第 15 章 保持时间、计划任务和启动
第 16 章 发送电子邮件和短信
第 17 章 操作图像.
第 18 章 用 GUI 自动化控制键盘和
附录 A 安装第三方模块
附录 B 运行程序
附录 C 习题答案
这是该大牛看了几十本python书籍之后,力推大家看的一本书,需要的小伙伴,只需要转发并关注小编,私信“资料”就可以获取这本书的电子版。
另外小编还整理了北京顶尖python大牛录制的python400集资料,被业界称为是小学生都能看懂的python教程,简洁明了,通俗易懂,非常适合新手学习。需要的赶紧领取吧,仅此一次,只限今天。