自我介绍

| 这个作业属于哪个课程 | Class56-Grade2024-CS |
| 这个作业要求在哪里 | 第一周作业 |
| 这个作业的目标 | 建立自己的技术博客和 GitHub 主页,认真审视自己的现状与未来规划,学会提出有质量的问题 |


1. 介绍自己,建博客

我叫赵佳鑫,广东工业大学计算机学院计科5班,学号 3124004073。

我的博客叫 Purρ1e,GitHub 是 gitgdut

我的闪光点:Web3 开发

如果要说一项超过周围大多数同学的本事,我想是 Web3 开发

我从零开始自学区块链开发,现在已经能够:

  • Solidity(Foundry 框架)独立编写和部署智能合约,包括用到 Chainlink VRF 的抽奖合约;
  • Go(go-ethereum)写后端服务和链上交互,独立完成「合约 + Agent 服务」的完整链路;
  • 参加过 AgentCFO 黑客松(Cobo 赛道),也在 Monad Playground 上做过合约项目。

这些是怎么来的?没有捷径,就是靠课余时间一点点啃出来的:

  • 系统读文档、学 ERC-4337 / 7702 / 8004 这些标准,一个概念不懂就反复查;
  • 把合约部署到测试网,出了 bug 就对着交易回执一行行调试;
  • 用 Go 写 CLI 工具练手,遇到 go-ethereum 的坑就翻官方文档和源码。

前后大概花了大半年的课余时间。回头看,最大的收获不是写了多少代码,而是养成了「遇到问题自己查文档、自己调试」的习惯。

除了写代码,我课余也喜欢打 Minecraft、打球、踢球——这些爱好让我在长时间写代码之后能真正放松下来,再满血回来。

image


2. 现状、经验和计划

(1) 我为什么选这个专业,以及我的差距

我选择计算机专业,是因为从小对计算机和网络好奇,高中接触编程后确定了方向,同时很看好 Web3、AI 这些技术浪潮——我希望自己不只是「使用」技术,而是能亲手「创造」技术产品。

对照技能调查表,我离一名合格的 IT 毕业生还有明显差距,主要是在软件工程的方法论(需求、设计、测试、流程)上积累不足——我过去更多是「直接写代码」,缺乏系统的工程化训练。

我从中抽取了 7 项对自己特别重要的技能,记录如下:

技能 目前水平(0-9) 课程结束后目标 提高手段
编程语言能力(Go/Python/C++/Solidity) 7 7 持续做项目
面向对象分析与设计 4 6 见下方 1-6
软件工程过程(需求→设计→实现→测试) 2 6 见下方
版本控制 Git/GitHub 5 7 见下方
单元测试与质量保证 3 6 见下方
团队协作与结对编程 3 6 见下方
英语(技术文档阅读) 3 5 见下方

我计划通过以下手段提高水平(至少 5 项):

  1. 认真完成本课程每个实验和作业,把软件工程流程真正走一遍;
  2. 在 GitHub 持续维护个人项目,坚持 commit,让版本控制成为习惯;
  3. 阅读《构建之法》和英文技术文档,同步提升理论功底和英语;
  4. 参加黑客松,在真实团队项目里锻炼协作和交付能力;
  5. 结对编程,遇到难题主动向同学和老师请教;
  6. 坚持写博客总结,用输出倒逼输入、巩固理解。

(2) 阅读心得

a) 为何要来上课并认真参与

认真参与课堂,本质是给自己一个「用最小成本换取最大回报」的机会。老师的讲解和课程结构,能帮我避开自己瞎摸索的弯路;课堂的约束和节奏,也能治我的拖延。既然每周都固定花时间了,那不如认真投入,把时间价值最大化。

b) 我期待的师生关系,以及遇到困难我会怎么做

我期待这门课是「教练与学员」的关系——老师给方法、给反馈,我负责练习和提问。如果作业对我来说有些困难,我会选 C:向老师和同学请教,花更多时间,把作业全部完成。跟着老师的节奏走,一步步把不会的补上。

c) 引用和抄袭的区别

引用是在别人工作的基础上明确标注出处、站在前人肩膀上继续向前,是学术和工程的正常行为;抄袭则是把别人的成果当作自己的、不注明来源,是欺骗。我理解的核心区别在于:是否诚实标注来源、是否加入了自己的思考和贡献。这门课我会严格遵守「参考必注明、提交必原创」的底线,也了解学校对抄袭有严肃的处理规定。

(3) 我几年后的选择和规划

对照前人的经历,我的选择是:做 Web3 方向的开发,找一份可以远程办公的工作,实现「全球旅居」的生活方式,为此多参加黑客松、坚持学英语。

在这个选择下:

  • 我的优势:动手能力强,已经能独立完成「合约 + 后端 Agent」的完整开发,有真实项目(AgentCFO 黑客松、Monad Playground 合约)和 GitHub 记录;对 Web3 生态有持续的热情和积累。
  • 我的劣势:英语还不够好(远程办公、读英文资料、和全球团队协作都需要);计算机基础(算法、网络、软件工程理论)还不够扎实;Web3 生态变化快,需要持续学习才能不被甩下。

针对这个选择,我本学期的规划是:跟着老师的课程节奏走,把软件工程基础补齐,同时保持 Web3 项目的持续投入,每周固定学英语。

(4) 我在这门课的计划

我目前的代码量约:

  • Go:约10000 行(go-ethereum 后端、CLI 工具)
  • Solidity:约 3000 行(智能合约)
  • C++:约 1500 行(课程设计)
  • Python:约 500 行(脚本)
  • 合计约 12000 行

