我的技能现状与软件工程学习计划
软件工程课程随笔:技能梳理与学期学习规划
作为计算机科学与技术专业的大三学生,在正式开启软件工程课程学习之前,我对自身的技术积累、能力边界和发展方向做了一次完整梳理,同时结合 AI 工具生成的学习指南,制定本学期的学习目标与规划。
一、个人技能树梳理与自我评估
已具备的专业知识与能力
- 编程语言基础
熟练掌握 C 与 C++ 编程语言,理解语法规则、内存管理、指针操作等核心内容,能够独立完成中小型程序的编写与调试,具备扎实的底层编程思维。 - 数据结构与算法
掌握线性表、栈、队列、树、图等基础数据结构的原理与手动实现,熟悉常用排序、查找算法,能够进行基础的时间与空间复杂度分析,具备一定的问题抽象与代码实现能力。 - 面向对象程序设计
深入理解封装、继承、多态三大面向对象核心特性,能够运用 C++ 完成面向对象的程序设计,具备基础的类设计与抽象思维,了解单例、工厂等简单设计模式的应用场景。 - 基础开发工具能力
能够使用 Visual Studio、Dev-C++ 等开发环境完成代码编写与调试,掌握 Markdown 基础语法,具备基本的技术文档撰写能力。
感兴趣的技术方向
- 系统级与高性能开发
基于 C/C++ 的技术积累,对底层系统开发、高性能计算、游戏引擎开发、嵌入式软件开发等方向有较强兴趣,希望深入理解计算机系统的运行机制。 - 软件架构与工程化实践
希望从 “实现单个功能” 向 “设计完整软件” 进阶,学习软件架构设计、模块化开发、质量管控等工程化方法。 - 算法工程化落地
关注算法从理论到落地的完整过程,对算法优化、工程化部署、性能调优等方向有探索意愿。
目前欠缺的能力
- 工程化开发经验不足
过往编写的代码多为课程作业和算法练习题,代码量小、场景单一,缺乏大型项目的开发经验,对代码规范、模块化设计、版本管理等工程化实践接触较少。 - 完整软件生命周期认知缺失
对需求分析、系统设计、软件测试、项目管理等完整的软件开发流程缺乏系统学习,开发习惯偏 “边写边改”,没有科学的方法论支撑。 - 团队协作能力薄弱
编程练习多以个人完成为主,缺少多人协作开发项目的经历,对任务拆分、进度同步、冲突处理、沟通协作等缺乏实践。 - 主流技术栈与工具链掌握不足
仅掌握基础编程语言,对版本控制工具、UML 建模、自动化测试、项目管理工具等软件工程常用工具链不熟悉。
二、代码量现状与学期目标
- 截至目前累计代码量:约 9000 行。主要来源于 C/C++ 课程作业、数据结构算法练习、面向对象程序设计课程实验,以算法实现和小型功能程序为主,工程类项目代码占比很低。
- 本学期课程结束目标:累计代码量达到 20000 行以上。其中软件工程课程的项目实践代码占比不低于 60%,在追求数量的同时,重点提升代码的规范性、可维护性与架构合理性,完成从 “写能运行的代码” 到 “写工程级代码” 的转变。
三、本课程最期待学习的知识与收获
软件工程是连接基础编程与实际项目的核心课程,我对这门课有明确的期待:
- 掌握完整的软件工程方法论
系统学习需求分析、概要设计、详细设计、编码实现、软件测试、部署维护的全流程理论,建立工程化开发思维,告别凭直觉写代码的模式。 - 积累真实项目与团队协作经验
通过课程大作业体验团队开发的完整过程,学习任务拆分、进度管理、沟通协作的方法,熟悉多人协作的开发流程与工具。 - 建立代码质量与设计意识
学习软件设计原则、常用设计模式、代码规范与重构方法,理解优秀软件的评判标准,培养对代码质量的追求。 - 掌握软件工程常用工具链
熟练掌握 Git 版本控制、UML 建模、项目管理等工具,形成符合行业标准的开发习惯,为后续实习与就业打下基础。
四、AI 生成软件工程课程学习指南与分析
本次选择 DeepSeek 作为 AI 工具,结合我的专业基础生成了一份定制化的软件工程课程学习指南,以下为生成内容与我的个人分析。
AI 生成的软件工程课程学习指南
软件工程课程学习指南(C/C++ 方向本科版)
1. 前置准备阶段(第 1-4 周)
巩固 C++ 面向对象基础,重点复习类设计、继承多态、接口抽象相关知识;快速入门 Git 版本控制与 Markdown 文档写作;初步了解软件工程的核心概念与软件生命周期,建立 “软件 = 代码 + 文档 + 过程” 的认知。
2. 核心理论学习阶段(第 5-12 周)
- 需求工程:学习需求获取与分析方法,掌握用例图、数据流图等需求建模工具,能够编写规范的需求规格说明书。
- 软件设计:区分概要设计与详细设计,学习模块化设计原则、常用架构模式,结合 C++ 语言特性理解设计模式的应用场景。
- 软件测试:掌握单元测试、集成测试、系统测试的流程与方法,理解黑盒、白盒测试技术,能够编写基础的测试用例。
- 项目管理:了解瀑布模型与敏捷开发的区别,学习进度管理、风险管理、任务拆分的基础方法。
3. 项目实践阶段(贯穿全学期)
跟随课程案例完成一个小型项目的全流程开发,输出完整的设计文档与测试报告;组队完成课程大作业,主动承担核心模块设计与开发,练习 Git 多人协作;每次迭代后进行代码复盘与重构,强化规范意识。
4. 拓展提升阶段(第 13 周期末)
结合自身兴趣深耕 C/C++ 工程化实践,学习代码优化、性能调优、内存管理等进阶内容;阅读优秀开源 C++ 项目的架构与文档;梳理课程知识体系,形成个人的软件工程方法论,整理项目作品集。
合理性与适用性分析
合理且有实际帮助的部分
- 路径贴合认知规律,匹配个人基础
指南没有重复讲解 C/C++ 语法,而是从已有的编程基础出发,向工程化能力延伸,正好对准我目前的能力短板,学习坡度适中,不会出现基础内容重复、进阶内容脱节的问题。 - 理论与实践强绑定
将项目实践贯穿整个学期,而非集中在期末突击,并且明确了每个阶段的输出成果(需求文档、设计文档、测试报告),能有效避免 “只学理论不落地” 的问题。 - 方向针对性强
没有泛泛地讲解全栈开发,而是结合 C/C++ 方向给出拓展建议,和我偏向系统级开发的兴趣方向一致,具备很强的参考价值。
需要结合自身调整的部分
- 设计模式部分需要额外加码
我目前仅了解最基础的设计模式概念,实际运用能力薄弱,需要在软件设计阶段投入更多时间,结合 C++ 语言特性手动实现常用设计模式,加深理解。 - 代码量目标需要细化落地
指南没有明确的代码量要求,我会把学期 2 万行的目标拆解到每个阶段,保证理论学习的同时有足够的编码实践支撑。 - 补充测试工程化内容
指南中测试部分偏理论,我会额外补充单元测试框架、自动化测试的实操内容,强化测试环节的工程能力。
总体而言,这份 AI 生成的学习指南整体框架科学合理,能够为我本学期的学习提供清晰的路径参考。我会以这份指南为基础,结合自身的基础与兴趣做个性化调整,确保在课程结束后真正建立工程化思维,完成从编程学习者到软件开发者的转变。

浙公网安备 33010602011771号