第一周作业
一、自我介绍与博客建立
我是 2024 级计算机科学与技术专业的一名学生。平时除课本学习之外,我比较喜欢阅读科普类书籍,也坚持慢跑锻炼,累计坚持两年,每周 3‑4 次。慢跑锻炼磨炼了我的耐力,遇到困难不容易轻易放弃,这份毅力同样可以迁移到编程学习当中。
我本次搭建博客园个人技术博客,目的是记录课程学习过程,记录踩过的坑、代码实践、读书思考,练习技术写作。写博客需要投入时间,但可以倒逼自己把知识梳理清楚。我会遵守博客园社区规范以及课程作业学术诚信底线,坚持原创,引用资料标注来源。
每个人都有自己的闪光点,不一定体现在分数上。对我来说,我的优势是愿意花时间反复琢磨一件事情,遇到不懂愿意查阅资料、搜索、反复试错。慢跑这项能力不是一蹴而就,最开始跑几百米就很累,经过两年持续练习,才可以完成长距离慢跑。能力都是靠持续投入慢慢积累而来。
交作业要有底线,坚决拒绝抄袭剽窃。参考别人思路可以,但必须区分借鉴与抄袭,所有参考来源做好标记,作业体现自己真实思考。
二、现状、经验和计划
(1)专业选择与能力差距
出于对计算机解决现实问题的兴趣,我选择了计算机科学与技术专业。身处大学可以全职学习,是非常宝贵的机会。对照合格 IT 毕业生的能力要求,我挑选 7 项关键能力做自评:
表格
核心技能 当前水平(0‑9) 课程结束目标水平(0‑9) 提升手段
算法与数据结构 2 6 1. 每周刷适量算法题;2. 整理错题笔记;3. 动手实现数据结构;4. 阅读教材理解原理;5. 和同学讨论解题思路
代码编写与调试 2 6 1. 保证每周动手写代码;2. 遇到报错先独立排查;3. 记录常见 bug;4. 模仿优秀示例再自主改写;5. 多做小型实践项目
Git / GitHub 使用 0 5 1. 学习 Git 自助手册;2. 本地练习提交、分支;3. 坚持提交代码到 GitHub 同名仓库;4. 查阅网上教程;5. 模仿范例仓库 README 写法
技术文档撰写 2 6 1. 写项目配套说明文档;2. 博客坚持输出随笔;3. 学习 Markdown 排版;4. 参考优秀开源项目文档;5. 写代码时养成写注释习惯
团队协作能力 3 7 1. 积极参与小组作业;2. 学习团队分工模式;3. 主动沟通进度;4. 复盘小组合作暴露的问题;5. 学习代码协作流程
问题分析排查能力 1 6 1. 遇到问题先复现现象;2. 善用搜索引擎检索报错;3. 保存报错日志;4. 总结问题解决思路;5. 向同学老师请教
自主学习能力 4 8 1. 制定周学习计划;2. 定期复盘完成情况;3. 阅读技术博客拓展视野;4. 遇到新知识主动查阅资料;5. 根据自身情况动态调整计划
评分说明:5 代表可以通过基础面试,9 代表世界一流水平。
(2)阅读心得
a)注意力相关阅读心得
阅读注意力相关文章与评论之后,我意识到大学生最大的敌人是碎片化信息。手机消息、短视频很容易切碎大块学习时间。想要学好编程,需要保护自己的专注时间,学会划分任务优先级,减少无效刷手机,给自己留出完整的学习时段。
b)师生关系与作业困难应对
我期望本课程是教练‑学员式的师生关系:老师给出任务、指出方向、提供指导;学生主动实践、主动提问、主动反馈。
如果老师布置的作业对我来说比较困难,我选择 C:向老师和同学请教,花更多时间,把作业全部完成。 不会直接摆烂或者只做及格部分。
c)引用参考与抄袭剽窃的区别
参考、引用别人资料:阅读别人思路,理解之后形成自己的实现,明确标注参考来源,在他人基础上继续思考创造。
抄袭剽窃:直接复制别人代码、文字,不加标注,冒充是自己的成果,没有自己思考加工。
本课程作业我会严格区分二者,所有参考网页、博客、开源代码都写明出处,遵守学校关于学术不端、抄袭的相关规定。
(3)未来发展选择、优劣势与本学期规划
我未来倾向于走软件开发方向,希望可以从事后端开发相关岗位。
优势:有耐心,愿意投入时间反复练习,遇到挫败不会轻易放弃;文字整理总结能力尚可。
劣势:编程实战经验很少,项目经历匮乏,算法基础薄弱,对工业界开发流程了解不多。
本学期规划:
夯实编程语言基础,多动手写代码,积累实践量;
熟练 Git、GitHub,维护个人同名仓库;
坚持写博客园随笔,记录课程作业与学习思考;
完成课程要求的实践作业,遇到困难主动求助;
课余阅读技术文章,拓宽自己技术视野。
(4)本课程计划、代码量、时间投入 & WOOP
当前代码量:C 语言 200 行,Python 200 行,合计 400 行。
听闻想要入职一流软件公司需要大量有效代码积累;走科研道路更看重理论、算法、论文阅读能力。
每周投入本课程总时间(含上课):14 小时。如果过去时间有所浪费,现在要追赶,选择 D:比以前课要多很多,直到达到目标为止。
课程结束计划完成总代码量:2800 行;每周计划完成代码量约 200 行。
WOOP 规划
Wish(愿望):课程结束,能够熟练使用 Git/GitHub;可以独立完成小型软件实践项目;掌握基础软件工程思维;能够写出合格技术博客。
Outcome(结果):可以完整完成课程项目作业;GitHub 仓库有完整提交记录;博客积累多篇学习随笔;面对基础开发任务不再手足无措,为后续专业学习打下工程基础。
Obstacles(障碍)
内部障碍:容易拖延;写程序遇到 bug 卡很久容易心态烦躁;自控力不足,学习时忍不住刷手机;
外部障碍:课程任务叠加,多门课程挤在一起时间紧张;部分概念理解难度大,缺少现成引导。
最可能失败因素:拖延,任务堆积,临近截止才赶工,质量大打折扣。
Plan(If‑Then 预案)
如果发现自己拖延不想动手,那么就不追求做完全部,先动手完成最小的一小部分,启动任务;
如果写代码被 bug 卡住很久心态烦躁,那么先暂停,整理报错信息,搜索,之后向同学老师求助,不硬扛死磕浪费时间;
如果学习过程忍不住刷手机,那么把手机放到视线之外,设置专注时段;
如果多门作业撞在一起时间紧张,那么提前拆分任务,设置小截止点,不要堆到最后。
三、提有质量的问题,给认真的反馈
快速阅读《构建之法》,提出 5 个问题:
第 1 章 概论 1.1 软件 = 程序 + 软件工程
引用:软件 = 程序 + 软件工程。程序是源代码,软件工程还包含需求、版本管理、测试、发布维护等一系列工作。
我的问题:个人写很小的练手项目,也需要完整执行全套软件工程流程吗?初学者该如何取舍哪些流程必须做、哪些可以简化?
现实:我写课堂小练习,完整走软件工程流程会感觉负担很重;但完全不做,又养成不了工程习惯。
困惑:对于学生个人小项目,软件工程的边界在哪里?
第 2 章 个人技术和流程 2.2 单元测试
引用:单元测试是对程序的一个模块进行测试。
我的问题:学生课程作业代码量很小,很多同学基本不写单元测试。对于初学者,什么时候才应该开始强制写单元测试?
现实:课堂作业大多写完跑通就交,很少写测试。
困惑:单元测试对于入门学习者,是优先学习,还是等到项目变大之后再接触?
第 5 章 团队和流程 5.2 软件团队的模式
引用:合唱团模式、明星模式、官僚模式等多种团队模式。
我的问题:大学课程小组作业一般 3‑5 人,周期短,人员水平参差不齐,哪一种团队模式最适合学生小组?
现实:很多小组分工模糊,有人任务很重有人划水。
困惑:学生团队如何规避分工混乱、搭便车的问题。
第 16 章 创新 16.1 创新的迷思
引用:迷思一:创新就是灵光一现。
我的问题:普通在校学生没有大量行业项目经验,日常学习中如何训练自己创新能力?创新是否只能建立在大量项目积累之上?
现实:上课大多是完成给定需求作业,很少有机会自主创新。
困惑:普通学生有哪些可落地的训练创新的方式?
第 17 章 人、绩效和职业道德 17.2 软件工程的职业道德
引用:软件工程师应当保持诚信,不能剽窃别人成果。
我的问题:学习过程参考网上开源代码逻辑,看懂之后自己重写实现,变量、结构做修改,怎样清晰判断是否属于剽窃?
现实:很多同学学习会看别人代码模仿。
困惑:借鉴思路和抄袭代码清晰分界线是什么?
课程反馈选择
选择 D:经常提问题,平时就经常给老师和助教提反馈。有学习困惑及时提出,认真完成课程反馈。
四、前车之鉴(阅读前人文章感想)
文章 1:https://book.douban.com/subject/4006425/discussion/22803733/
内容:把任务分为 ABCD 四类:A 紧迫且重要;B 重要不紧迫;C 紧迫不重要;D 不重要不紧迫。
感想:我以前经常被各类临时琐事占据时间,忽略 “重要但不紧迫” 的事情,例如刷题、读技术文档、写博客。这些事不马上做不会立刻出事,但长期影响巨大。读完之后我打算尝试每日简单划分任务,优先保障 B 类任务投入,不要一直被紧急琐事牵着走。
文章 2:https://book.douban.com/subject/4006425/discussion/22803961/
内容:科班学生却感觉自己没有真正学懂计算机。
感想:这篇让我很有共鸣。上课听得懂,但是自己动手写代码就处处碰壁。计算机不是靠背课本,核心在于实践。不能满足于听懂课,要多动手、多踩坑。以后学习不能停留在看懂,要做到自己独立复现代码。
文章 3:https://book.douban.com/subject/4006425/discussion/22802960/
内容:记录思维快照,时常回头自省。
感想:记录自己思考快照,定期复盘,是很好习惯。很多想法一段时间之后就遗忘。之后我会利用博客、笔记记录自己学习时候的想法,隔一段时间回看,观察自己认知的变化。

浙公网安备 33010602011771号