第一周作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class56-Grade2024-CS/
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class56-Grade2024-CS/homework/15692
这个作业的目标 练习写第一篇博文,介绍自己的现状与未来规划

博客园账号

https://home.cnblogs.com/u/yukiblogs
编辑博文截图:
image

GitHub账号

仓库链接:https://github.com/Yuki2024-h/Yuki2024-h
image

1.介绍自己

我叫陈婉怡,来自广东工业大学计算机学院。
对于博客园的印象,是之前在搜索问题时会显示博客园上的回答,里面的回答都对我很有启发,与其它社区的风格迥异。但没想到会因为课程的原因,我也会成为写博文的一员(^^).其实,我没有特别特别喜欢的爱好,阅读算一个。高中的时候特别痴迷余华和刘慈欣的作品。余华三部曲及其它系列丛书都阅读过,对当时的我产生极度的震撼。刘慈欣的《三体》系列与其它科幻小说都有说涉猎,读完《三体》之后,整个世界观宇宙观都被刷新了。此外,我还喜欢打羽毛球、爬山、发呆......

2.现状、经验和计划

1.选择计算机专业的原因
上大学之前,我认为计算机专业是一个能很好锻炼自己思维的专业,我对用代码实现逻辑的方式很感兴趣。

大一下,我开始接触机器学习及深度学习,大二上学期,我接触计算机视觉(主要是YOLO)和Transformer的原理。还记得那时学习YOLO(虽然学的是初版的原理,v8在此有很大改进),我被其原理深深折服了。自己也尝试对图片打标来用YOLO v8来训练。对于Transformer,你要是现在问我原理,我早已忘记,讲不出所以然来,但当时也也给我较大的震撼。(原来算法是可以这样应用的)。大二下时,我将方向渐渐转入agent的应用开发,同时参与了causalagent的功能开发,在实践中不断打磨颗粒度,从一个想法开始,与队友沟通需求。工作流怎么安排,错误怎么兜底等。也在项目中倒逼自己学数据库,FastAPI,RAG等(只懂基础操作,进阶我就不会了),docker部署和git的协作也得到练习。果然,还是得做中学。

但现在离成为一名合格的IT专业毕业生还有很长的路要走。我深知自己的专业技能原不够扎实。以下是我的技能调查表

核心技能项 目前水平 (0‑9) 课程结束目标 (0‑9) 计划提升手段
数据结构与算法基础 4 7 每周刷 LeetCode 中等难度题目,重点练习数组、树、动态规划; 阅读《编程之美》,积累工程场景下算法案例;
单元测试与测试驱动开发 3 7 学习主流单元测试框架 JUnit/pytest; 写业务代码前先写单元测试用例; 使用覆盖率工具,模块行覆盖率争取 70% 以上; 学习 Mock 工具隔离外部依赖; 练习边界值、等价类划分设计测试用例。
Git 版本控制与团队协作 5 8 熟练使用 rebase、cherry‑pick、冲突解决;团队作业全部使用 Pull Request+CodeReview 交付; 遵循 Angular 规范写 commit message; 尝试向开源仓库提交 Issue 或者 PR。
需求分析与软件架构设计 2 7 编码前完成流程图、架构图,不直接上手写代码;
代码重构与代码质量 3 8 使用静态检查工具 CheckStyle/SonarLint; 在团队中严格执行 Code Review;
工程复现性与项目构建部署 4 7 完善项目 README,写清环境依赖、启动步骤; 了解 CI 基础流程,配置自动化构建脚本;

2.我为什么要来上课

停下来,回头看这篇博文中,博主针对 “大学生上课必须认真听讲” 这一观点提出了辩证思考。他认可认真专注是一种重要能力,但也反对绝对化:一堂好课本身就会吸引学生投入;对于质量差、照本宣科的课程,能够不受干扰、自主学习,同样是珍贵的专注力能力。
最令我印象深刻的,是博主的经历,博主曾经进入实验室,后来主动退出,发现自己并不适合科研,对深度学习没有强烈兴趣。之后转向后端、底层、GPU 方向。他提出一个很重要的观点:大学阶段实习、进实验室最重要的不是产出成果,而是低成本试错,找到自己真正喜欢、适合的赛道。

