前言
从正式开始学习 Python 到现在差不多 8 个月的时间了,虽说进展比较缓慢,但多少也算有些进步和体会。现在想把这大半年来的学习情况简单梳理一下,既是给自己做个总结,也希望能给与我情况类似的朋友们一点帮助。
作为一名非技术类岗位在职人士,学习 Python 不以转行求职为目标、不以提升工作能力为目的、不以直接经济利益为诉求,仅仅当作一项业余活动来看待。当然,这种情况下学习的劣势是显而易见的:没有明确的目标,学习方向不固定;没有强烈的动机,学习欲望不强烈;没有项目的支撑,学习环境不理想。
就我自身情况而言,由于长期从事非技术类岗位的工作,无论对 Web 开发还是数据分析,相关知识都比较欠缺。另外由于工作比较忙,不能保证每天都有机会使用互联网,相信就这一点而言,很多打算学习 Python 的朋友都要比我有优势。
不过,严格来说我也不算是完全零基础,毕竟是工科专业出身,读书时参加过 ACM 之类的比赛,做过计算机方面的一些项目,编程的基础还是有一点。
一、心路历程
从最开始接触 Python 到现在,我把自己的学习历程大体分成徘徊、入门、进阶三个阶段。
1. 徘徊期
最开始了解 Python 这门语言大概是 2 年多以前的事了,当时动过学 Python 的念头,但就像前面说的那样,缺乏明确的目标和强烈的欲望,学习这件事刚开始不久就被无限期搁置了。
第二次打算学习 Python 是去年夏天,当时刚好自学通过了一门资质认证,下半年打算给自己再找一个新目标,就又想起了 Python,庆幸的是这次坚持了下来,一直到现在。
2. 入门期
要想入门一门语言,有两个要素无法回避的,一是学习资料,二是开发工具。
1). 学习资料
网上的视频、书籍、博文等学习资料可谓铺天盖地,但毕竟我们的学习时间是有限的,不可能去一一尝试,选好适合自己的学习方式和资料对入门者来说是很关键的一步。
我的选择是阅读纸质书籍,选几本适合自己的书静下心来认真阅读,书中的代码一定要仔细琢磨(有条件的可以自己把代码写一遍,加深理解),实在看不懂的地方可以暂时跳过,但一定要坚持读下去,说白了就是'硬啃'。
这里着重介绍两本入门书籍:
- 《A Byte of Python》:它最大的作用是让你对 Python 这门语言有一个整体、全面的了解,为下步学习奠定基础。这本书免费开源,非常适合快速上手。
- 《Python 核心编程(第二版)》:需要注意的是要买'第二版'而不是'第三版',另外这本书的中文版里面有一些错误,如果遇到了请不要怀疑,它就是错的!
此外,官方文档(docs.python.org)是最权威的参考资料,遇到语法细节问题优先查阅官方文档。
2). 开发工具
学习 Python 以来,陆续接触过 IDLE、PyCharm、Sublime Text、Spyder、IPython 五个编辑器,这里简单阐述一下对上述五种工具的使用感受:
- IDLE:Python 安装自带工具,被很多人诟病,但我觉得它安装简单,反而很适合初学者。如果实在不喜欢,可以在学习一段时间后改选其他的工具。
- PyCharm:专业级神器,缺点是比较笨重,平时写小程序的话一般不用。社区版功能足够,专业版适合大型项目。
- Sublime Text:轻量级神器,非常喜欢它的界面,配合插件可以实现很好的开发体验。
- Anaconda:集成了大量数据分析相关库,安装方便,另外它的调试功能据说也比较强大。缺点是界面比较难看,代码补全功能也不完善。
- VS Code:目前最流行的编辑器之一,轻量且扩展丰富,推荐作为主力编辑器使用。
- IPython:又称 Jupyter Notebook,Anaconda 自带,能够实时查看代码输出(这一点也很适合初学者进行数据探索)。
最后再补充一点 Python 版本选择的问题,其实这个问题真的真的不用纠结,因为 Py2 和 Py3 的差别非常小,随便选一个尽快上手才是真谛。当然,对于没有明确需求的初学者,我还是建议选择 Python 3 入手,毕竟 Py3 是大势所趋。
3. 进阶期
这里所谓的'进阶'并不是说已经度过了入门阶段,而是指在学习 Python 基本语法的基础上做一些扩展,向着实际应用迈出第一步。
目前来看学习 Python 主要有三个方向:Web 开发、数据分析、机器学习。
- Web 开发:个人觉得 Python 在 Web 开发领域没有太大的优势,相比 Go 或 Node.js,但在快速原型开发上很有用。框架如 Flask 和 Django 值得学习。


