像MMORPG中打造装备一样学习编程
我最近一直在思考生产力相关的话题:关于笔记记录(子弹日记+Obsidian)、时间管理,以及系统思维如何将这一切联系起来。特别是系统思维,已经成为我当前学习的重要组成部分。它让我仔细审视自己学习、记笔记和写作的方式,以巩固所学知识。
然后我想到:通过系统学习的最佳范例已经存在于我喜爱的事物中——MMORPG游戏中的装备打造。
我一直是个MMORPG游戏迷。我玩《魔兽世界》的时间长得不好意思承认,在《EVE Online》的电子表格中埋首了数千小时,现在有新内容发布时仍然会登录《激战2》。最近我正在尝试《新世界》,一些朋友还把我拉进了刚发布1.0版本的《Pax Dei》游戏。
虽然我享受战斗、剧情和终局内容(可能还有一点PvP),但真正让我不断回归的是装备打造。我喜欢收集材料、精炼它们,然后从头开始制作物品并在市场上出售。将原始资源转化为有价值的东西,同时提升自己的打造技能,这个过程让人深感满足。
说实话,学习编程(和其他技能)的感觉完全一样。
在《魔兽世界》或《激战2》这样的游戏中,你不会一开始就打造传奇武器。你从砍木头、挖铜矿开始,制作大量基础、不起眼的物品。没有人会对你堆积如山的铜匕首印象深刻,但每一把都在提升你的打造经验。
编程遵循相同的模式。你不会直接从"Hello, world!“跳转到部署具有认证、支付和分析功能的完整SaaS应用。你是通过反复构建小东西来达到这个目标的,直到这个过程变成第二天性,直到你能够在不知不觉中打造出伟大的作品。
我偶尔观看的内容创作者ThePrimeagen有一个说法,叫做"马鞍上的时间”。对我来说,这意味着"开始创造"。从小处开始,逐步构建,并在过程中学习。
收集资源(基础知识)
让我们从基础开始,编程中的"收集资源"意味着什么?
在游戏中,你从收集最常见、最容易找到的材料开始:铜矿石、草药、布料。这些东西如此丰富,几乎遍布起始区域。你挥舞几次镐子,装满背包,然后返回城镇。
在编程中也是如此。你从学习基础开始:变量、循环、函数和类。这些基础知识的资源随处可见:教程、视频、互动网站、文档。快速搜索"如何学习编程"会让你淹没在各种指南中,它们都急切地想递给你第一把虚拟镐子。
这不是光鲜的工作。编写一个将两个数字相加的函数,就相当于编程中的挖铜矿。但没有这些原材料,你以后就无法制作任何值得展示的东西。
就像游戏中的资源随着你等级提升而变好一样,你学习时收集的资源也会变得更加高级。数据结构和算法、设计模式、新技术和框架。学习不会停止,你需要不断成长和学习更多。
打造低级物品(小项目)
一旦收集了足够的材料,就该开始打造了——而且是大量打造。
在游戏中,这通常意味着制作20把基础匕首或50个绷带,其中大部分永远不会被使用。你可能会把它们卖给商人,只是为了清空背包空间。
在编程中,情况看起来不同但感觉相同。你构建一个简单的计算器、待办事项应用、小型博客,或者是一个自动化琐碎任务的快速脚本。这些都是小项目,可能只有你自己会使用,但它们作为你的训练场。
这些项目会让你出名吗?不太可能。但每一个项目都在建立肌肉记忆。你正在学习如何构建项目结构、解决问题,以及在事情不可避免地出错时进行调试。就像打造那些"无用"的匕首一样,真正的奖励不是物品本身——而是你在此过程中获得的经验点。
解锁新配方(概念掌握)
制作足够多的低级物品最终会解锁好东西。
在游戏中,你制作的物品开始变得有趣。它们有属性、特殊加成或独特效果——随着你的技能提高,你会学习新的配方。你从制作基础起始装备转向创建其他玩家真正想要的实用物品。
在编程中,同样的事情也会发生。随着你构建更多小项目,你的理解会加深。你开始看到不同的部分如何组合在一起,数据如何流动,逻辑如何连接,系统如何交互。突然之间,曾经感觉神秘的东西开始变得有意义。你掌握的每一个概念都会解锁下一个,就像学习一个你甚至不知道存在的新配方。
打造史诗和传奇物品(大项目)
真正的回报出现在你承担大项目时。
在游戏中,打造传奇武器是一个长期目标。你需要稀有材料、耐心和毅力。一些材料可能只从地下城首领或团队副本中掉落,这意味着需要与他人合作才能获得所需的东西。即便如此,这仍然是一个深刻的个人追求——磨练、精炼、通往非凡之物的漫长道路。
在编程中,同样的想法也适用。构建和部署一个大型应用程序——一个复杂且功能丰富的应用程序——相当于打造你自己的传奇物品。它利用了你迄今为止学到的每一项技能:设计系统、构建数据结构、创建界面,以及学习如何将你的工作发布到现实世界。有时你需要他人的帮助,而学习协作本身就是另一门手艺。
但是,要达到这一点而不精疲力竭的唯一方法,就是先完成那些较小的构建。你完成的每一个简单项目都在悄悄地为你这一刻做准备。
磨练就是道路
当你的项目感觉很小时,很容易感到气馁。但这里有个秘密:那些小项目不是浪费时间。它们是你的磨练。它们是你的经验值。
每一个小脚本、每一个玩具项目、每一个你修复的bug,都是你的匕首、你的铜戒指、你的绷带堆。没有它们,你永远无法解锁更大东西的配方。
诀窍是不断前进。不要一直停留在打造相同的铜剑上。尝试新的模式。试验不同的材料。构建一些稍微超出你舒适区的东西。即使失败,如果你花时间从中学习,也会获得经验值。
动力就是一切。磨练不是惩罚——它就是道路。每一次重复、每一个小的改进、每一个"失败"的实验,都在悄悄地推动你的技能树向上发展。在你意识到之前,你会回顾过去并意识到:你已经从打造匕首变成了锻造你的第一件传奇物品。
我在磨练中的位置
那么在我自己的旅程中,我现在处于什么位置?我正在使用Python和Django Web框架构建一个简单的二维码生成器。它不华丽。它不是一把传奇之剑。但它正在教我如何构建Django应用程序结构、使用表单,以及思考真实项目从开始到结束的流程。
最终,我想添加更多功能——使用Django REST Framework的API,甚至可能是多租户功能。每一个添加都是另一个解锁的配方,对技艺的又一次精炼。
这是我的铁匕首批次。一旦我掌握了这个,我就有了锻造更伟大东西的基础。也许有一天,那个"更伟大的东西"将是一个功能齐全的SaaS应用——我的第一件真正的传奇物品。