3.我希望这门课是什么师生关系
邹欣老师在文章里分析了现实中的多种师生关系类型:保姆‑幼儿、餐馆‑食客、老板‑雇员、哥们、路人、狱警‑犯人,指出每一种模式都存在明显弊端,最后提出健身教练与学员是软件工程课程理想的师生关系。读完文章,我非常认同这个模型,结合软件工程课程 “做中学” 的特点,我所希望的师生关系可以分为老师角色、学生角色、双方互动原则三部分。学生是主动的受训学员,需要双向反馈,坦诚沟通。

4.未来规划
目前我的规划是本科毕业后找工作,这意味着需要找到1-2份实习。

5.这门课的计划
我希望可以跳出 “只写代码” 的思维,建立完整工程思维;并且掌握团队协作的整套流程。学会使用一套工程工具链。

6.目前代码量

编程语言 当前累计代码量
Python 3000 行
C语言 1500 行
HTML / CSS / JavaScript 500 行
SQL 及其他 300 行

如果要进一流互联网 / AI 公司入职(本科应届生),代码量应为30000‑50000 行,包含课程项目、个人项目、开源练习、实习项目;但现在AI的发展迅速,如何权衡项目中AI参与代码的工作量,也是需要思考的。

7.打算平均每周拿出多少个小时用在这门课上(含项目)

项目 时长
课堂上课时间 2 小时 / 周
课后作业、博客阅读复盘 1 小时 / 周
项目开发(个人 / 结对 / 团队项目,编码、测试、文档、代码评审) 7 小时 / 周
每周合计 10 小时 / 周

3.WOOP 软件工程课程计划(含代码量规划)

当前已有有效代码量:6000 行
课程周期:16 周

  1. Wish

在软件工程课程结束时,我的总有效代码量达到 22000 行;完成个人项目、结对项目、团队 Alpha/Beta 版本;熟练掌握 Git 团队协作、单元测试、需求分析;补齐工程思维短板,能够产出带测试、文档、可维护的项目代码,具备一流互联网公司应届生所需要的基础工程实践能力。

  1. Outcome
    课程结束之后,我手上拥有 2 个完整可运行的工程项目,配套完整博客复盘、测试用例、设计文档,全部托管在 GitHub。
    我的代码不再只是 “能跑就行”,会主动考虑可读性、可维护性,写代码前会做需求分析与方案设计,而不是上来直接敲代码。面对团队开发,懂得代码评审、任务拆解、迭代开发。

  2. Obstacles
    外部障碍

  • 其他课程作业、考试挤占时间,临近多课截止日期时,软件工程项目容易被推后;
  • 团队项目中队友进度不一致,部分任务依赖他人输出,造成自己编码进度被卡住;
  • 项目遇到难调试 bug,长时间卡死,消耗大量时间,打击积极性.
    内部障碍
  • 拖延与任务堆积.
  • 遇到复杂模块产生畏难情绪,不想动手写,只想复制 AI 生成代码,缺少自己调试重构,产出无效代码;
  • 时间分配失衡:只热衷于写业务代码,忽略博客复盘、单元测试、文档编写,工程能力得不到完整训练。
  1. plans
  • 如果其他课程作业扎堆,本周时间紧张:不直接放弃,本周至少完成保底 400 行有效代码
  • 如果遇到 bug 长时间调试没有进展,心态烦躁: 暂停盲目的调试,把问题拆解,写简单复现用例
  • 如果团队项目队友进度滞后:提前在团队会议明确任务截止时间,用 GitHub Issue 标记阻塞问题
  • 如果发现自己直接复制大段 AI 代码,没有理解逻辑:强制要求自己,对代码做修改重构,补充注释和单元测试,无法讲清楚逻辑的代码不能提交到仓库。

4.快速有选择阅读《构建之法》,提有以下的问题

问题一:AI 时代还适合 “相态分离” 创新团队模式吗?

书中观点:借鉴 Loonshot 的理念,企业想要实现颠覆性创新,要做相态分离:把做颠覆创新的 “艺术家” 团队和负责日常业务交付的 “士兵” 团队物理、管理上分开,保护创新团队不受现有业务 KPI 压榨,给创新宽松环境。

