把老师给的每条结论当作假设,而不是答案:先在自己的资料或页面上找一处“按结论做应该变好、实际却没变好”的地方,再判断是结论有边界条件,还是执行环节出了偏差。反例练习的价值不在推翻结论,而在于逼你写出适用前提,这样下次面对新页面时才知道该不该照搬。
课程里的结论通常混着三种东西:现象描述、因果解释、操作建议。比如“标题里带核心词更容易被理解”是现象层面的观察,“因为用户扫读时先看标题”是解释,“所以每篇标题都前置核心词”才是建议。反例练习应主要针对建议层,因为现象和解释往往有统计背景,而建议一旦脱离条件就会误导执行。
做法很简单:打开你手头的一份课程笔记或一个真实页面,逐条标注每句话属于哪一层。凡是落在建议层的,都单独抄成一句“如果……那么……”的形式。写不出前提条件的建议,就是最需要补反例的对象,因为它意味着老师默认了一个你没看见的场景。
路径一:从结论倒推边界。挑一条建议,问“什么情况下这条不成立”,然后在自己能接触到的页面里找一例。路径二:从异常页面倒推结论。先找一个表现和预期不符的页面,再回头问“课程里哪条结论本应解释它,却没解释住”。
两种路径的取舍取决于你手上有什么。如果你有明确的课程笔记但缺少可操作页面,走路径一,成本低,但反例容易停留在想象层面。如果你有真实页面和可观察的数据变化,走路径二,反例更扎实,但需要你先承认“这个页面确实没按预期走”,而不是急着归因到算法波动。代价是:路径二更慢,且容易把无关因素误当成结论失效的证据。
一个可区分的判断依据是:如果你能写出反例的具体页面位置和改动前后你观察到的差异,就走路径二;如果只能写出“理论上可能不成立”,就先走路径一,把它当待验证清单,等有页面时再补。
假设课程结论是“内页应尽量在首段出现核心词”。不要直接接受或否定,而是按下面步骤处理:
这个动作的结果会直接影响下一步:如果反例成立,你得到的是结论的边界条件,可以把它写进自己的操作清单;如果反例不成立,说明你原先设想的冲突不存在,这条结论在你的场景里可以直接用。两种结果都比“记住结论”更有用。
反例练习最容易滑向“我觉得老师说得不对”。要避免这一点,把判断落到可查的证据上:课程资料里是否给出了该结论的适用对象、时间范围或数据来源。如果资料只写了结论,没有写前提,那它本身就是不完整的,你的任务不是猜,而是标注“前提缺失”,并在自己的页面上试出一个前提。
如果课程来自某个具体机构或讲师,而你无法确认其资料是否更新,不要凭论坛传言下判断,也不要假设其现行服务或内容仍然有效。可行的做法是:只评估你手上这份资料本身——它有没有说明适用条件、有没有区分不同页面类型、有没有给出可验证的观察方式。缺哪一项,就在哪一项上补反例练习。
一份合格的反例练习记录包含四部分:原结论、你假设的适用前提、你找到的反例页面或场景、以及你实际做了什么改动、观察到什么。最后一行写清这条结论在你当前场景里是“可用”“有条件可用”还是“暂不适用”。
这样做的直接好处是,下次遇到新页面时,你不再需要回忆老师原话,而是翻自己的条件清单。反例练习的真正产出不是反驳,而是一份带前提的操作依据,让你在没人给结论时也能自己判断该不该照做。