Programing Reflection

Q1.编程过程中什么是你觉得最麻烦的事情?

A1:不期而遇的BUG与难以找到正确解决Bug的钥匙,总是不停搜索,乱试,直到碰运气解决为止。 R1:

  • Bug 有两种来源: 现实系统中自带Bug

    • 我的操作图谱和现实图谱间存在偏差

    • 目前来说,99%我遇到的Bug都来自第二种情况,因此解决Bug时,应当首先假定是第二情况

  • 操作图谱与现实图谱的偏差主要源于

    • 白痴级别:抄错代码

    • 代码实际执行功能与我设想有出入

  • 为何难以找到正确解决Bug的钥匙:

    • 代码过长,无模块区分并检测,所以最终发现问题时,已经难以回溯检测确定——因此写代码要模块化区分开——要学习怎么模块化分割代码功能与检测

    • 在搜寻网页寻找解决方案的过程中逐渐迷失,没有方案1—反馈—方案2—反馈的有效循

    • 搜寻解决方案网页方法,优先顺序有问题:!!!官方help文档是第一选项

    • 记住:如果已感难以进行,就不要强迫自己,休息一下,反思发生了问题,自己试了哪些解决方案。有时候休息的时候潜意识会自己告诉你答案~

    • 用笔写下自己的解决思路、方案优先顺序,这很有效!

Q2:目前对你来说,编程最难以坚持的原因会有哪些?

R2:无法自我设计合理到达目标的阶梯,具有合理难度与方向的阶梯。即无法自我设计出能够阶梯性、多样化提高技能、思维的编程任务。 一点猜想:阶梯之间的区分度在于任务跨越的“系统”,对象的多样性的提升。就好像不论你按照automate boring stuff with Python里那些教程学会了多少,GUI的加入才是任务阶梯难度真的跨越的时候,否则其余都出于还在同一纬度,体系里构建。或许一个能够真正实现自我设计任务的核心关键在于,观察“已完成式”产品,然后反推回去。 虽然很多教材都告诫新手,快快丢开书籍,去编自己的代码,但新手连对编程的功能都是缺乏想象的,更缺乏将现实成熟作品解剖模仿能力。 R3: 对project的难点要有优先级,先实现关键功能(关乎程序存否),再去调节细节性功能。

R4:新手难以读懂编程相关官方文件,往往是因为大脑里缺乏一个相关code真正实现的画面,无法推测、想象代码的功能。同时,官方文件把相关概念全部分割,纯文本的讲解不利于新手将功能组合。应对这种情况,最好遍一个独立运行,最基本功能实现的小代码,然后一步步尝试功能。

Last updated