第一次作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546 |
这个作业的目标 | 熟悉markdown语法,git,github基础功能 |
学号 | 102301310 |
个人资料
团队主页的地址
https://github.com/zhangcaihan/ruanjiangongcheng
自我评估
具备能力:
目前具有一定的C/C++的基础:能够熟练使用 C/C++ 编译和调试工具,掌握基本语法结构和常用语法技巧,且学习过常见的数据结构(数组、链表、栈、队列、树、图)以及常用算法(排序、查找、递归、分治等),能够独立完成一些中小型算法题。
感兴趣方向:
对算法与实际工程结合 的方向比较感兴趣,尤其是算法如何在大型软件中发挥作用。对团队协作开发也有浓厚兴趣,想要学习如何使用工具与方法支撑多人开发
当下的不足:
目前对于团队合作方面能力欠缺。同时,我的代码量并不充足,半数来源于课时布置的作业,且没有参与过大型项目的经验,对于这些流程缺乏经验。
代码量和目标:
目前5000左右,希望通过这学期的学习能够将代码量翻倍。
期望学习的知识
期待系统学习软件开发的完整流程,从需求分析、设计到编码、测试与维护,能够充分体验多人项目的开发流程。
软件工程专业学习进阶指南
一、学科认知与基础构建阶段
- 学科本质理解
- 明确软件工程与纯编程的区别:软件工程是"用系统化、规范化、可度量的方法开发、运行和维护软件"的工程学科
- 理解软件的双重属性:技术属性(代码、架构)与工程属性(成本、进度、质量)
- 建立"用户中心"思维:软件的价值在于解决实际问题,而非技术炫技
- 基础学科夯实
- 数学基础:离散数学(逻辑、集合、图论)是算法与建模的根基;概率论与数理统计用于数据分析与测试
- 计算机基础:操作系统(进程管理、内存模型)、计算机网络(TCP/IP协议栈、服务架构)、数据库原理(关系模型、事务ACID)
- 编程入门:掌握至少一门主流语言(Java/Python/C++)的语法规范与基本编程范式
- 工程思维启蒙
- 学习软件生命周期各阶段的核心任务与产出物
- 理解"质量成本"概念:前期设计缺陷会导致后期指数级修复成本
- 实践:绘制个人学习计划的"甘特图",模拟项目时间管理
二、技术能力提升阶段
- 编程能力深化
- 代码质量:学习《代码整洁之道》规范,掌握重构技巧,减少"坏味道"代码
- 进阶特性:深入理解面向对象三大特性(封装、继承、多态),掌握函数式编程思想
- 性能优化:学习时间/空间复杂度分析,掌握常见性能瓶颈解决方法
- 实践:将大一写的"学生管理系统"重构,应用设计模式优化架构
- 开发工具精通
- 集成开发环境:掌握断点调试、性能分析、插件配置等高级功能
- 版本控制:熟练使用Git的分支策略(Git Flow)、代码审查(Pull Request)流程
- 构建工具:Maven/Gradle(Java)、npm/yarn(前端)、CMake(C++)
- 实践:搭建个人代码规范检查工作流,集成自动化格式化工具
- 专项技术突破
- 后端开发:学习API设计规范(RESTful)、身份认证(JWT/OAuth)、ORM框架
- 前端开发:掌握组件化思想、状态管理、前端工程化(模块化、打包优化)
- 移动端:理解原生开发与跨平台方案的优缺点,掌握UI/UX实现原则
三、系统设计与工程实践阶段
- 软件设计能力培养
- 学习UML建模:用例图(需求分析)、类图(结构设计)、时序图(行为设计)
- 掌握架构模式:分层架构、微服务、事件驱动架构的适用场景与设计要点
- 接口设计:学习SOLID原则,设计高内聚低耦合的模块接口
- 实践:为系统绘制完整设计文档,包含架构图与核心模块设计
- 测试与质量保障
- 测试理论:单元测试、集成测试、系统测试的边界与实施方法
- 自动化测试:学习JUnit/Selenium等工具,掌握测试驱动开发(TDD)理念
- 质量指标:理解代码覆盖率、缺陷密度、性能指标(响应时间、吞吐量)
- 实践:为之前开发的应用编写自动化测试套件,目标代码覆盖率≥70%
- 团队项目实战
- 角色体验:在团队中至少担任过开发者、测试者、技术负责人等不同角色
- 流程实践:完整执行一个敏捷迭代(计划→开发→评审→回顾)
- 协作工具:熟练使用Jira(任务管理)、Confluence(文档协作)、Jenkins(CI/CD)
- 实践:团队开发一个实用项目(如校园活动管理平台),经历完整生命周期
四、学习建议
循序渐进:从小功能入手,逐步扩展成完整系统。
重视规范:坚持写注释、统一代码风格、完善文档。
主动交流:积极参与小组讨论和代码评审,提升沟通与表达能力。
持续积累:保持编程练习的连贯性,稳步提升代码量与项目经验。
这份指南强调理论与实践的结合,注重从"写代码"到"做工程"的思维转变,适合作为软件工程专业学生3-4年的学习路线图。学习过程中建议保持技术敏感度,同时培养工程思维,为成为一名优秀的软件工程师奠定基础。