软件工程第一周作业
| 这个作业属于哪个课程 | [https://edu.cnblogs.com/campus/gdgy/Class78-Grade2024-CS/] |
|---|---|
| 这个作业要求在哪里 | [https://edu.cnblogs.com/campus/gdgy/Class78-Grade2024-CS/homework/15710] |
| 这个作业的目标 | 完成第一周个人介绍、技能评估、阅读心得、未来规划、提问与前车之鉴 |
1. 介绍自己,建博客
大家好,我是曲浩宾,来自广东工业大学计算机科学与技术专业,目前大三。虽然我是一名“科班”学生,但说实话,前两年的学习更多是在应付考试,真正掌握的技能并不多。不过,我有一个自己很自豪的闪光点:我非常热爱运动,尤其是长跑和篮球。从大一开始,我坚持每天跑步 3 公里,周末打一场篮球赛,风雨无阻。三年下来,我的体能和耐力远超同龄人,更重要的是,我学会了坚持和自律——每次跑到极限时告诉自己“再坚持一公里”,这种精神也被我带到了学习中。为了提升篮球技术,我每周会花 2 小时看战术视频、练习投篮,持续了一年半,终于在校级比赛中拿到了团体第三名。这段经历让我明白:任何领域的突破都需要持续的刻意练习和永不放弃的决心,编程也是如此。
写博客对我来说是一个全新的挑战,但我愿意花时间去练习,因为我知道输出是最好的输入。我会遵守博客园的格式要求,认真对待每一次作业。
2. 现状、经验和计划
(1)专业技能评估
我选择计算机专业是因为高考分数刚好够,谈不上热爱,但接触后逐渐产生了兴趣。离合格的 IT 毕业生,我感觉自己在动手能力、项目经验、算法思维上差距较大。
从技能调查表中,我选出以下 7 项对我最重要的技能,并进行了自我评估:
| 技能 | 目前水平 (0-9) | 期望水平 (0-9) | 提升手段 |
|---|---|---|---|
| 编程语言(Java/Python) | 4 | 7 | 每天刷 LeetCode,完成一个小项目 |
| 数据结构与算法 | 3 | 6 | 系统学习《算法导论》前三章,每周参加 Codeforces |
| 版本控制(Git) | 2 | 5 | 每天用 Git 提交代码,学习分支策略 |
| 调试与排错能力 | 3 | 6 | 遇到 bug 先自己定位,再查资料,记录错误日志 |
| 团队协作 | 4 | 7 | 积极参与课程小组项目,学习 Scrum 流程 |
| 自主学习能力 | 5 | 8 | 每周阅读一篇技术博客,并写总结 |
| 文档编写能力 | 3 | 6 | 练习写 README、API 文档, |
至少 5 项提升手段:
- 每天刷一道 LeetCode 中等题,并记录解题思路。
- 每周阅读一篇优秀开源项目的源码片段(如 Vue 的响应式原理)。
- 每月完成一个小型项目(如个人博客、天气查询 App)。
- 在 Stack Overflow 上尝试回答问题,锻炼表达能力。
- 主动寻找队友,进行结对编程和 Code Review。
(2)阅读心得
a) 为何要来上课并且认真参与
读了 Scalers 的这篇文章,我深受触动,主要有以下几点感悟:
第一,认真听讲是一种需要训练的能力。 文章说“能力就像肌肉一样需要训练”,这句话点醒了我。过去我总觉得上课走神是因为课程无聊,但其实是我自己没有养成专注的习惯。大学四年有上百次课的机会来训练这种能力,如果我每次都放任自己走神,毕业后可能连一篇长文章都读不下去。这个后果让我警醒。
第二,不能因为老师讲得“水”就不听。 我以前也经常抱怨老师水平不行,然后心安理得地玩手机。但文章说得很犀利:“你大学里认为老师是水货,走上社会后你就会认为领导没水平,而更真实的版本是,你没有水平。” 这句话让我脸红。其实老师站在讲台上,一定有值得我学习的地方,哪怕只是他的思维方式或经验。我应该做的是努力从中提取有价值的内容,而不是用“课太烂”来为自己的懒惰找借口。
第三,跟上老师的思路是最快的进步方式。 文章提到,大学是“手把手教的最后机会”,老师会带着我们把知识推演一遍。如果我自己看书,可能需要花好几倍的时间还不一定能理解透彻。所以认真听课其实是最省力的学习方法。
我的决定: 从这门课开始,我要求自己每节课坐在前排、放下手机、紧跟老师思路。如果走神了,就立刻把自己拉回来。我要把“认真听讲”变成一种习惯,而不是一种选择。
b) 师生关系与作业困难时的选择
在大学里,我体验到的师生关系大多是“讲授者与听众”,缺乏互动。我希望这门课能成为“教练与学员”的关系——老师给出方向和挑战,我们主动训练,遇到困难时积极寻求帮助。
如果作业有困难,我会选择 C:向老师和同学请教,花更多时间,把作业全部完成。 因为逃避解决不了问题,只有迎难而上才能真正进步。
c) 引用与抄袭的区别
引用是指在尊重原作者的前提下,标明出处并使用其成果;而抄袭是将别人的成果据为己有,不注明来源。我仔细阅读了学校关于学术不端的处理规定,承诺在本课程中所有引用的代码、文字都会添加引用标记,绝不抄袭。
(3)未来规划
毕业后,我希望能成为一名后端开发工程师。阅读了前辈们的经历后,我坚定了这个方向。
优势:我动手能力较强,喜欢捣鼓实际项目,对业务逻辑比较敏感。
劣势:算法基础薄弱,缺乏大型系统的设计经验。
本学期规划:
- 系统复习数据结构与算法,争取在 LeetCode 上完成 100 道题。
- 用 Java Spring Boot 完成一个完整的 Web 项目(如论坛系统),并部署上线。
- 每周阅读一篇高质量的技术博客,拓宽视野。
(4)课程计划
我目前的代码量大约是:C 语言 3000 行,Python 2000 行,Java 1000 行,总计约 6000 行。据我了解,要进入一流互联网公司,至少需要 3-5 万行的代码积累;高校教学科研则更看重论文和理论功底。
我打算每周拿出 15 小时 用于这门课(包括上课时间)。我选择 D:比以前课要多很多,直到达到目标为止。
代码量目标:本课程结束时,新增代码量达到 8000 行,平均每周完成 500 行。
WOOP 方法应用:
- Wish:在课程结束时,能独立开发一个功能完整、代码规范的 Web 应用,并能清晰地讲解其架构。
- Outcome:我可以在简历上自信地写上这个项目,在面试中流利地回答相关问题,获得心仪的实习 offer。
- Obstacles:最大的障碍是“拖延症”——我经常在写代码前先刷半小时短视频,导致效率低下。
- Plan:如果我坐在电脑前想刷手机,那么我立刻站起来,离开座位,喝杯水,然后设置 25 分钟的番茄钟,强制自己开始写代码。
3. 提有质量的问题
以下是我快速阅读《构建之法》后提出的 5 个问题:
问题 1:关于敏捷开发的适用范围
章节:第 3 章“敏捷流程”
原文中提到“敏捷开发能应对需求变化”。我理解敏捷的优点,但在我参与过的课程项目中,需求几乎不变,团队却因为频繁开会而浪费时间。我想问:在需求稳定的小型项目中,是否仍然推荐使用敏捷?还是瀑布模型更合适?
问题 2:关于代码复审的必要性
章节:第 4 章“代码复审”
书中强调代码复审能发现大量缺陷。但在实际中,很多同学不愿意花时间看别人的代码,或者只是走形式。我想问:在时间紧张的情况下,如何保证代码复审的质量?有没有最低限度的复审清单?
问题 3:关于单元测试的覆盖率
章节:第 5 章“单元测试”
书中提到“测试覆盖率越高越好”。但我在网上看到一些观点认为 80% 的覆盖率已经足够,追求 100% 会导致边际效益递减。我想问:在实际工业界,通常要求多少覆盖率?如何权衡测试成本与收益?
问题 4:关于“过早优化”
章节:第 7 章“软件性能”
书中警告“过早优化是万恶之源”。但我在做算法题时,经常一开始就想最优解,导致迟迟不动手。我想问:如何区分“合理的架构设计”和“过早优化”?有没有一个判断标准?
问题 5:关于用户需求的真实性
章节:第 10 章“用户调研”
书中介绍了多种调研方法。但我观察到很多产品经理会根据自己的直觉来决定功能。我想问:在资源有限的情况下,如何快速验证一个用户需求是真需求还是伪需求?有哪些低成本的方法?
4. 前车之鉴
我阅读了以下两篇文章,感受颇深:
第一篇:《你是否也觉得自己是科班,但没学懂计算机?》
我阅读了刘帅的这篇文章,内心久久不能平静。因为他的经历和我现在的状态太像了——同样是科班出身,同样迷迷糊糊地度过了大半本科时光,同样在迷茫中挣扎。
1. 关于“我是科班,却没学懂计算机”
这句话简直是我的写照。刘帅说他是传统意义上的计算机科班出身,学过数据结构、编译原理、操作系统……但并没有学懂计算机。我也是这样。每次上课,老师讲什么我就记什么,作业按固定套路完成,考试前突击背诵,考完就忘。我从来没有真正思考过这些知识之间的联系,也从来没有主动去动手实践。刘帅说“本科阶段是我们精力最充沛、时间最富裕、最易跟其他人拉开距离的阶段”,而我却把这些时间浪费在了机械地应付考试上。读到这段话,我感到一阵羞愧,也庆幸自己现在看到了这篇文章,还有机会改变。
2. 关于“震撼:在清华听朱仲涛老师的课”
刘帅描述朱仲涛老师上课时当场写程序、从零实现算法的场景,让我非常向往。他说朱老师能用1.5小时完整实现一个复杂的凸包算法,写完直接运行成功,全班鼓掌两分钟。相比之下,我的数据结构课更像是数学课,老师只讲概念和理论,几乎不写代码。刘帅说:“凡是自己不理解的东西,其实有很多人是理解的。”这句话点醒了我——问题不在课程本身,而在于我是否主动去寻找更深的理解。我决定不再抱怨老师讲得浅,而是自己去寻找优质的学习资源,像朱老师那样从代码层面去理解每一个算法。
3. 关于“面试完美时空的不完美经历”
刘帅面试完美时空时,被问到游戏升级算法、种族平衡性设计、Lucene索引实现、自动化测试框架等问题,几乎每个问题都答不上来。他说:“知其然不知其所以然,这是我一贯的问题。”这句话让我后背发凉。我也经常这样——会用某个框架,但从不去了解底层原理;能跑通代码,但从不去思考为什么这样写。刘帅的经历告诉我,真正好的公司不会满足于表面的技能,他们要的是深入思考的能力和对技术的真正热爱。如果我一直停留在“会用就行”的层面,将来面试时也会像他一样被问倒。
4. 我的收获与行动
刘帅在文章结尾给了三条建议,我印象最深的是第三条:“加强实践与执行力。不要欠生活,不要欠工作。出来混,总是要还的。”我不会的知识、懒得想通的东西,将来一定会在某个关键时刻让我付出代价。我不想等到毕业找工作时才后悔自己当初没有深入学习。
我决定从现在开始做到三点:
- 每学一个新知识点,都要亲手写代码实现一遍,而不是只看书或课件。
- 遇到不懂的问题,主动去查资料、问老师、和同学讨论,而不是放过它。
- 定期复盘自己的学习状态,问问自己:我真的理解了吗?我能给别人讲清楚吗?
刘帅说:“人与人之间的差距很大,原因在于自我控制力有差距。”我希望自己能成为那个控制住自己的人。
**第四篇:[《一直在路上——记我从初中到本科近十年的学习成长历程》]
( https://www.cnblogs.com/xiaozhi_5638/p/4485805.html )
这篇文章让我看到了一个和自己很像的身影——同样来自普通家庭,同样在初高中阶段迷茫过,同样在大学里慢慢摸索出适合自己的学习方法。作者的经历给了我很多启发,我挑几个感触最深的地方来说。
1. 关于“偏科”与“找到方向”
作者说自己初高中严重偏科,英语能考140分,化学经常满分,但语文总是在90分左右徘徊。他说了一句让我印象深刻的话:“那时候我对这两门课有强烈的求知欲望。” 这句话点醒了我——偏科的本质不是能力问题,而是兴趣问题。作者因为喜欢英语和化学,所以愿意主动花时间,自然就学得好。反观我自己,我总说自己“学不好某些课”,但其实我从来没有真正对它们产生过好奇,只是在被动地完成任务。作者的经历告诉我,与其抱怨自己学不好,不如先问问自己:我真的对它产生过兴趣吗?如果没有,我能不能主动去找一个让我感兴趣的角度?
2. 关于“注重实践”
作者在大一下学期读到《程序员》杂志上的一篇文章,强调“注重实践”四个字。他说:“虽然这四个字说明的意思在我现在看来,已经是理所当然的了,但是在当时,我们班几乎没有人意识到学习编程时,理论与实践相结合有多重要。” 这句话让我很有共鸣。我现在也是这样——上课听懂了,看书看懂了,就以为自己会了。但一让我自己动手写代码,就卡住了。作者的做法是:一有空就去机房,把课本上的例子一个个上机试一遍。这种“动手验证”的习惯,正是我现在最缺乏的。我决定从今天开始,每学一个新知识点,都必须亲手写代码实现一遍,而不是只看书或课件。
3. 关于“重视基础”
作者在给学弟学妹的建议中,专门提到了“重视基础”。他说:“掌握好专业基础知识是你以后进一步学习的前提。学生时代不要刻意去追求项目经验。” 他还说,企业招聘应届毕业生时,主要看的不是项目经验,而是基本功是否扎实。这一点和我之前读的刘帅的文章形成了呼应——刘帅在面试完美时空时,就是因为“知其然不知其所以然”而被问倒。两位前辈都告诉我同一个道理:基础不牢,地动山摇。我不能再眼高手低,觉得课本知识“没用”了。数据结构、操作系统、计算机网络这些基础课,我必须扎扎实实地学好。
4. 关于“英语的重要性”
作者说:“有一天,你会发现你使用中文关键字在Google、百度上再也搜不出来你想要解决问题的答案,这时候你就会意识到英语的重要性了。” 他自己因为初高中英语学得好,所以在工作中能够用英文搜索技术问题、阅读国外技术社区的讨论。这一点让我很受触动。我之前一直觉得英语只要过了四六级就够了,但从没想过它在技术学习中的实际作用。作者说“国外IT从业者的平均技术水平、技术社区讨论问题的质量与深度均要高于国内”,如果英语不好,就等于关上了一扇通往高质量知识的大门。我决定从现在开始,每天花15分钟阅读一篇英文技术博客,逐步提升自己的英文阅读能力。
5. 我的收获与行动
作者在文章结尾说:“未来很美好,我一直在路上。” 这句话让我觉得很温暖。他没有说自己取得了多大的成就,但他一直在努力、一直在前进。这种心态比任何具体的技能都重要。
我决定从这篇文章中学到三点:
- 动手实践:每学一个知识点,必须亲手写代码验证。
- 夯实基础:不轻视任何一门专业基础课,扎扎实实地学透。
- 提升英语:每天阅读英文技术文章,逐步习惯用英文获取信息。
作者说:“如果你觉得你适合学习计算机,那么自学能力是最重要的。” 我希望自己能成为一个善于自学的人。
附录
我的 GitHub:[https://github.com/chobin321/chobin321]

我的博客园主页:[https://www.cnblogs.com/chobin321]

浙公网安备 33010602011771号