这篇文章的起因是有网友问我零基础想要学习Python应该先做什么?
然后我就向老弟问了他的学习经验⬇️
大家可以做个参考:
先把python和 ide(或者其他代码编辑器,记事本 + 命令行也是勉强可以用的,ai ide 很多我就不推荐了,如果不关注 ai 功能的话我推荐 visual studio(紫色的那个,不是蓝色的)、pycharm 或 jupyter notebook)装好,找一个你熟悉的 ai 对话应用或网页
问 ai 把 python 的变量、函数、输入输出 (这个概念包含范围很广,但先了解 input () 和 print () 两个内置函数的用法就可以了)、分支 (if 语句)、遍历 (for 语句)、循环 (while 语句)、数据结构 (先学会使用 list 就好,tuple、dict、set 这几个以及更复杂的数据结构可以在项目中有需要时边做边学) 这些基本概念了解一下是做什么的(在这个过程中可以先试着写几个简单的程序熟悉一下),然后挑一个你感兴趣并且有一定思路的项目开始做
因为我当初比较喜欢数学的原因,我的第一个项目是一个可以自动生成方程题并判断输入的解是否正确的程序,我先是手动实现了分数的通分和加减乘除大于小于等于(当时不知道 Python 有自带的分数类,不过自己实现一遍我觉得还是挺有意义的),又设计了一套用来表示方程的方法,再通过对 x=n 的简单算式不断地随机进行使其变复杂的操作,最后在控制台输出生成的方程并判断用户输入是否与一开始的结果相等,现在看来当时的实现还是比较稚嫩的,比如我完全使用嵌套的 list 实现了本来使用其他数据结构或面向对象编写更直观和方便的数据对象(这也是为什么我之前说先学 list 就足够了的原因,list 很万能,在开始第一个项目之前尽可能快速结束必要概念的学习阶段我认为是更重要的),使用循环手动实现了本来该直接使用递归的部分(为此还踩到了一个 deep copy 相关的坑),在重要的函数上使用了连自己后面都记不住的缩写,没有考虑概率分布导致生成的方程大部分都特别简单或特别难等等,不过我觉得还是挺有意义的
项目过程中有任何你不知道怎么做的你都可以问问 ai,有报错可以直接把报错信息粘贴给 ai 问问为什么会这样,但最好不要完全让 ai 生成你看不懂的代码,学习阶段我认为还是需要对你的代码有所把握,这样后续和 ai 协作时才能避免 ai 在你的项目里埋雷或者让你的项目混乱度和复杂度不断膨胀直到因为完全没有人或 ai 能理解而被放弃,不过在 ai 时代把握重点而把次要部分丢给 ai 也是一种很重要的能力
对于代码出现的问题,比如输出不符合预期或者意外报错,如果直接看代码不能发现问题,需要通过调试来解决,调试可以先从通过添加 print 语句来输出程序中你怀疑有问题的变量的值开始,后面可以学习一下如何使用 ide 断点或者 python 自带的 pdb 库,这两个会一个基本就够用了(ide 断点底层也是 pdb,但直接在命令行使用 pdb 大多数人都不习惯,有时也可能没有那么直观),更多的调试工具在大型项目或专门领域中才有必要学习和使用。
调试可以说是编程中必不可少的一环,也是发现自身错误不断进步的方式,好的编程习惯、丰富的经验或者代码检查工具(包括发给 ai 让 ai 来检查)可以减少需要调试的次数和难度,但能完全避免调试的只有你熟悉到完全没有必要再写一遍的代码(这样的代码你直接复制粘贴就好,除非你一时找不到它了),对于复杂的或具有一定原创性的程序任何人或 ai 都不能保证一次编写就完全符合你的要求
组织代码结构的理论(或者不那么精确地说,思路)被称为编程范式,编程范式有很多,这方面也有一些争议,Python 可以说是受面向对象编程这一范式影响很深,但也并非排斥其它编程范式,我个人认为初学者的项目不太需要主动考虑这个,在项目过程中有了足够的思考和体会之后理解起来才会更加容易和深刻
再往后进阶一点的部分就要看你想要学什么了,为了编程解决实际问题你不仅要会编程,也要对于你所涉及的实际问题的领域有比较深刻的理解,不过大多数领域也都有对应的前人已经实现了的工具库可以调用,复杂的语言知识是为了处理复杂的逻辑设计的,如果大部分事情都已经由前人做好了,那么由你负责的部分就算随意一点或者蠢一点也无伤大雅,按需学习有时也是一种聪明的做法
vibe coding 需要很贵的 ai,但如果单纯当做一个加强版的搜索引擎来用的话大部分 ai 都是可以胜任的,比如 deepseek、千问、kimi 甚至豆包都是可以的,我的习惯是优先 deepseek(因为免费、不需要魔法并且我用着比较习惯,当然因为他们团队方向不同纯论智力 deepseek 已经有所落后了),如果感觉 deepseek 有可能在胡说的话,我会再试试用 gemini、chatgpt 和 grok(我感觉 grok 幻觉低一些,但也只是感觉),重点关注 ai 引用的信息来源,当然最可靠的还是直接去找官方文档或者源码来读,不过效率也最低,我个人认为阅读文档和阅读源码都是一种需要培养的能力,同时也需要对于语言和所涉及领域的熟悉程度,我现在也不能说我很会🥰,所以我不建议初学者直接去读不是为编程初学者专门编写的文档,不然概念会越牵扯越多,挫败感会很强
大致我能想到的就是这些了,希望能给大家做一个参考!
如果你正在学习python,这些Python资料、数据分析、Python从入门到实践第三版pdf书籍、Python+Pycharm安装包&永久激活插件、直播课程,可以在这里免费领取哈👇