前言
从正式开始学习 Python 到现在差不多 8 个月的时间了,虽说进展比较缓慢,但多少也算有些进步和体会。现在想把这大半年来的学习情况简单梳理一下,既是给自己做个总结,也希望能给与我情况类似的朋友们一点帮助。
本文分享了一位非技术岗位人员从零开始学习 Python 八个月的经验总结。内容涵盖学习心路历程的三个阶段:徘徊、入门与进阶,详细对比了多种开发工具如 PyCharm、VS Code 及 Anaconda 的优劣,并针对 Web 开发、数据分析、机器学习三个方向给出了选择建议。文章强调了坚持学习、细化目标及多练多看的重要性,提供了具体的学习方法论,包括虚拟环境配置、is 与==的区别、异常处理等常见技术问题的解决方案,以及 Git 版本控制和参与开源的进阶建议,旨在为业余学习者提供可落地的参考路径。

从正式开始学习 Python 到现在差不多 8 个月的时间了,虽说进展比较缓慢,但多少也算有些进步和体会。现在想把这大半年来的学习情况简单梳理一下,既是给自己做个总结,也希望能给与我情况类似的朋友们一点帮助。
作为一名非技术类岗位在职人士,学习 Python 不以转行求职为目标、不以提升工作能力为目的、不以直接经济利益为诉求,仅仅当作一项业余活动来看待。当然,这种情况下学习的劣势是显而易见的:没有明确的目标,学习方向不固定;没有强烈的动机,学习欲望不强烈;没有项目的支撑,学习环境不理想。
就我自身情况而言,由于长期从事非技术类岗位的工作,无论对 Web 开发还是数据分析,相关知识都比较欠缺。另外由于工作比较忙,不能保证每天都有机会使用互联网,相信就这一点而言,很多打算学习 Python 的朋友都要比我有优势。
不过,严格来说我也不算是完全零基础,毕竟是工科专业出身,读书时参加过 ACM 之类的比赛,做过计算机方面的一些项目,编程的基础还是有一点。
从最开始接触 Python 到现在,我把自己的学习历程大体分成徘徊、入门、进阶三个阶段。
最开始了解 Python 这门语言大概是 2 年多以前的事了,当时动过学 Python 的念头,但就像前面说的那样,缺乏明确的目标和强烈的欲望,学习这件事刚开始不久就被无限期搁置了。
第二次打算学习 Python 是去年夏天,当时刚好自学通过了一门资质认证,下半年打算给自己再找一个新目标,就又想起了 Python,庆幸的是这次坚持了下来,一直到现在。
要想入门一门语言,有两个要素无法回避的,一是学习资料,二是开发工具。
网上的视频、书籍、博文等学习资料可谓铺天盖地,但毕竟我们的学习时间是有限的,不可能去一一尝试,选好适合自己的学习方式和资料对入门者来说是很关键的一步。
我的选择是阅读纸质书籍,选几本适合自己的书静下心来认真阅读,书中的代码一定要仔细琢磨(有条件的可以自己把代码写一遍,加深理解),实在看不懂的地方可以暂时跳过,但一定要坚持读下去,说白了就是'硬啃'。
这里着重介绍两本入门书籍:
此外,官方文档(docs.python.org)是最权威的参考资料,遇到语法细节问题优先查阅官方文档。
学习 Python 以来,陆续接触过 IDLE、PyCharm、Sublime Text、Spyder、IPython 五个编辑器,这里简单阐述一下对上述五种工具的使用感受:
最后再补充一点 Python 版本选择的问题,其实这个问题真的真的不用纠结,因为 Py2 和 Py3 的差别非常小,随便选一个尽快上手才是真谛。当然,对于没有明确需求的初学者,我还是建议选择 Python 3 入手,毕竟 Py3 是大势所趋。
这里所谓的'进阶'并不是说已经度过了入门阶段,而是指在学习 Python 基本语法的基础上做一些扩展,向着实际应用迈出第一步。
目前来看学习 Python 主要有三个方向:Web 开发、数据分析、机器学习。
我个人最终的选择是从数据分析入手,因为这与非技术岗位的数据处理需求更契合。
这一阶段的学习方法除了自己阅读资料外,最好能找一些外部的支持,对口专业的在校生和在职人员或者是身边的老手请教。如果都没有可以从网络上寻求帮助,这方面主要采取了下面两种途径:
坚持是一个老生常谈的话题,不过这里想说的重点略有不同,生活中我们都有很多事情要忙,不是所有人都能坚持每天挤出时间来完成学习任务。
对于这一点我们要正确看待,'三天打鱼两天晒网'的状态是很正常的,学习中断了等有时间后继续就可以,要学会调整心态,不必因学习受阻而气馁、放弃,要接受这种并不顺利的学习状态,这才是我们业余学习者应有的坚持。
在学习过程中,最好能够制定比较细小的目标,然后不断更新,像做一个 Web 网站、开发一个小游戏之类的中期目标,个人认为并不适合每一个初学者。
我们需要根据自身的学习程度和技能水平不断细化、调整当前的目标,例如在语言学习初期可以设定'搞清楚 is 和==之间的关系'、'学习模块调用'之类的目标。
随着学习的推进可以调整为'写一个小型爬虫'、'清洗并分析一组数据'之类的目标,以此类推。制定适合自己的目标可以让学习更有动力,反之则会增强挫败感。
初学者最容易遇到的问题就是环境配置。建议在 Windows 上使用 Anaconda 管理虚拟环境,或者使用 venv 模块。不要将所有包都安装在全局环境中,这会导致依赖冲突。
示例:创建虚拟环境
python -m venv myenv
source myenv/bin/activate # Linux/Mac
myenv\Scripts\activate # Windows
Python 中 is 和 == 的区别经常被混淆。== 比较值是否相等,is 比较内存地址是否相同。
a = [1, 2, 3]
b = [1, 2, 3]
c = a
print(a == b) # True,值相等
print(a is b) # False,地址不同
print(a is c) # True,地址相同
在实际项目中,健壮性很重要。学会使用 try-except 块捕获异常,避免程序崩溃。
try:
result = 10 / 0
except ZeroDivisionError:
print("除数不能为零")
技术的道路进无止境,希望以上经验能够帮助到刚入门的小白或者有类似经历的同学,大家一起交流,鼓励!

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online