为了有资格入职一流的软件/互联网/AI 公司,业界普遍认为需要 数万到十万行 的有效代码量;从事高校教学科研则更看重理解的深度,代码量也以数万行为常见积累。我离这个目标还有距离,需要持续积累。

我计划平均每周拿出 4 小时 用在这门课上(含上课时间)。既然前两年我在很多地方走了弯路,现在要奋起直追,我会选 D:比以前课要多很多,直到达到目标为止。

我计划在本课程结束时完成约 20000 行 代码量,即每周新增约 600 行(16 周 ≈ 9600 行,加上现有约 12000 行)。

用 WOOP 方法做计划:

  • Wish(愿望):这门课结束后,掌握软件工程的基本流程和方法论,并能把它用在 Web3 项目上,让我的项目从「能跑」变成「设计清晰、可维护、有测试」。
  • Outcome(结果):最好的结果是——我能独立走完「需求分析 → 设计 → 实现 → 测试 → 发布」的完整流程,交付一个有质量的软件产品,把它写进简历,帮我更接近远程 Web3 开发岗位。
  • Obstacles(障碍):内部障碍是自制力——每周只有 4 小时,还容易被 Minecraft、球类娱乐和手头的 Web3 项目分心;外部障碍是课程基础薄弱,算法和工程理论之前欠账。
  • 最可能的失败因素:时间投入不足 + 自律不够。因为每周 4 小时本身就不宽裕,一旦被娱乐和其他项目挤占,课程就会落下。我会固定每周的课程学习时段,把课程任务排在娱乐和其他项目之前。
  • Plan(if-then 风险防范)
    • 如果我在写作业时想打开 Minecraft,那么我就立刻离开电脑,去外面走一圈再回来继续;
    • 如果 Web3 项目挤占了课程时间,那么我把课程任务排到每周固定时段优先完成;
    • 如果代码卡住想放弃,那么我先拆小问题、查资料,或者去问同学和老师,而不是直接搁置。

3. 提有质量的问题,给认真的反馈

认真反馈

既然是「健身/教练」的关系,我会选 C:有问题就问,至少一学期提三个问题,认真按时填写反馈——这样老师才知道我卡在哪、怎么帮我。

《构建之法》读书 5 个问题

1.(第 4 章 两人合作)书中强调结对编程能显著提高代码质量和知识共享。但以我的实践,两个新手结对时常常变成「一个写、一个看」,甚至互相等待,效率反而不如各自独立再 review。我的困惑是:结对编程是否对参与者的水平有隐性门槛?新手阶段应该怎么结对才真正有效?

2.(第 1 章 概论 / 第 3 章 软件工程师的成长)书中强调软件工程是「工程化」的,要把流程和规范摆在个人英雄主义之上。但我在黑客松和独立项目里的经验是,「直接写代码」往往更快出结果。什么时候该走完整流程,什么时候可以「先跑起来再说」?这个度的把握让我很困惑。

3.(第 8 章 需求分析)书中强调前期要把需求分析充分、明确,再动手实现。但现实里需求总是在变(尤其 Web3 产品,市场一周一个样)。敏捷流程又强调「拥抱变化」。那么「前期充分分析」和「敏捷拥抱变化」到底怎么平衡?

4.(第 13 章 软件测试)书中非常强调测试,甚至有 TDD。但对我这种个人小项目,写测试的边际成本很高,一个 demo 可能还没验证价值就已经要重构了。我的困惑是:对于快速迭代的个人/黑客松项目,测试的投入产出比怎么把握,才不会「为测试而测试」?

5.(第 16 章 IT 行业的创新)书中认为真正的创新多为「渐进式」而非「颠覆式」。但 Web3、AI 领域每隔几个月就冒出一堆自称「颠覆式」的项目。我想问:在一个被叙事和 hype 驱动的领域里,如何区分真正的创新和炒作?书中关于创新的判断标准,对 Web3 这类新兴领域还成立吗?


4. 前车之鉴

我从参考博客列表里选了 3 篇,谈谈感想:

D.(偏科生自学摸索的道路) https://www.cnblogs.com/xiaozhi_5638/p/4485805.html

这篇讲实习经验对应届生的重要性。我很有共鸣:我自己也是靠「做项目 + 黑客松」来积累实战经验的,而不是只靠课堂。作者的经历印证了我的判断——真实项目经历和作品集,比成绩单更能说明能力。但我也提醒自己:偏科自学的短板是基础不牢,所以这门课正好帮我补软件工程和计算机基础,不能因为会写合约就轻视课堂。

E.(速成培训班 vs 大学基础学科) https://www.cnblogs.com/geniusalex/p/4928713.html

这篇讨论培训班和大学教育、基础学科的区别。我认同作者的立场:大学的价值恰恰在于那些「看起来不直接产生代码」的基础学科。做 Web3 的时候我越来越深地体会到,很多问题本质是计算机基础问题——密码学、网络协议、数据结构、操作系统。培训班能让我快速上手某个框架,但只有打好基础,才能在技术浪潮过去后依然站得住。

G.(半路出家,对自己狠心,在实践中进步) https://news.cnblogs.com/n/531362/

这篇讲的是半路出家的人如何通过「对自己狠心 + 不断实践」进步。我很佩服这种韧劲,也认同「实践出真知」。但结合我自己的经历,我想补充一点:光「狠」是不够的,还要可持续——我自己就曾因为同时推进多个项目而差点 burn out。正确的方式应该是「对自己有要求,但不透支」,用习惯和节奏(比如 WOOP 计划)来代替一时的热血。


附:我的 GitHub

我在 GitHub 新建了与 ID 一致的仓库:gitgdut/gitgdut,并在根目录 README 写下了自我介绍。

posted @ 2026-09-06 22:50  Purρ1e  阅读(7)  评论(0)    收藏  举报