第一次作业随笔
当前的技能树和技术偏好
- 计算机基础理论:掌握计算机组成原理掌握计算机网络基础体系,熟悉TCP/IP协议、HTTP/HTTPS协议、三次握手四次挥手、网络分层架构等核心知识点。
- 了解数据结构与算法基础内容,熟练掌握数组、链表、栈、队列、树、图等基本结构,熟悉排序、查找、递归、贪心、动态规划基础算法;
- 掌握C,c++,了解python基础语法
- 对机器学习,深度学习有兴趣
目前欠缺的能力与不足
- 缺乏完整项目开发经验,仅能完成零散功能模块开发,无法独立搭建完整的前后端项目,对项目架构设计、分层开发、模块化编程的实战应用不足。
- 计算机网络、操作系统的落地应用能力不足,仅掌握理论知识,无法将底层原理与实际开发场景结合
- 代码优化能力欠缺,编写的代码多以实现功能为主,缺乏对代码简洁性、运行效率、内存占用的优化意识,不熟悉代码重构技巧。
代码量统计与学期目标
- 截至大三开学,通过两年课程作业、算法刷题、小型功能开发,累计有效代码量约8000行。
- 计划通过本学期课程实践、框架学习、算法刷题、小型项目开发,新增有效代码量7000行以上,期末累计总代码量突破15000行。重点提升框架开发代码、项目实战代码占比,减少纯基础习题代码占比,提升代码质量与实战价值。
希望学习内容
在软件工程课程中,我最期待学习软件完整生命周期、各类开发模型、UML建模、需求分析、软件测试以及团队协同开发的相关知识,掌握从需求、设计、编码到测试维护的整套工程流程,学会规范撰写项目文档。希望通过课程的理论学习与小组项目实践,建立工程化开发思维,理解高内聚低耦合等设计原则,补齐项目实战与多人协作开发的短板,养成规范编码习惯,完成本学期代码量目标,实现从单纯会写代码到能够参与规范化软件项目开发的转变,为今后的项目实践和实习打下基础。
软件工程课程简要学习指南
一、课程核心定位
软件工程是从代码编写转向工程化项目开发的核心课程,区别于编程语言、算法类课程,重点学习规范化、流程化、团队化的软件项目开发方法,解决只会写零散代码、不会做完整项目、开发不规范的问题,是对接实战与企业开发的重要课程。
二、核心学习内容与重点
1. 软件生命周期(重中之重)
掌握完整流程:可行性分析→需求分析→概要设计→详细设计→编码实现→软件测试→部署维护→迭代优化,改掉直接上手写代码的习惯。
2. 主流开发模型
- 瀑布模型:线性阶段化,适合需求稳定项目
- 迭代/增量模型:分版本逐步完善,适合需求变化场景
- 敏捷开发:快速迭代、强调团队协作,工业界主流
3. 需求与架构设计
- 需求分析:区分用户需求与软件需求,梳理功能、非功能需求
- 设计原则:高内聚、低耦合,模块化、分层设计
- UML建模:掌握用例图、类图、时序图、活动图的阅读与绘制
4. 软件测试与优化
- 测试分类:黑盒测试、白盒测试、单元测试、集成测试
- 目标:发现缺陷,提升健壮性,避免代码难以维护
5. 团队工程化协作
项目分工、Git版本控制、代码规范、接口约定、各类项目文档编写。
三、学习目标与能力收获
- 思维目标:建立工程化思维,不只追求功能实现,兼顾规范性、可维护性、可迭代。
- 技能目标:能够完成小型项目全流程设计,会写需求、设计、测试文档,掌握基础建模和测试手段。
- 实战目标:借助课程小组项目积累团队协作经验,提升架构设计、排错、代码优化能力。
四、高效学习建议
- 先设计后编码,不要一上来就写代码。
- 重视代码规范,看重可读性与复用性,不只堆代码量。
- 理论结合小组项目实践,把UML、开发模型、测试方法落到实际。
- 利用课程弥补项目经验不足,积累可用的项目经历。
五、期末核心考核要点
- 软件开发模型辨析及适用场景
- 软件生命周期各阶段任务
- UML常用图分析与绘制
- 软件测试方法、软件设计原则
- 项目文档撰写与团队项目实践
浙公网安备 33010602011771号