随笔
技能树梳理与自我评估
作为计算机科学与技术专业学生,清醒地认知“自己会什么”以及“自己还欠缺什么”,是大学阶段从迷茫走向笃定的关键分水岭。以下是我梳理的当前技能树与全方位自我评估:
技能树结构化评估
能力 A:编程语言与核心基础
- 已掌握能力:
- 掌握 C / C++ 的语法特性,深入理解指针、内存模型与面向对象(封装、继承、多态)思想;
- 掌握基础 Python 脚本编写与标准库运用;
- 掌握常见数据结构(链表、栈、队列、二叉树、哈希表、图)及基础算法(排序、二分、DFS/BFS、动态规划基础)。
- 目前欠缺能力:
- 缺乏对现代 C++(C++17/20 智能指针、移动语义、并发特性)的工业级实战应用;
- 数据结构与算法的复杂度把控和难题思维,如复杂图论、高级动规。
能力 B:工程化工具链与协同开发
- 已掌握能力:
- 熟练使用 Git 进行日常版本管理(commit、push、pull、branch、merge、stash);
- 熟悉 VS Code 等现代 IDE 的插件生态与环境配置;
- 具备基础的 Linux 环境操作能力,掌握常见 Shell 命令行工具与文件系统操作。
- 目前欠缺能力:
- 缺乏复杂 GitFlow 多人分支协同及冲突解决实战经验;
- 尚未系统掌握 Docker 容器化打包、GitHub Actions 自动化 CI/CD 流水线编写,工程部署能力有待加强。
能力 C:软件架构设计与全栈系统开发
- 已掌握能力:
- 理解 HTTP / HTTPS 协议,掌握网站的部署;
- 能够借助AI完成一些想法。
- 目前欠缺能力:
- 缺乏大型企业级项目的系统架构设计能力(如高内聚低耦合的分层架构、设计模式的合理选型);
- 缺乏高并发、分布式缓存(Redis)、关系型数据库深层索引调优(MySQL 慢查询优化)的实战经验;
- 自动化测试与工程质量保障体系(单元测试覆盖率、Mock 测试、压力测试)经验严重不足。
代码量现状与学期目标
- 截至目前的代码量统计:
粗略估算截至目前累计编写代码量约为 5,000 ~ 6,000 行(主要分布于大一程序设计基础、面向对象课程设计、数据结构作业)。 - 本学期课程结束时希望达到的代码量:
希望通过软件工程课程的个人作业与团队综合大作业,本学期新增有效代码量达到 8,000 ~ 10,000 行,使得大学累计代码量突破 15,000 行。更重要的是:写出具备规范命名、完善注释、单元测试与架构分层的工业级工程代码。
本课程中最期待学习的知识与预期收获
- 真实的软件工程全流程协作:
以往写代码多是“单兵作战”,随心所欲。最期待在团队作业中扮演真实角色,经历从需求调研、原型设计、接口文档定义、敏捷迭代(Scrum)、代码审查(Code Review)到最终上线交付的全过程,体验团队协作的工程张力。 - 架构设计与质量守护:
学习如何运用 UML 进行前置系统建模,理解 SOLID 原则与设计模式在真实项目中的落地,掌握单元测试(Unit Testing)与持续集成自动化测试工具,明白如何写出“能让队友放心扩展、三个月后自己还能看懂”的健壮代码。 - 预期收获:
不仅是技术工具层面的扩充,更是思维方式从“编码员(Coder)”向“软件工程师(Software Engineer)”的质的飞跃。
AI 生成软件工程学习指南与批判性评估
为了拓展学习视野,我使用 Gemini 生成了一份针对高校本科生的《软件工程课程全流程精要指南》,并对其进行了深入的独立思考与批判性分析。
AI 生成的软件工程课程学习指南
【AI 生成内容摘录】
《软件工程课程全流程核心学习指南》
- 核心心智模型转变:软件工程不是写代码,而是“管理复杂性与变更”。代码只是软件产品在某一时刻的具象化呈现,生命周期中的需求分析、系统设计、测试与运维占据了 70% 以上的成本。
- 关键阶段掌控法则:
- 需求分析:坚持“用户故事 + 验收标准”,杜绝模糊需求,善用用例图与状态机描述边界条件;
- 系统架构:严格遵循单一职责(SRP)与依赖倒置(DIP),微服务优于单体,在动手编码前必须绘制完整的领域模型与类图;
- 协作管理:强制执行 Git 分支策略(GitFlow),每条 PR 必须经过至少一位同行评审(Code Review),测试覆盖率未达 80% 禁止合并;
- 测试驱动:践行 TDD(测试驱动开发),先写测试用例再写业务实现,集成 CI/CD 工具自动化运行回归测试。
- 团队生存指南:保持每日站会(Daily Scrum),透明化同步阻塞问题;建立项目公共知识库,杜绝信息孤岛。
对 AI 生成指南的合理性与实用价值评估
经过逐条推敲,我认为这份由 AI 生成的指南骨架健全,但存在典型的工程理想主义与学生阶段脱节的硬伤。具体辩证分析如下:
(1) 合理且值得高度吸收的部分
- 心智转变的观点极为深刻:很多同学容易把软工课等同于“又一门大作业编程课”。AI 指出“软件工程是管理复杂性与变更”,这一论断极为精准。高校大作业很多时候中途崩溃并非因为代码写不出来,而是因为前后端接口随意变更、需求无限蔓延且没有文档纪律。
- GitFlow 与代码评审的建议切中痛点:AI 强调的 PR 审查与分支隔离是大学团队必须建立的工程底线。
(2) 过于理想化、脱离实际教学环境的局限
- 盲目推崇“微服务优于单体”:这是典型的工业界大厂模式生搬硬套。对于一学期的本科课程团队,单体分层架构(Monolith)具有极低的通信成本与部署心智负担。强上微服务只会导致团队把 80% 的精力浪费在服务发现、RPC 调试和跨域运维上,本末倒置。
- “TDD 与 80% 测试覆盖率”在初学阶段极难推进:高校学生通常是边学框架边写业务,在对领域模型尚未完全理清前强推 TDD 会带来极大的挫败感。更合理的做法是:对核心业务逻辑与关键算法编写单元测试,其余接口依赖自动化端到端测试做主干防护。
(3) 总结:这份指南对我本学期的实际指导价值
这份指南如同一张“理想态海图”。我不能将其奉为教条盲目全盘照搬,而应“取其精髓,因地制宜”:
- 采纳其规范化的分支管理、文档先行、接口先行理念;
- 摒弃其过度设计(如滥用微服务、教条化 TDD)的倾向;
- 将其作为本学期团队作业的“避坑检查清单”,在实践中检验真知。

浙公网安备 33010602011771号