软工第一次作业随笔

一 已具备的专业知识与能力

  • 能力 A:C/C++ 语言基础(课程级)** —— 能独立完成课堂作业与小型程序:指针、结构体、
    链表/栈/队列等基础数据结构,简单递归与排序。水平定位:能写能调,但工程习惯(内存管理、健壮性)还欠缺。
  • 能力 B:初步的工程实践能力(本课程第 1 次作业新获得)** —— 完成了一个完整的
    "Flask 后端 + HTML/JS 前端 + 调用 HuggingFace 文生图 API"项目,实际用到了:
    Markdown 写作、Git 基本操作、虚拟环境与依赖管理、HTTP 接口调试、日志设计、
    以及一次真实的"网络层→DNS→API 生态"排错经历。

感兴趣的技术方向

  • AI / 人工智能(重点):本次作业让我第一次亲手调用大模型生态的 API 生成图像,
    对"提示词工程→模型能力边界→产品集成"产生了强烈兴趣,希望后续能接触更多大模型应用开发。
  • Web / 应用开发:喜欢"做出能被使用的完整东西",希望提升前后端全栈能力。

关于huggingface-API的调用:

尚欠缺的能力(自省清单)

  1. 工程协作能力:未参加过多人协作项目,对 Git 分支工作流、代码评审、CI/CD 完全没有实战经验;
  2. 算法与数据结构深度:停留在课程要求,竞赛与复杂工程问题的算法设计能力不足;
  3. 测试意识:目前"能跑就行",没写过单元测试,也不了解测试设计方法;
  4. 英文技术文档阅读慢,独立查文档解决问题的能力刚起步(本次作业中深有体会);
  5. Python/JS 处于"边做边学"状态,语法与生态都不系统。

二、代码量现状与本学期目标

  • 截至目前代码量:约几千行(以课堂作业、实验为主;加上本次作业项目的
    后端+前端约 700 行,累计不超过 5000 行)。
  • 本学期希望达到:累计 1 万行左右**。
    依据:本课程各次作业(API 项目、个人主页、团队项目)+ 1~2 个持续迭代的个人小项目
    (如把本次文生图工具继续扩展:加参数调节、历史管理、部署上线)。
    2 万行不是目的,而是"持续动手"的副产品 —— 关键在每周都有代码产出,而不是期末突击。
    三、本课程最期待学习的知识与希望获得的收获

最期待学习的知识

  1. 需求分析与软件设计:现在只会"拿到题目就写代码",很想学会如何从模糊需求出发,
    产出清晰的设计(用例、架构、模块划分)再动手;
  2. 团队协作与工程流程:Git 多人协作、敏捷迭代、代码评审如何真实运作;
  3. 测试与质量保障:单元测试、如何让代码"可维护、敢重构"。

希望获得的收获

  1. 一次完整的团队项目经历(从 0 到交付),并在其中承担明确角色;
  2. 建立起"先设计后编码、先测试后交付"的工程习惯,而不是继续做"能跑就行"的代码;
  3. 通过本课程认识自己适合做什么方向,为三年规划提供依据。

四、AI 生成的软件工程课程学习指南(含合理性分析)

按作业要求:选择 AI 工具生成一份学习指南并原文复制,再分析其合理性与帮助。
以下指南由 AI 生成,未修改。

4.1 AI 生成的学习指南(原文)

【软件工程课程学习指南(AI 生成)】

总体思路:软件工程 ≠ 写代码,而是"用工程方法高质量地交付软件"。建议把精力按
需求(20%)→ 设计(20%)→ 实现(40%)→ 测试交付(20%) 分配。

阶段一:需求与文档(第 1~4 周)

  • 掌握 Markdown 与 Git/GitHub;每天提交代码,提交信息写清楚"做了什么、为什么";
  • 学会写需求文档:用户故事(作为…我希望…以便…)、用例图、验收标准;
  • 每次作业动手前先写 30 分钟"计划文档",再开始编码。

阶段二:设计(第 5~8 周)

  • 学习分层架构(表现层/业务层/数据层)与常用设计模式(观察者、策略、工厂等),
    不必背定义,要在自己项目里指出"哪里可以用、解决什么问题";
  • 画 UML 类图/时序图帮助思考;数据库先行设计,避免后期改表。

阶段三:实现与协作(第 9~12 周)

  • 若课程含团队项目:坚持小步提交、每日同步;用 Issue 管理任务,用 PR + 代码评审合入;
  • 给自己的代码写 README 与注释规范;尝试引入单元测试框架,为关键模块写测试;
  • 每周复盘一次:本周最浪费时间的问题是什么?下周如何避免?

阶段四:测试与交付(第 13~16 周)

  • 系统测试:正常流程、异常输入、边界值;整理测试报告;
  • 学习部署(如 GitHub Pages / 云服务器),让项目"可被访问";
  • 结课后做一次项目复盘文档:做得好的、做砸的、改进项,作为下个项目的地图。

每周时间建议:3~4 小时/周课程投入,作业周可加倍;先完成再完美,迭代优于一次到位。

4.2 我的合理性分析

合理、值得采纳的部分

  1. 阶段划分(需求→设计→实现→测试交付)与软件工程经典流程一致,也贴合课程作业的推进节奏;
  2. "动手前先写计划文档""每天提交、小步迭代"——直击我"拿到题就写代码"的坏习惯;
  3. 把 Git、Markdown、README、复盘这类"非代码能力"提到与编码同等重要的位置,
    与老师在作业中对写作、记录、协作的要求吻合;
  4. 强调测试与部署("让项目可被访问"),弥补了课堂易忽略的交付环节。

不合理或需要调整的部分

  1. 时间预算过于理想化:每周 3~4 小时对同时上多门课的学生偏乐观,且作业集中期与
    其他课程考试冲突时必然压缩;应改为"按作业节点安排冲刺,平时保持每周至少 1~2 小时编码";
  2. 对"本校课程"的针对性不足:指南是通用框架,未考虑本课程以博客作业、个人主页、
    API 实践等"小而真实"的任务为主的特点 —— 我会按作业要求微调每阶段重点;
  3. 实现与测试的时间占比对我偏高:指南建议 40% 时间在实现,但对我这种代码量
    几千行的初学者,瓶颈常在"设计与排错",需要留更多时间在调试与查文档上。

结论:这份指南总体合理,有实际帮助 —— 我会采纳其(阶段划分、计划先行、
小步提交、复盘收尾),并按"本人基础 + 本课程作业节奏"调整时间分配与阶段重点。


posted @ 2026-09-09 19:51  林富强  阅读(4)  评论(0)    收藏  举报