我的疑问与观点:
这个模式对于传统软件行业有道理。但是进入 AI‑Native 时代,技术迭代周期从几个月 缩短到几周 。很多 AI 产品,研究、工程、产品边界模糊。像 OpenAI、Anthropic 这类团队,并不是把创新研究团队和工程交付团队完全隔离开,而是研究人员、工程师紧密耦合,快速迭代验证想法。

  1. 如果把 AI 创新团队完全隔离,很容易出现:研究出来的模型,工程团队接不住,脱离真实业务场景;
  2. AI 创新需要大量真实用户反馈,隔离的创新团队很难拿到一线业务反馈。

问题二:第 2 章 2.1 单元测试,单元测试一定必须由代码原作者来写吗

书中原文观点:单元测试必须由最熟悉代码的人,也就是程序的作者来写,作者最清楚代码意图、实现局限,没有比作者更适合写单元测试的人。

我的疑问与观点:
我认同作者写单元测试有天然优势,在大型工业软件团队中,开发与测试岗位是分开的,有独立 QA 测试工程师。

  1. 开发者写代码时,会自带思维定势,容易只按照自己设想的正常流程设计用例.自己写单元测试容易陷入 “证明我的代码是对的”,而测试的目标恰恰是 “证明代码会出错”。
  2. 这并不代表开发者可以完全不写单元测试。开发者最清楚接口、输入输出约束,适合写正向逻辑、边界条件的单元测试;而独立测试人员可以从外部视角,补充异常、非法输入、错误路径的测试用例,两者可以互补。

5. 前车之鉴

感想一:徐宥《掉进读书的兔子洞》—— 关于 “思维快照” 的习惯

文章链接:https://book.douban.com/subject/4006425/discussion/22802960/

徐宥在文章里提到自己从高中就保留一个习惯:把每天胡思乱想的东西记在笔记本上,当作思维快照,时常翻回去自省,对比过去和现在自己的想法变化
以前我总觉得,学习只需要记录知识点、错题,那些碎片化的胡思乱想、迷茫、纠结不值得写下来。读完这一段我才意识到,记录 “思维快照” 不是记流水账,而是记录自己的认知变化。大三的徐宥疯狂扫荡计算机类书籍,但很多阅读是囫囵吞枣,靠着笔记给自己建立 “知识索引”,后续需要的时候可以顺着笔记回头深挖,而不是全部重新看书。
放到我软件工程课程的学习中,这个习惯非常有现实意义。在做项目的时候,我会产生大量碎片化疑问,如果不记录,几周之后就完全遗忘自己当初为什么困惑。写博客、记学习笔记,本质就是做 “思维快照”。
我计划后续每次完成博客作业,不仅记录答案,还要写下自己当时真实的困惑、矛盾的想法。隔一段时间回头翻看,观察自己认知有没有迭代。

感想二:《一直在路上 —— 记我从初中到本科近十年的学习成长历程》

文章链接:https://www.cnblogs.com/xiaozhi_5638/p/4485805.html

这篇文章讲一名偏科学生的自学经历,同时探讨一个核心问题:实习经验对于应届生到底重不重要。

作者本身属于偏科,依靠强烈的求知欲自学计算机。他的观点让我辩证看待实习这件事:实习是加分项,但不是万能通行证。

  1. 如果基础薄弱,仅仅为了简历好看去找一份打杂实习,没有真正接触项目逻辑,这份实习的含金量很低;。
  2. 实习最大价值不只是写在简历上的一行文字,而是提前感受工业界真实开发流程:版本管理、团队协作、需求迭代、沟通方式,提前试错,确认自己到底喜不喜欢开发岗位。
  3. 如果暂时没有拿到实习机会,打磨课程项目、个人开源项目、补齐计算机底层基础,同样可以作为求职的筹码。

结合我目前的状态,我还没有实习经历。软件工程这门课的个人、结对、团队项目,就是我现阶段最重要的 “准实习训练”。我不能只满足于代码跑通,要完整走完需求分析、设计、编码、测试、复盘整套流程,把课程项目打磨成拿得出手的作品集。等到未来有机会实习的时候,我也要优先看能不能接触真实业务,而不是单纯追求 “有一份实习经历”。

posted @ 2026-09-06 14:30  Wanyi-Chen  阅读(9)  评论(0)    收藏  举报