软件工程第一次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546
这个作业的目标 学习github与博客园的使用方法,明确个人特色与该课程的学习方向,踏入软件工程的大门
学号 102301515

团队主页:https://github.com/xuezong691/fzuteam_lakers

github个人主页:

QQ_1759671592040

博客园个人主页:

QQ_1759671719689

一、 技能树与技术偏好

经过几年的学习,我的技能树算是初具雏形,但枝桠尚且稀疏,需要更多阳光雨露的滋养。

(一) 目前已具备的专业能力

  • 扎实的编程基础与面向对象思想
  • 熟练掌握 C、C++ 核心语法与集合框架,对封装、继承、多态有较深刻的理解,并能运用它们构建小规模的应用程序。
  • 数据结构与算法的基本应用
  • 熟悉常见的数据结构(链表、栈、队列、二叉树、图)和基础算法(排序、查找、递归、动态规划初步)。能够在洛谷等平台上解决一些中等难度的题目。洛谷刷题量百+,能够分析算法的时间与空间复杂度。
  • 了解前端三件套 (HTML, CSS, JavaScript) 的基本用法。

(二) 我的技术偏好与兴趣方向

如果说已具备的能力是“术”,那么兴趣方向则更像是“道”,指引着我未来的学习路径。我希望对AI的原理和构建方法做更深入的了解,力求利用它设计一些新东西为生活各方面带来更多的便利。我从小到大便对游戏的设计情有独钟,希望以后能够独立开发一个新的游戏。

(三) 我清晰认知到的能力短板

  • 大型项目的工程化与实践经验: 我的代码大多停留在“课程设计”级别,缺乏对代码规范、设计模式、单元测试、持续集成等工程化实践的理解。当代码规模上去后,如何组织、测试和维护,是我的知识盲区。
  • 深入的底层原理与系统性知识: 我对很多技术的理解停留在“应用层”,许多背后的原理只是囫囵吞枣不知甚解。
  • 系统架构设计能力: 如何将一个复杂的业务需求,拆解成一个个松耦合、高内聚的模块和服务?这是我目前完全不具备的能力,也是我最渴望弥补的短板。

二、 代码量

  • 当前代码量: 粗略估计,从我学习编程至今,手写的代码(不含复制粘贴)大约在1万行。这包括了课程作业、课程设计和一些个人的小练习,曾经自己以“小黑窗”运行窗口为交互界面自制了一款简单的文字游戏,代码量上千行。
  • 本学期目标: 我希望通过这门课程,特别是课程中的项目实践,能将我的总代码量提升2万行以上。我更看重的是,这新增的代码是有组织的、高质量的、经过评审和测试的,而不仅仅是数量的堆砌。

三、 对本课程的期待与渴望

对于这门《软件工程》课程,我最期待的收获是:从“程序员”到“工程师”的思维转变。我希望这门课能像一个熔炉,将我过去零散的知识点熔铸成一套完整的工程化思维。学习如何在一个团队中,像一名真正的工程师那样,去分析需求、设计架构、编写可维护的代码、进行有效的测试和协作。我希望做一个“真实”的团队项目。我期待能和一个小组的同学,共同完成一个有一定复杂度的项目。在这个过程中,体验需求变更、代码冲突、工期压力,并学会使用 Git、Maven、Jira、Jenkins 等工具来解决这些问题。这比任何理论知识都来得宝贵。这些经验能为我以后制作一款新游戏的目标作铺垫。

四、 由deepseek生成的学习指南

1、学习路线图:三个阶段

阶段一:课前准备(基石阶段)

  • 版本控制 Git: 必须熟练掌握 clone, add, commit, push/pull, branch, merge 等核心命令。推荐学习 Pro Git 书籍。
  • IDE 与调试: 熟练使用你所用语言的主流 IDE (如 IntelliJ IDEA, VSCode等),并掌握其调试功能。这是定位和修复问题的利器。
  • 巩固核心语言: 确保你用于本课程的编程语言(如 Java/Python)基础扎实。
  • 预习课程大纲: 了解本学期的主要章节和评分规则,明确学习重点。

