DAY01 — 成长计划启动
制定成长计划:从初级到高级工程师的学习路径和教学方式约定。
DAY01 — 成长计划启动
日期: 2025-06-19
相关笔记:[[DAY01b-Python迷惑语法]] | [[DAY01c-策略模式]] | [[DAY01d-HTTP拦截与CookieSession]] 相关主题:[[设计模式]] | [[Python基础]]
目标
从"coding 能力不足、设计思维一般"到"高级工程师"。这是第一天,先明确方向和方式。
自评与差距
当时对自己的评估:
- Python: 能读代码但写不出来(列表推导式记不住、装饰器搞不清)
- Java: 能做 CRUD 但设计能力弱(代码耦合严重、不改代码不会重构)
- 数据结构和算法: Stack/Queue 概念记得但不会用,HashMap 的 put 语义说不清
- 框架: Spring Boot 会用但不懂原理,Redis/MQ 只是名字听过
- 防御式编程: 只抓表面异常,对 null 校验、部分失败、边界情况没有概念
约定教学方式
教学方式采用"找 bug → 引出模式"的方法:
- 先给一段写得很烂的代码(各种坑,典型的初级错误)
- 我自己找问题,找到了说明有感觉,找不到就暴露盲区
- 引出设计模式或最佳实践,把烂代码重构好
这个方式的好处是:发现的每个问题都对应了一个真实生产中的坑,而不是学完就忘的理论。
学习承诺
- 每天至少一道编程题(从基本功开始)
- 学习记录自动保存,不需要每次确认
- 用全新示例教学,不用自己项目里的代码——避免先入为主
当前薄弱环节
从第一天的勘误中发现的问题:
- 列表推导式阅读顺序"从右往左"(for → if → 表达式)需要强化记忆
- 防御式编程只写了 try-except,完全没做参数校验
- 对 Python 的 dict.update() 和 setdefault() 语义混淆
- Java 的 HashMap.put() 认为是"返回相同 key 对应的 value"(实际是:新值替换旧值,返回旧值)
这些看似基础的问题,背后是对语言特性理解只停留在"能跑"层面,没有建立清晰的心理模型。后续的学习就是针对这些薄弱点逐个突破。
相关文件
- 学习清单:[[成长清单]]
- 下一天:[[DAY02-观察者模式]]