变量 = 抽屉
变量是一个有名字的抽屉,里面装着一个值。你可以随时把里面的东西拿出来看,也可以放新的进去。
语法是皮,思维是骨。这一页讲四大编程思维:抽象、分解、模式识别、算法思维——以及怎么用类比把它们真正装进脑子里。
所有"会编程"的人,大脑里都在反复练习这四种思维方式。它们不是天赋,是可以训练的技能。
从一堆细节里抽出共性。看到三个购物车、三个文章列表,发现它们都是"列表 + 增删改查"——这就是抽象。
把大问题拆成小问题。一个博客系统拆成"文章模块 + 用户模块 + 评论模块",每个再拆到能独立实现。
在新问题里认出老朋友。看到一个分页需求,立刻识别出"这是 limit/offset 模式",复用已有解法。
用步骤而非结果思考。把"找出最大值"翻译成"从第一个开始遍历,遇到更大的就更新"——这是算法的起点。
—— 三亩地 · 思维笔记
能讲清楚,才是真懂。下面是三亩地常用的类比法,把抽象概念翻译成生活场景。
闭包就像你的背包:函数是你这个人,背包里装的是变量。无论你走到哪个房间(被调用到哪里),背包里的东西(变量)都跟着你——这就是闭包的本质。
变量是一个有名字的抽屉,里面装着一个值。你可以随时把里面的东西拿出来看,也可以放新的进去。
函数是食谱:输入是食材(参数),过程是步骤(函数体),输出是菜(返回值)。同样的食谱换食材,做出不同的菜。
异步就是烧水:水壶按下去后你不用盯着它,可以切菜、摆盘;水开了它会叫你。这就是回调与 Promise 的本质。
BRIDGE · 跨越
读懂是"识别",会写是"回忆+生成",这是两种不同的脑力活动。要跨越这道坎,得主动制造"想不起来"的瞬间。
编程思维的训练不一定要敲代码。下面三个练习,地铁上、午休时都能做。
挑一个日常动作,比如"泡一杯咖啡",把它拆成 10 个步骤,每个步骤只允许用一个动词。这是分解思维的训练。
观察三个不同的 App 首页,找出它们共有的 5 个元素,再想 1 个它们都没有但可以加的元素。这是模式识别与抽象的训练。
给朋友讲一个你最熟悉的菜怎么做,要求每一步都必须能被另一个人照做。这是算法思维的训练——讲清楚即写清楚。
思维不是天生的,是被问题逼出来的。今天就开始做这三个练习,明天你的代码会自己变好。