阶段二:课中实践(核心阶段)

  • 掌握核心概念: 软件生命周期、需求分析、设计模式、软件测试、敏捷开发等。不仅要记住定义,更要理解其背后的权衡(Trade-offs)。例如,为什么这个场景用这种设计模式更好?
  • 项目实践: 动手“怎么做”
  • 需求分析: 学会阅读和理解需求说明书,并勇于提问和澄清模糊点。尝试自己编写简单的需求文档。
  • 系统设计: 动手画图!UML(用例图、类图、时序图)是沟通设计的利器。在编码前,先思考模块如何划分、类如何设计。
  • 测试意识: 了解并尝试编写单元测试(如 JUnit)。建立“测试驱动开发”的意识。
  • 文档撰写: 学会编写清晰、简洁的文档(如设计文档、API文档、用户手册)。
  • 善用工具: 使用 GitHub/GitLab 进行代码托管和协作;可以考虑使用 Trello、Notion 或钉钉/飞书进行任务管理和日常沟通。

阶段三:课后复盘(升华阶段)

  • 反思与总结: 项目每个阶段结束后,进行复盘。哪些做得好?哪些可以改进?遇到了什么坑?如何避免下次再踩?
  • 构建知识体系: 将课程中学到的零散知识点,串联成你自己的软件工程知识网络。

2、 推荐工具链

  • 代码与协作: Git + GitHub/GitLab
  • 项目管理与沟通: Trello / Notion / 钉钉 / 飞书
  • 设计绘图: Draw.io (免费强大) / Visual Paradigm
  • 文档编写: Markdown (必备技能)

3、 给不同基础同学的特别建议

对于基础较弱的同学:不要害怕。紧跟课程项目,把每一步都做实。遇到问题,先自己搜索(Google/Stack Overflow),再向同学和老师求助。掌握好工具和流程,你就成功了一半。
对于基础较好的同学:请不要止步于完成功能。挑战自己,在项目中尝试应用设计模式,编写高质量的单元测试和文档,思考更好的架构设计。尝试在团队中扮演技术核心的角色,帮助队友共同成长。

优缺点分析

指南采用了“核心理念 -> 阶段化路线图 -> 工具推荐 -> 个性化建议”的递进结构,符合认知逻辑。将学习过程划分为“课前、课中、课后”三个阶段,为学生提供了一个明确的时间轴和行动指南。指南没有停留在空洞的理论说教,而是提供了大量具体的、可执行的建议。例如,明确指出了需要掌握的Git命令、画图工具、文档格式等。最后一部分“给不同基础同学的特别建议”是一个亮点。它意识到了学生群体的差异性,并提供了差异化的学习策略,体现了因材施教的理念,能更好地引导不同起点的学生。
缺点也很明显,指南更像是一个“目录”或“框架”,指出了需要学习的“是什么”,但对于“具体怎么学”的指导稍显薄弱。真实的软件工程项目充满了不确定性,指南整体基调偏向“成功学”,可以增加一部分内容,提醒学生“遇到无法解决的冲突是正常的”,并鼓励他们将解决这些问题的过程也视为学习的一部分。指南描述了学习活动,但没有给出更具体的里程碑,这会让学生缺乏学习的正面反馈,可能会导致学生的学习兴趣降低。
总而言之,这份指南清晰地勾勒出了学习《软件工程》的宏观路径和关键节点。它的主要优势在于结构性和导向性。我可以将它作为我项目实践的可用参考,并随经验的增加对这份指南进行补充,不断修正轨道。

五、博客园后台Markdown界面

QQ_1759675851065

posted @ 2025-10-05 22:49  渡乐  阅读(16)  评论(0)    收藏  举报