TS6: 记要也是计划

编程学习中大量的探索过程应该科学记要起来...

苦也

不仅仅在蟒营™Python 入门班课程中, 在以往各种组织/社区中, 都经常见到初学者, 异常痛苦的提问:

  • 如题跪求
  • 电脑兰屏了...怎么办
  • 为什么我就是找不到分支
  • ...

其实

问题本身一定包含了解决方案, 如果没有, 一定是没找对问题

认真回顾一下自己想发布的 "问题", 如果情绪相关的描述超过 20% , 就已经证明这基本不是"问题", 只是哭号而已...

但是, 也理解为什么一般初学者, 难以提供有效的问题信息, 以便有经验的先学者分享体验?

  • 因为, 问题的触发是完全无计划的,随时可能发生的
  • 比如:
    • 只是按照资料中提供的代码, 复制过来
    • 怎么一运行就报错呢?
    • 我真的一点儿都没敢改哪...
  • 好比:
    • 自己在作罗宋汤
    • 刚刚烧好了水, 但是, 不知道后续行动
    • 上网找到一则绿咖喱蔬菜汤的部分菜谱
    • 什么也没变动照样丢进锅
    • 然后莫明惊诧: 为什么是绿色的?
  • 其实, 开发/学习过程中的记要本身, 也是编程的一部分:
    • 记述目标
    • 分析目的
    • 规划探索
    • 检验效果
    • 记载过程
    • ...
  • 也就说, 编程中, 代码之外的所有思考/行为/... 都应该尽可能记录下来
    • 这样发生问题
    • 才有足够的信息/数据可以对应匹配起来
    • 变成一份合格的理性的包含足够信息的好问题.

嗯哼

为什么这么说?

先看看蟒营™课程中提供的提问模板的关键部分吧:


5W1H

  • When? 精确发生时间点
    • 不止是时间, 还包含事件序列
    • 比如:
      • 先准备了什么
      • 输入了什么
      • 触发了当前问题
  • Where? 在什么场景中,什么数据上下文?...
    • 不止是输入, 还包含所有运行时应该明确的周围环境
    • 网络: wifi 2g? 4G 手机? 有线?
    • 什么终端软件中?版本? 什么浏览器中?版本? ...
  • What? 想完成什么目标? 操作序列, 指令, 终端输出?...
    • 问题触发时, 原本目的是什么?
    • 具体想达到什么目标?
    • 输入什么, 期望获得什么?
  • Why? 如何理解的?
    • 当前自己的理解, 分析...
  • How? 进行了什么尝试?

其实, 这一模板本身就是学习笔记记要的形式建议了:

  • 在开始探索前, 先记录自己开始时的状态, 包含:
    • 系统
    • 软件版本
    • 目录
    • ...
  • 当然, 也应该包含当前任务目标:
    • 目标分析
    • 自己理解的目标
    • 要达成, 应该包含几个环节
      • 每个阶段达成的指标
      • 指标的体验工具/方式/数值/...
  • 也就是说, 在真正动手前,
    • 就象登山前一样, 至少应该清点明白:
      • 自己的能力
      • 当前携带的物资
      • 去目标高度可能的路径
      • 路径上关键标志物的精确数据
      • ....
    • 这样, 才可能在登山过程中, 不断和计划对比, 快速修正,
      • 作到发生任何意外, 都有预案
      • 或是有足够信息可以快速完成新的决策
  • 那么开始探索时:
    • 则是在对应规划条目之下
    • 根据真实的探索/搜索/实验/...
    • 将所有必要信息都记录下来, 按照对应子问题的解决探索过程
      • 有效的搜索关键词
      • 感觉有用的文章链接
      • 文章中参考的代码
      • 代码中涉及的新模块
        • 模块官网
        • 模块文档
        • 文档中对应案例代码
        • 关键函式参数说明
      • 代码试运行时涉及的依赖配置/数据/操作
        • 成功时的输入/出
        • 失败时的输入/报警
        • ...
  • 也就是说, 记录不过是持续对开始前规划的探索路径的持续完备
    • 并在过程中不断证实是否有效
    • 放弃无效逻辑分支
    • 深入有效可工作分支
    • 随着代码的增长, 记录也应该至少以 1:42 的比例增长
      • 也就是说, 每一行可用代码, 至少应该对应42行以上的探索记要
  • 当然, 这种学习笔记/记要, 记的多了就会发现
    • 值得记录的东西越来越少
    • 以往用 420 行记要才弄明白的事儿
    • 现在连 4.2 个字都懒得记
      • 因为, 太常识了, 太明显了
      • 太普通了, 根本没记要的价值...
  • 这其实, 也从另外一个角度在印证了我们在相关领域已经真正掌握了对应知识

总之编程学习过程中的笔记就象绘画中素描过程,

  • 记要也一定要从打轮廓开始
    • 先外形,
    • 再明暗
    • 然后, 才能进入细节
  • 只有这样, 我们在无尽的互联网中探索时
  • 才能不致迷失在无穷的资料宇宙中...
  • 一直以任务解决为目标
    • 以笔记大纲为框架
    • 高效探索/检验/明确最终最可行的路径
    • 并随时可以重新开始一轮实验
      • 因为每个阶段, 每个探索的开始状态
      • 都在笔记中
    • 也意味着可以随时结合代码和笔记
      • 发布一份非常完备的技术问题
      • 而且不包含任何情绪内容

PS:

  • 如果这种笔记结合 Issue 来追踪自己学习/探索过程
  • 其实, 就是 IDD 了
    • Issue Driver Develop
    • 提案驱动式开发.

是也乎:

这就是蟒营™课程体验, 和以往所有课程体验根本相反, 正如学员感叹的:

究竟如何算"会编程"?蟒营™Python入门班认为:"能自信将具体软件功能分解为自身能力范畴以内的系列子问题",而如何达到这一状态?蟒营™执意想陪同学员一起渡过新手最困难的时期,建立自信享受编程乐趣.

所以:

蟒营(101.camp):

编程人生伴侣
编程起重人生
你本来就很行

Reactivate Joy by Self-teach with You
    伴你重享学习乐趣

综合来说, 蟒营可以激发学员获得多种进步:

  • 在职非 Python 程序员 <-实用工程经验, 包含团队管理体验
  • 在校大二/三学生 <- 完备软件开发经历, 能独立用 Python 完成实用工具开发
  • 真小白(无基础人士) <- 切实编程自信, 真正理解什么是编程, 并熟悉 Python 技术生态,能基于工程思维来解析具体问题..
  • 以及所有学员能获得的:
    • 高效问题讨论习惯
    • 上手标准社区协作
    • 自律的周学习节奏
    • ...

而这一切变化, 都在6周里即可完成.

PS:

14岁~72岁都能学, 嘦:

0: 想学编程
1: 有个人电脑
2: 每周能挤出10+小时自主学习时间
3: 英文资料能查字典看懂

NN 3867

首发: TS06: 记要也是计划 — Blogging 蟒营™ 博客




自怼圈/年度番新

DU22.8
关于 ~ DebugUself with DAMA ;-)
点击注册~> 获得 100$ 体验券: DigitalOcean Referral Badge

订阅 substack 体验古早写作:


关注公众号, 持续获得相关各种嗯哼:
zoomquiet


蟒营®编程思维提高班Python版

**2021.01.11** 因大妈再次创业暂停定期开设, 转换为预约触发:
  • + 扫描预约入群, 学员每满 42 人即启动新一期训练营 ;-)
  • 101camp22.7
  • + 任何问题, 随时邮件提问可也:
    askdama@googlegroups.com