今年是我工作的第十年,从毕业至今一直在和代码打交道。
本科学的电子信息,研二下学期才开始自学 Python。非科班出身,一路从古法编程道路走过来。
研三之前,自学过 Java,短暂跟风折腾过 Android,现在看来都是没人指导的瞎折腾。工作中,写过后端、做过数据分析、机器学习、深度学习,这两年也在做一些大模型的工作。
我一直推崇把 Python 作为自学编程的第一语言,语法简单,三方生态成熟且稳定(目前火热的大模型基本都是基于Python)。配置快捷, 运行简单,所见即所得,新手很友好。
学科背景不是必须条件,无论是理工科还是法学、哲学、古典文学的学生,只要有兴趣和决心,都可以自学 Python。
如果一定说有什么门槛,可能就是基础英语和数理思维。只要初中水平就可以,毕竟 Python 是英语编程语言,能自己定义一些变量,能够认识常见的语法、函数,能够把具体问题拆解为抽象逻辑。
下面分别从术和道的层面,详细聊下怎么高效入门 Python,少走不必要的弯路。文末分享我用过的自学教材资料,大家有需要自取。先说术。
入门阶段。
学之前先把 anaconda + pycharm 装起来,环境变量对新手来说比较陌生,网上搜教程,几个步骤很清晰,一次配置长期受用。
先学基础数据类型和数据结构、io读写,流程控制函数,这些学完就是入门了,剩下的内容学起来就会快很多。
学的过程中要手敲代码,勤加练习。找一些题目,自己多写写。当同一个题目你可以使用2种不同方法解决,编程的感觉就来了。
接着是初级进阶阶段。
这个阶段,根据使用 Python 的场景、目的,学习方向有所区别。
如果要做爬虫或 web 开发,那就学 flask 或者 fastapi。
这两个类库封装了大量的 web 开发过程中用到的方法,不用逐一掌握。只实践一下最常用的几个就行,其他方法知道个大概,用的时候再现学。
如果要做聊天类的应用,类似于 chatgpt 这种对话框,那需要再学习一下websocket 长链接。
学完之后,可以先练手爬虫项目,原因很简单:反馈快,成就感强。先用 requests + BeautifulSoup 爬个豆瓣电影 Top250,再试试 Selenium 处理需要登录的页面,最后学一下 Scrapy 框架。
如果要做数据处理或数据分析,那就学 pandas 和 numpy。
这两个类库含有丰富的数据统计方法,也是一样,只学最常用的几个,多了也记不住。另外,推荐再学一下 matlibplot,对结果进行绘图可视化,会让分析结果呈现出来的效果锦上添花。 (本文图片均使用 matlibplot 库绘制)
如果要做算法模型,想对数据进行预测,那就学 sklearn,掌握基本的分类、聚类、回归,就能应对 80% 的常规业务场景。另外再加上 gensim,分析文本数据的时候用得到。
再往后,就是高阶的阶段了。
这个更是因场景而异,很难穷举到底要学哪些。只能说工作中,面对具体问题场景上,需要用到什么就学什么。既然到这个阶段了,学习能力已然具备,再加上现在有大模型加持,学起来就更容易了。
再说道。
学任何东西都会有一个完整的方法论。
方法论是个人经验积累、总结、沉淀出来的,可能来自于不相干的领域,经过个人加工化用,大脑的触类旁通,就会有一套基本固定的流程了。
不要去找太多别人的方法论,那只会让你眼花缭乱。
与其纠结先迈左脚还是右脚,不如闭上眼睛先下脚,摔倒了才能学会走路。
这个时代,资料、视频获取渠道很多,选一个两个就可以开始了。
找一本《Python编程:从入门到实践》(各种电子版都可以,现在信息渠道很丰富)或者看官方 Tutorial 就够了,变量、循环、函数、列表字典这些,一周多就能上手。
学编程要不要付费报班?
如果单纯从知识获取途径来说,AI 时代确实不太需要了。如果从坚持学习的角度来说,决心才是最大的自律,而不是花费。
但也不是一棍子打死所有付费内容。
有些确实能帮你省时间,关键看两点:
1. 有没有体系化的项目实战(不是那种跟着敲代码的照抄式教学)
2. 有没有答疑和反馈机制,如果只是录播视频+ PPT 念稿,那跟看免费的没区别,B站一搜一大把。
学到什么程度才可以?
学完初级进阶后,就可以行走江湖了,接下来就是在工作中随机应变来继续提升技能。
工作中需要做聊天软件,那就继续学 websocket;需要自然语言处理,那就继续学 gensim。
总之,兵来将挡水来土掩,不需要一开始练就绝世武功才能下山。
要记住所有语法吗?
记住基本的就行了,稍微复杂的,用到的时候要知道怎么查。
数据结构,数据类型,io 读写,函数流程控制,这些常用且基本,多练习一些对应习题。剩下的东西,只要用的多,自然就会记住大概,所以不必现在纠结记住所有语法。
我当年也是非科班自学的,最后再给几个切实可行的建议:
1. 不要只看书,最重要的是多动手敲代码。当你看到运行没报错的时候,这份满足感会驱动你持续学习。
2. 跟着一本教材或教程学习就行,基础语法知识快速过一遍。忘记没关系,大量写练手程序,在实践中记住或者用到的时候现查。
3. 干中学。多写一些小工具、小项目,给自己设定编码任务,从简单的功能代码开始,逐渐过渡到开发一个简单系统。遇到卡壳可以使用 AI 工具,但是自己要搞懂为什么 AI 这样写。
4. 多看开源项目代码。学习优秀的代码架构、编码规范,多跟自己写的进行对比,多想多沉淀,耳濡目染才能记得牢。
本系列文章,对过去十年工作进行阶段性总结,聊一些短平快的技术入门指南、职场个人感悟,持续更新,欢迎关注。
如果你是学生,正在迷茫 Python 该怎么学习,我可以把我当年入门的学习路线分享给你,应该能帮你少走点弯路。
做其他行业的朋友,想用 Python 从重复劳动里解放出来的,我一直在整理输出上手就能用的自动化脚本,都是从真实工作场景里拆出来的,应该比网上那些纯语法教程实用。
已经入行的程序员就不用我多说了,这些年摸出来的经验和踩过的坑我都在陆续整理,看看有没有踩到一块去的。
自学 Python 过程中整理的一些资料教材,如有需要,关注本公众号,回复「Python入门资料」即可获取。
关于作者
写了 10 年 Python,赶上了机器学习的热潮,又撞上了大模型的浪头,每次以为学明白了,行业又变了一次。把自己踩过的坑、走过的弯路、看过的热闹,说给还在路上的人听。
关注「鲁叶的Python」,第一时间接收干货文章。