跳到正文
Joeplover
学习笔记·2026-06-19·约 2 分钟阅读

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 → 引出模式"的方法:

  1. 先给一段写得很烂的代码(各种坑,典型的初级错误)
  2. 我自己找问题,找到了说明有感觉,找不到就暴露盲区
  3. 引出设计模式或最佳实践,把烂代码重构好

这个方式的好处是:发现的每个问题都对应了一个真实生产中的坑,而不是学完就忘的理论。

学习承诺

  • 每天至少一道编程题(从基本功开始)
  • 学习记录自动保存,不需要每次确认
  • 用全新示例教学,不用自己项目里的代码——避免先入为主

当前薄弱环节

从第一天的勘误中发现的问题:

  • 列表推导式阅读顺序"从右往左"(for → if → 表达式)需要强化记忆
  • 防御式编程只写了 try-except,完全没做参数校验
  • 对 Python 的 dict.update() 和 setdefault() 语义混淆
  • Java 的 HashMap.put() 认为是"返回相同 key 对应的 value"(实际是:新值替换旧值,返回旧值)

这些看似基础的问题,背后是对语言特性理解只停留在"能跑"层面,没有建立清晰的心理模型。后续的学习就是针对这些薄弱点逐个突破。

相关文件

  • 学习清单:[[成长清单]]
  • 下一天:[[DAY02-观察者模式]]