你电脑里存着好几十个G的Python资料。视频教程有七八个版本。PDF文档占了好几个文件夹。网上推荐的入门书你也下载了。别人分享的项目源码你全都囤着。硬盘都快塞满了。打开一看,确实什么都有。
然后你发现自己连一个能用的脚本都写不出来。写个批量改文件名的功能。要查半天资料。写个爬虫抓网页。卡在requests和BeautifulSoup的安装上。写个数据分析。连pandas的DataFrame怎么创建都记不住。你开始怀疑自己是不是不适合学编程。
其实原因很简单。资料囤积和代码能力是两回事。你收藏的那些教程。每一集都从环境搭建开始讲。每一本书都有一半内容在讲变量和类型。你不断重复学习最基础的东西。每次遇到稍微复杂一点的问题。就打开文件夹找对应的讲解。找不到就放弃。找到了就觉得自己学过了。
真正的问题是。你从来没完整写过一个从零开始的Python脚本。你一直在看别人怎么写。跟着视频敲几行代码。但从来没试过自己按照一个需求。从头到尾独立完成。你把学Python变成了看Python。而看一百遍不如下手写一遍。
另一个坑是。你用资料来逃避困难。遇到一个报错。你不想去读错误信息。你不想去查官方文档。你更不会去搜Stack Overflow。你直接打开一个教学视频。希望里面有现成的解答。如果没有。你就换一个视频看。时间花了。问题没解决。下次遇到同样的报错。你又要从头折腾一遍。
那些100G的资料。大部分内容都是重复的。变量类型讲十遍。循环讲八遍。函数定义讲七遍。但你真正缺的东西。比如实际项目的结构。怎么组织代码。怎么调试错误。怎么处理异常。怎么让程序跑起来不出bug。这些资料里很少讲。讲了你也只看一遍。根本没实践。
你需要改变策略。不是去删资料。而是换个用法。第一步。把你收藏夹里所有视频教程删掉。只留一个官方文档。Python官方文档有中文版。慢一点读。读一章。动手把示例代码敲一遍。敲完后。自己改几个参数或者逻辑。看看输出有什么变化。
第二步。找一个你能坚持的小项目。不要写爬虫。不要写数据分析。不要写机器学习。这些对你来说太大。写一个能计算你每天通勤时间的脚本。写一个能备份你桌面文件的脚本。写一个能从文本中提取所有手机号或邮箱的脚本。项目越小。你越容易完成。完成一次。你就拿到一点信心。
第三步。学会用搜索引擎。遇到问题。把错误信息完整复制到搜索引擎。不要加“Python”、“报错”这类词。只看Stack Overflow上的回答。优先选择被点赞最多的答案。不要看中文博客。中文博客很多抄来抄去。错误也多。谷歌和Stack Overflow是你最好的老师。
第四步。强迫自己每天写二十行代码。不要多。多了你坚持不下去。二十行就行。可以是一个函数。可以是一个小工具。可以是把一个list里的元素做某种变换。关键是每天都写。断了一天都不行。你写一周。效果比你囤100G资料强。
你还需要一个真实的问题。不要想象问题。想象出来的问题要么太简单没有意义。要么太难根本做不了。找个你实际工作中遇到的问题。比如手动处理Excel表格太烦人。写个脚本自动处理。比如需要定期给一群人发邮件。写个脚本自动发。问题越具体越好。越贴近你的生活越好。解决一个实际问题的成就感。比看完一百个视频都强。
还有一点。不要怕写垃圾代码。你写的第一个脚本肯定很丑。变量名叫a、b、c。函数里全是if else。代码重复了好几遍。没关系。能跑起来就行。跑起来之后你再优化。优化完你再重构。你写十次垃圾代码。自然知道怎么写好代码。那些你看过的资料。只有在你的代码出问题的时候才有用。你才会知道翻哪里。
那些100G资料。你留着当字典用。不是当课本用。你遇到一个具体需求。比如“怎么把CSV文件读到字典里”。你去资料里找pandas那一章。找到read_csv怎么用。看完就关掉。回来写代码。不要从头看到尾。不要刷视频。不要想着“我先学完再做”。你永远学不完。你永远在学的路上。永远不会做。
最后说一句。写代码和学游泳一模一样。你看再多游泳教程。不下水永远学不会。你站在岸上学十年。不如呛口水来得实在。Python也是。打开终端。新建一个.py文件。写出第一行print。然后写出第二行。别停下来。哪怕写错了。报错了。你也是在写代码。不是在看代码。这一点点区别。就是你写不出和写得出的全部差距。