去年在出差高铁上,邻座是一个年级相仿的兄弟,旅途闲聊中得知他在 一家传统制造企业做采购,每天要处理几百条 Excel 数据,手动比价、手动汇总、手动发邮件。
他问我:现在学 Python 还来得及吗?
我没直接回答,反问了他一句:你每天花多长时间在重复劳动上?
他说,至少三个小时。
三个小时。一天八小时工作制,三个小时在做"人肉脚本"的活。这个问题我太熟了——因为十年前,我自己也是这么过来的。
先说说我自己
编程非遗传承者,10年互联网古法程序员 。
一说到互联网10年程序员,可能大多数会联想到的词汇是“财务自由”、“时代红利”,这感觉就像是到了岁数还没入土就会被喷一样(哈哈,写完这句后我被自己逗笑了...)。
坦白讲,说对了一半。
说说我自己的初始配置吧。
山河四省考生,高三没考上大学复读了一年,第二年上了本省一所普通二本。大四那年考研没成功,一个人在学校旁边租房复习半年,第二年考上了一所211。
考研面试没有提前联系心仪导师,最后被划分到了边缘课题组,整个研究生阶段在放羊。毕业后直接进入互联网公司,也算撞进了风口。
我大学学的电子信息,不是科班出身,毕业那年 Python 还没现在这么火,身边同学要么去了华为写 C,要么去了银行做 Java。我误打误撞进了一家小公司,做后端开发,第一个正式项目是用 Django 写了个内部管理系统。
说实话,那两年写得很"野"。没人 code review,没有规范,代码能跑就行。变量名叫 abc,函数两百行不拆分,if-else 嵌套五六层。现在回头看,简直是犯罪现场。
但就是那段日子让我爱上了写代码这件事。你敲一行命令,机器就照做,不跟你扯皮不跟你开会,执行力比任何同事都强。
后来赶上机器学习、深度学习、大模型,每一波我都追着跑。
从 scikit-learn 啃到 PyTorch,从调参调到凌晨到现在天天跟 LLM 打交道。说白了就是从"搬砖"变成"炼丹",又从"炼丹"变成"看炉子的"。
上周刚看完 function calling,这周又冒出个 MCP,然后又是Skills,接着OpenClaw、Hermes,像打地鼠一样没完没了。
我平时在公众号写 Python 实战笔记,这篇算是一个阶段性总结。
回头看这十年,唯一确定的事就是啥都不确定。你以为学会了一个框架就能吃三年?不存在的。但有些东西确实不变,下面慢慢说。
给在校学生说几句
如果你正在学校学 Python,语法学了一圈,for 循环会写了,列表字典搞明白了,但就是不知道"学这个有啥用"——这是正常的。我当年也一样。
第一,别等"准备好了"才动手。
很多学生觉得要把语法全学完、把书全看完,才能开始做项目。
错。
你永远不会"准备好"。找一个你觉得有点意思的小东西就开始写。爬个豆瓣电影 Top250,写个自动整理文件的脚本,给你的课程成绩做个可视化。
项目不需要大,但必须是你自己想做的,不是老师布置的。
被自己想要的东西驱动,和被作业 deadline 驱动,写出来的代码质量天差地别。
第二,尽早学会读报错信息。
这句话听起来像废话,但我见过太多初学者一遇到报错就慌。红字刷屏,第一反应是复制粘贴到百度。
其实 Python 的报错已经够友好了,大部分时候最后一行就告诉你问题在哪。IndentationError 就是缩进不对,KeyError 就是字典里没这个键。
养成从下往上读 traceback 的习惯,你会省掉一半的 debug 时间。
第三,GitHub 比简历更能证明你的能力。
如果你还没有 GitHub 账号,现在就去注册一个。把你写的东西放上去,哪怕很烂也没关系。面试官看到一个有十几个仓库、commit 记录持续了半年的 GitHub 主页,和看到一份写着"精通 Python"的简历,感受是完全不同的。
前者证明你在做,后者只证明你会说。
给想用 Python 提效的打工人说几句
你们可能是产品经理、运营、财务、HR,甚至是销售。你不是要做程序员,你只是想让重复性工作少占一点你的生命。
第一,先想清楚你要自动化什么。
不要上来就买课、买书、从头学语法。
先打开你的工作日志,看看过去一周你做了哪些重复的事。每天从系统导出一份报表然后手动整理格式?每周汇总各部门的数据做成 PPT?每个月对账需要逐行比对两个 Excel?
找到那个让你最烦的重复劳动,就是你的第一个学习目标。带着问题去学,比系统学习快十倍。
说句可能得罪人的话:大部分人学 Python,其实只需要学 20% 的内容,就能解决 80% 的工作问题。
培训班教你的那些算法、设计模式,跟你的场景八竿子打不着。花几千块买课,不如花三天带着一个真实问题死磕。
第二,pandas + openpyxl 就够你用很久了。
Python 生态很大,但对非程序员来说,数据处理领域掌握这两个库基本就够了。
pandas 处理表格数据,openpyxl 读写 Excel。如果涉及邮件自动化,加个 smtplib。涉及网页操作,学点 selenium。
不需要搞什么深度学习、不需要学算法,这些跟你的场景八竿子打不着。
我见过一个做 HR 的朋友,用 Python 写了个脚本自动筛简历、自动发面试通知邮件,把原来两天的工作量压缩到了二十分钟。她的 Python 水平大概就是"会写 for 循环、会调 pandas、会复制粘贴 Stack Overflow 上的代码"。
够用了。
别怕代码丑。
你写的代码不用给别人看,不用上生产环境,不用考虑扩展性。它唯一的标准就是:能帮你干活。
变量名用拼音?无所谓。没有异常处理?先跑起来再说。代码的审美是慢慢养出来的,不是第一天就需要的。
这类"上手就能用"的脚本思路,我在公众号里攒了不少,现成的模板可以直接抄。
给刚入门的程序员说几句
你已经在写代码了,也许入行一两年,能跑是能跑,但总觉得自己写的东西不够好,不确定有没有走弯路。
第一,读别人的代码。
这件事的重要性被严重低估了。去 GitHub 上找你用的库的源码看看。比如你天天用 requests,去看看它的源码是怎么组织的。不需要全看懂,先看目录结构,看它怎么拆分模块,怎么写 docstring,怎么处理异常。
读好代码比写烂代码有用得多。
第二,学会写测试。
我知道,大部分初级程序员觉得写测试是浪费时间——我也曾经这么觉得。
直到有一次我改了一个函数的参数顺序,导致线上接口挂了四个小时。如果有单元测试,这个 bug 在我本地就会被拦住。
pytest 的学习成本很低,花一个下午就够了。这个投入产出比极高。
第三,别在技术选型上花太多时间。
Django 还是 FastAPI?PostgreSQL 还是 MySQL?Poetry 还是 uv?
说实话,对刚入行的人来说,选哪个都对,不选才是错的。我见过有人在"到底学哪个框架好"这个问题上纠结了两个月——两个月够你把任何一个框架学到能用了。
先用起来,用到痛了,自然知道该换什么。
我刚入行那会儿也纠结过要不要从 Django 换 Flask。纠结了三周,最后发现两个都得学。早知道随便挑一个先写三周代码,比坐在那查评测文章强一百倍。
关于 AI 时代,我的想法
这两年被问得最多的一个问题就是:
AI 都能写代码了,程序员是不是要失业了?Python 还值不值得学?
我的回答一直都是:值得,而且比以前更值得。
为什么?因为 AI 不会淘汰会编程的人,AI 会淘汰不会用 AI 的人。
你用 ChatGPT 写一段 Python 脚本,它可能 80% 是对的。但那 20% 的坑——类型不对、边界条件没处理、API 调用参数过时了——你需要自己判断。
如果你完全不懂代码,你甚至不知道它错了。
怎么说呢,AI 更像个干活很快但不审题的实习生。活儿是能干,但你得盯着。你得看得懂它写的东西,才能用好它。
一个懂 Python 的人用 AI,效率提升可能是十倍。一个不懂 Python 的人用 AI,大概率是把 AI 生成的 bug 复制粘贴到生产环境里。
说白了,写代码不值钱,知道该写什么才值钱。这个判断力,AI 暂时还给不了你。
我自己现在写代码,大概有 30%-40% 的重复性工作会让 AI 来做。省下来的时间拿去做设计、做架构思考、做跟人沟通的事情。这些事 AI 做不了,至少目前做不好。
所以我的建议是:学 Python,同时学会跟 AI 协作。
为什么我要做分享技能和感悟的公众号
写了十年代码,踩了无数的坑,走了不少弯路。有些弯路当年如果有人提醒一句,我可能少浪费半年时间。
我做这个号,没有什么宏大的愿景,就是想把这些年攒下来的经验掰碎了说给还在路上的人听。
不讲大道理,不搞焦虑营销,就是一个老工人的工作笔记。
如果你是学生,正在迷茫 Python 能用来做什么——我可以给你一些方向。
如果你是其他行业的打工人,想用 Python 从重复劳动里解放出来——我有一些上手就能用的脚本思路。
如果你是刚入行的程序员,想写出更好的代码——我可以聊聊这些年摸出来的经验。
持续在写 ,持续在穿越迷茫...
关于我
写了 10 年 Python,赶上了机器学习的热潮,又撞上了大模型的浪头,每次以为学明白了,行业又变了一次。
不是什么大神,就是一个在互联网里摸爬滚打、把坑踩了个遍的老工人。
还在写代码,还在折腾,还在想明白这个时代到底发生了什么。
把自己踩过的坑、走过的弯路、看过的热闹,说给还在路上的人听。
关注公众号:鲁叶的Python