来得及
我同样是一个开始学习Python相对较晚的人。
2015年7月本科毕业至9月研究生开学期间,我想找一份实习锻炼一下自己,当面试官问我,
“你会Python吗?”
“啊?Python是什么?你能给我拼写一下名称吗?”
结果可想而知,面试结果很差。
所以回到家中我就马上开始了解这么从未听说过的编程语言,然后疯狂的开始学习,这里,我就来介绍一下我对于学习Python的一些看法。
我认为,学习一门编程语言,应该分阶段进行,
入门
进阶
实战
下面分别从这3个阶段开始介绍。1. 入门
如果有一点的C语言基础,对于学习Python会有很大的帮助。如果纯粹的零基础也没关系,需要花费一些时间去理解编程语言里面的一些通用概念。
我认为入门Python相对容易,因此我更加推荐网上免费的在线教程,非常多,而且非常好,当然如果喜欢纸质书籍的也可以购买书籍学习。
尤其的基础知识相对简单,如果有一点的编程基础一周或者更短的时间内即可对Python基本语法做一定的了解,如果购买在线课程,我认为会耗费很多时间。
关于入门阶段的在线教程我推荐两份:
Python菜鸟教程:www.runoob.com
廖雪峰Python:www.liaoxuefeng.com
关于入门书籍,我推荐一本不错的书籍,
《Python编程从入门到实践》2. 进阶阶段
关于进阶,我推荐两本书籍:
第一本:《Python Cookbook》
我认为这是一本很适合有一点Python基础的开发者,这本书应该很多Python开发者都有所耳闻,它在基础语法的基础上进行了一些提升。
就如同上面这个例子,它会抛开入门的那些简单语法去讲解一些Python高级实用方法和技巧,例如抽象基类、单例模式、接口等。每一个知识点它会对应提出一个问题,然后给出相应的解决方案,并且告诉你这样用的意义何在、怎么样更加高效的使用Python,怎么设计更高效的软件模式。
第二本:《流畅的Python》
这是一本经得起考验的Python书籍。
举一个最简单的例子,在绝大多数教程都会讲到循环和条件语句,千篇一律的告诉你"if..else..", "for...while",这个有一点编程语言的同学都知道,但是在Python里面循环和条件语句有什么特殊的地方吗?该怎么用好它?
在很多博客、教程中都不会深入介绍,但是这本书会详细的介绍Python深入的内容。
它和大多数书籍和在线教程蜻蜓点水式的讲解不同,它更加深入,深入而不冗余,在你看这本书的时候你会发现,它的每一段话都是有意义的,没有什么废话。
它分别从数据结构、字典集合、文本和字节序列、函数、设计、装饰器、闭包等讲起,然后对每一块知识进行展开,详细介绍里面最根本的原理,然后告诉你,该怎么用好它,高效的使用它。3. 练手项目
学完基础语法并了解Python一下高阶方法之后该做些什么?
我认为首要的是先选择一个方向,机器学习图像处理自然语言数据分析web......
这样才清楚自己该朝着哪个方向努力、该拿哪些项目练手,对编程能力进一步巩固,这样要比“无头苍蝇”式的漫无目的学习效率要高很多。
其次,可以找一些比较优秀的项目进行实战,扩展自己知识面的同时对编程能力进行巩固。
首先,以机器学习、深度学习框架为例,推荐几个github上热门的学习项目。
tensorflow_course
如果觉得官方文档不能够让你变成tensorflow熟手,那就试着用tensorflow完成几个机器学习算法的搭建,tensorflow_course是一个gihub资源,目前已经10k+个star,受欢迎程度可见一斑,上面有传统算法,例如线性回归、支持向量机,也有深度学习算法,例如卷积神经网络,能够让你在学习机器学习的过程中进一步熟练tensorflow。
nfmcclure/tensorflow_cookbookgithub.com
tensorflow_cookbook
这也是一个github项目资源,虽然不如上面这个火热,但是目前也拥有4.2k+个star,和上面这个资源有些类似之处,包括传统算法和深度学习算法的实现,可以边学习机器学习知识、边学习深度学习平台。
nfmcclure/tensorflow_cookbookgithub.comAwesome-pytorch-list
如果觉得官方文档内容不够,可以看一下这个github资源,目前5.8k+个star,这个资源可以称得上是大合集,包括计算机视觉、自然语言处理、教程和示例、优秀文章的实现,非常全面。
bharathgs/Awesome-pytorch-listgithub.com
另外,推荐可以关注一下Github项目PyHubWeekly,这个项目每周会定期更新一些优质的Python项目,很多适合于用于学习,能够从中学到很多编程规范和设计模式,感兴趣的可以去Github搜索一下。