第一周作业
| 这个作业属于哪个课程 | 软件工程 |
|---|---|
| 这个作业要求在哪里 | 第一次作业 |
| 这个作业的目标 | 建立博客:介绍自己,阅读前人所写的博客并产生一定的思考以写出自己的现状、经验和计划,阅读《构建之法》并提出5个有价值的问题,针对前人发布的博客发表具体感想 |
1. 介绍自己,建博客
大家好,我是李忠林,来自计算机科学与技术8班。专业学习上,我注重理论结合实践,曾参与蓝桥杯程序设计竞赛与数学建模大赛,在算法训练与团队协作建模的过程中,锻炼了逻辑思维与问题分析能力。
目前我正在开展目标检测相关项目实践,动手打磨计算机视觉方向的开发能力,希望进一步积累工程实战经验。课余时间我经常跑步,我认为长期坚持跑步能帮我调整状态、磨炼毅力,也能让我能够以较好的身心状态投入学习之中。未来我希望继续夯实专业基础,多动手做实验做项目,不断提升自身的理论与实践能力。
2. 现状、经验和计划
(1)
我选择计科专业,其一,是对计算机视觉方向抱有兴趣,希望通过代码去解决现实场景的问题;其二,我享受通过技术把想法落地的过程,竞赛和项目实践的经历也让我更加确认自己愿意在IT领域持续深耕;其三,计算机相关行业的前景较好,自认为相较更适合普通人进行学习与就业。
我与一个合格的IT专业毕业生的区别:在专业知识上,我对计算机的基础知识理解浅薄,且无法做到理论与实践之间的转换;技能与能力上,我的代码能力较弱,对前端与后端代码的理解浅薄且没有足够的前后端知识储备以及代码量。
我认为重要的六项技能:
1、Programming: Comprehension(程序理解)(如何理解已有的程序,通过阅读,分析,debug)目前水平为4,我想在课程结束后达到的水平为6;
2、Programming: Design(架构设计,模块化设计,接口设计)目前水平为3,我想在课程结束后达到的水平为6;
3、Programming: Test(单元测试、代码覆盖率)目前水平为4,我想在课程结束后达到的水平为7;
4、Programming: Code Review/Code Quality(代码复审/代码规范/代码质量)目前水平为4,我想在课程结束后达到的水平为7;
5、Personal Software Process (个人软件过程):个人源码管理(TFS/GitHub)目前水平为4,我想在课程结束后达到的水平为6。
我计划通过一下手段提升:
1、多阅读CV相关论文源码并尝试进行复现;
2、参考成熟开源项目目录结构;
3、学习单元测试框架,学会给自己项目补充测试用例;
4、写代码严格遵守代码规范,并习惯性用ai工具检查代码质量;
5、学会使用Git管理自己的项目。
(2)博客阅读心得
看了Scaler老师的随笔以及北航同学的作业有些许的感慨,当然这所谓的感慨远不及Scaler老师以及北航同学所写随笔之深邃与惊艳,我很认同Scaler老师所说地认真听讲是一种能力,但对于老师的水平普遍比学生高的观点,我持有一定的怀疑态度,不可否认老师水平确实很高,但有些老师的讲课水平不一定能匹配的上所拥有的知识储备,总有错误的类比、难以辨认的口语、难以区分重难点,当然对于重难点能否区分应该也能算是学生水平问题,但毕竟有些时候没法做到课前预习,对于未知的且大量的知识更希望能有明确的重难点区分,能将足够的精力留给真正的难点,当然这只是我个人浅薄的基于自己接纳能力过弱所产生的建议。
若老师布置的作业过难,我也会尝试着靠自己靠ai或跟同学讨论着完成,若实在超出了我的能力范围抑或是所耗费的时间超过了我的预期,我会只做到能保证及格的部分,其他都放弃。
我认为引用文献,参考别人的资料,在别人工作的基础上继续开发与抄袭的区别在于是否指出所引用文献的作者,以此来表明我所做的工作是对于该作者工作的扩展或是学习,若他人对我所做工作感兴趣也希望能了解一下我所引用的文献,说不定会有更深的理解。
(3)我的目光浅薄,实在想不到对于其他非打工方向的发展途径,或许以后我能有所改变,但对于目前而言,我只希望能找到一个薪资不错的工作。与其他同学相比我劣势的地方在于,我在读研与就业之间过于摇摆,导致落后于早就准备本科就业的同学,又没有足够的决心考研。
(4)看了这两篇博客不由得对软件工程的学习产生了不小的期待,看到这位同学当PM的经历,努力规划组内各个同学的工作内容,组内成员相互讨论学习不由得产生些许羡慕,虽产生过不少争论,但最终都找到的合适的解决方案。我希望能通过这门课,学习对项目架构的理解,以及学会对一个完整项目进行合适的分工,以及与其他同学共事的方式。
我目前的代码量大概有一万左右,主要是运用python解算法题。
我打算尽可能地多了解PM相关地知识,至于花费多少时间实在是说不准确,只能保证在认真上好每一节课完成每一个作业地前提下,多学学项目管理相关知识。
我希望能做到将一个完整的项目进行合理的任务划分与分配。
3、提有质量的问题, 给认真的反馈
1、第1章1.2节:书中以 "形式证明 vs. 人的行为 / 具体实现" 划分计算机科学与软件工程,那么形式化方法、程序验证这类同时横跨两边的方向该如何归类?
2、第1章1.3节:书中说 "bug 的多少可以直接衡量软件质量",但致命崩溃和 UI 像素偏差都是 1 个 bug,仅用数量衡量是否忽略了严重程度差异?
3、第2章2.1节:书中要求单元测试 "必须由程序作者来写",这是否会因确认偏误导致作者测不到自己的思维盲区?与测试独立性是否矛盾?
4、第2章2.3节:PSP 流程环节繁多(设计文档、复审、测试报告、事后总结等),对小型个人项目或学生作业来说,执行成本是否过高?书中是否有轻量化裁剪方案?
5、第3章3.4节:书中把技能定义为 "重复工作、不用思考",并与 "解决问题" 对立。但实际中熟练技能恰恰能释放认知资源去解决新问题,两者是否真的是对立关系?
4、前车之鉴
参考文献:
1、你是否也觉得自己是科班,但没学懂计算机?
2、把每天胡思乱想的东西记在一个笔记本上,作为思维快照,并常常翻回去自省,看看过去和现在的变化。这样的习惯呢?
对于第一篇文献,感觉我与作者的本科经历有些许相似,不知怎么做、不知怎么学、不愿触摸新鲜事物,对自己未来的道路很迷茫,总是摇摆与本科就业与考研之间,因此这篇文章也让我知道了一些改变的方法,要学会从课外寻找学习资料,不要仅局限于课内的知识,毕竟老师的讲课时间有限,无法将专业内所有重要的东西教授于我们;要多动手做项目,可以去GitHub找些项目复现,由简到繁,由浅入深,勇于跳出舒适圈,不要沉浸于无用的成就感之中。
对于第二篇文献,不由得为作者的自学能力感到惊叹,我也有过一段时间的课外读物自学经历,自认是不如作者百分之一认真的,现在想来,我的自学只是浮光掠影,并没有在大脑中或是书本上留下什么痕迹,或许只是取得了改变思维这种虚无的成果。读了这篇文章,我理解了自学要保持以下的习惯:a,勤做笔记,从小学念到大的“好记性不如烂笔头”始终如教条一般;b,要耐下性子,勤思考,只有真正读懂吸收了文章的内容才能算是真正学到了东西;c,要花时间在正道上。
浙公网安备 33010602011771号