这个作业属于软件工程https://edu.cnblogs.com/campus/gdgy/Class56-Grade2024-CS?page=2
这个作业的要求为https://edu.cnblogs.com/campus/gdgy/Class56-Grade2024-CS/homework/15692#%E5%A4%A7%E5%AE%B6%E5%A5%BD%E5%BE%88%E9%AB%98%E5%85%B4%E5%9C%A8%E8%BF%99%E4%B8%AA%E6%9C%BA%E7%BC%98%E5%B7%A7%E5%90%88%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E8%AE%A4%E8%AF%86%E5%A4%A7%E5%AE%B6
这个作业的具体目标是让我们回顾并展望这门课程,学会初步使用工具
1、 介绍自己,建博客
我是广东工业大学24计算机科学与技术6班的汪琳,平时除了在完成课程安排的任务或竞赛的课余时间,喜欢骑车听音乐看悬疑片子或者美剧,也读点书,喜欢摄影和旅行。优势技能,擅长拆解问题,剖析问题,构建框架。
2、现状、经验和计划
(1)在选择专业的时候其实很纠结,我对当时大多数的新工科具体的学习内容都不甚了解,最终选择这个专业可能只是源于小时候对于计算机科学的向往和不想过多学习物理理论相关的课程,因为我对于物理实在不是很擅长。就目前我的情况来看,距离成为一名合格甚至优秀的IT专业毕业生,应该还有很长的路要走,
认为对我特别重要的技能 | 目前的水平 | 课程结束后达到的水平
Design(架构设计 模块化设计 接口设计) | 5 | 6
Implementation(模块实现 逐步细化)| 4 | 6
Code Review/Code Quality(代码复审/代码质量)| 3| 6
Performance(效能分析和改进)| 4 | 6
Comprehension(程序理解)| 4 | 6
Cutting edge technology | 3 | 5
1) 积极思考并高质量完成课程需要的作业等内容,在完成的过程中对上述所提到的重要技能进行刻意的训练和反思
2) 在网络上更广泛的学习并动手实践一些相关课程,提高上述我认为重要的核心技能
3) 可以联系面向接口编程,践行“TDD(测试驱动开发)的简化版”——先写桩函数,再填充,可以限制函数长度
4)主动把代码发给“比我厉害的人”看
5)建立自己的“个人Review检查清单”
(2)
a) 在大学里,大多数老师身上或多或少都有我们值得学习的地方,认真参与课堂其实就是与老师的深度互动
b) 我在大学中体验到了很多种多样的师生关系,但大多数的课程,特别是基础必修课,我们和老师大概率会比较陌生,专业课的老师则大多数都认真负责,对我们苦口婆心,谆谆教诲,我希望在这门课里,老师和学生也能有一个更良性的关系,和谐融洽,并能真正让我们收获一些对我们未来发展很深刻,有用的思想和技能,如果老师布置的作业有些困难,我会向同学和老师请教,花更多时间,尽量把作业按时按质量按要求完成。
c)
(3)目前来看,我在为升学读研做准备,希望未来几年能尝试做一些学术研究。相比其他同学,我的优势在于,我在拆解问题处理问题时是更加谨慎仔细的,也许我的项目经历和代码能力不算非常强,但是我对于算法的理解,对于理论的学习是掌握的较为出色的,同时,我做事情比较有韧性和耐心,不会半途而废或者轻易放弃,其次就是我对于工具的使用比较熟悉。我的劣势也很明显,一个是我目前还没有真正了解过整个科研的工作的流程和细节,开发能力和对于最新的技术的尝试和学习能力不是很强。
本学期计划所做的准备包括但不限于,评估当前的绩点情况,在选择保研/读研/申请外籍学校等方向做准备,考虑自身能力和现实因素,评估每种选择落地的可能,同时在准备雅思和择校,同时在积极联系课题组老师,想了解一下具体的科研工作,并真正参与进去,获得一段深刻难忘的科研经历,并对未来发展有所帮助。
(4)我在这门课计划是想真正了解软件工程学习的内容,提升个人的开发能力和软件开发思维。参考完上述的内容后,我希望在这门课也能通过大量的实践和打磨,真正的做出一些很不错的作品,然后训练自己的代码能力等多方面的综合素养,我也期待真正投入很多时间去更好的完成这门课的要求。当助教么?我不清楚具体的工作是需要做什么,感觉可以试试看,不能说非常相当,但是不排斥。
我目前的代码量,大概python 7500行,C语言 8000行左右,我不清楚需要达到多少的标准才能有资格入职相关的公司,但我知道至少是我目前的好几倍往上,而从事高校的科学研究与职业不一定相同,但感觉要求会更高,不过侧重的点可能有不同。
我打算每周拿出12个小时在这门课上,虽然我没有说过,但是我依旧i认为我还是可以多付出一些努力向更优秀的同学学习,我打算花费的时间比以前的课稍多一些,直到达到我自己的要求的目标为止。在本节课结束的时候,我计划能完成4000行的代码量,分配到每周其实也只有300行差不多,并不算多,但似乎希望能更追求高质量
3、提有质量的问题,给认真的反馈
(1)单元测试的“成本”与“收益”如何平衡?(第2章 个人技术和流程) 第2章“个人技术和流程”中的2.1节“单元测试”。书中强调单元测试的重要性,指出“单元测试能让自己负责的模块的质量得到稳定的、量化的保证”。书中还提到,单元测试应该由程序员自己编写,并且要能自动化运行。我在课程作业中写过一些简单的单元测试(比如用JUnit测试Java方法),确实能发现一些边界条件的错误。但问题是——在时间紧张的项目中,单元测试的投入产出比真的总是划算的吗?
(2)“技能的反面是解决问题”——低层次技能真的可以“自动化”吗?(第3章 软件工程师的成长)第3章“软件工程师的成长”中的3.4节“技能的反面”。书中提出了一个很有意思的观点:技能的反面是“解决问题”(Problem Solving)。意思是,当你把某件事练到不需要动脑就能完成的程度,它就从“解决问题”变成了“技能”。作者认为,通过不断练习把低层次问题都解决掉、变成自动操作,才能腾出脑力处理高层次问题。 书中的逻辑是“练好低层次 → 腾出脑力处理高层次”。但我担心的是:如果“低层次”本身在不断变化(框架更新、语言迭代),那我们到底应该花多少精力去“练熟”这些随时可能被淘汰的东西? 是不是应该在“练熟”和“保持学习新东西的能力”之间找一个平衡?这个平衡点在哪里?
(3)NABCD模型——找到了需求就一定能做出好产品吗?(第8章 需求分析)第8章“需求分析”中的8.4节介绍了NABCD模型:N(Need) :用户的什么需求?A(Approach) :用什么方法解决?B(Benefit) :给用户带来什么好处?C(Competition) :与竞争对手相比的优势?D(Delivery) :如何将产品交付给用户?
书中通过这个框架教我们如何做竞争性需求分析,如何定位产品功能,NABCD看起来是一个很完美的框架——只要能清晰回答这五个问题,产品成功的概率应该很高。但现实中,很多成功的产品似乎并不是“先找到需求再做产品”的。书中第16章“IT行业的创新”提到,索尼创始人盛田昭夫有“随身听”的想法时,公司的专家做了多次市场调查,结果都证明“随身听没有市场”。但盛田坚持己见,最后随身听大获成功。这个例子本身就说明:市场调研(需求分析)有时候会给出“错误”的答案。另一个例子:苹果iPhone出现之前,消费者可能根本不知道自己“需要”一部没有物理键盘的手机。如果用传统的需求调研方法去问用户,得到的答案大概率是“我需要更好的键盘手机”,而不是“我需要一部触屏手机”NABCD模型假设“需求可以被事先发现和定义”,但创新的历史告诉我们,很多伟大的需求是被产品创造出来的,而不是被调研发现的。那么,NABCD模型是不是只适用于“已知需求”的领域(比如改进已有产品),而不适用于“创造新市场”的场景?如果是这样,我们在使用这个模型时,是不是应该先判断一下自己所处的场景类型?
4、前车之鉴
也许很多前辈和我们现在一样疑惑和不解,对于自己到底有没有学懂计算机,或者为什么完全看不到能力的进步,学校课程对于实践能力培养的相对缺失感到一些困惑茫然和痛苦。科班不等于学懂计算机,而本科阶段培养的技能和习惯会很深远的影响到未来的工作和对于这个领域的思考方式,本科阶段也是最容易拉开差距的(此处参考B.https://book.douban.com/subject/4006425/discussion/22803961/
(你是否也觉得自己是科班,但没学懂计算机?))
他的经历让我印象最深的是“独立思考”这件事—,他不是被逼着学,而是被引导着享受思考的过程。很多时候我们急于求成,想要速成的答案,却忽略了“百思而得解”那种愉悦感本身才是持续学习的动力。文中他父亲在自行车上随口讲物理的场景也让我触动:好的教育不是坐在教室里灌输,而是在生活中潜移默化地启发。对比当下很多培训班“三个月速成”的承诺,他从一道几何题琢磨一周的经历,反而更接近学习的本质(此处参考C.https://book.douban.com/subject/4006425/discussion/22802960/
(把每天胡思乱想的东西记在一个笔记本上,作为思维快照,并常常翻回去自省,看看过去和现在的变化。这样的习惯呢?))
这篇文章让我对“培训班速成”有了更清醒的认识。作者是踏实型学生,大学班级综合成绩第二名,但转行学编程时照样被卡住。培训班的宣传往往夸大“三个月改变一生”,但真正的学习没有捷径——他试图搞懂“为什么写一句代码后面要加分号”这种问题时的纠结,恰恰说明深入理解远比囫囵吞枣重要。 这提醒我:无论用什么方式学习,追求速度而跳过思考过程,最终都要付出更大的代价(此处参考F. 女生能学好么?请看例子和讨论。)

https://github.com/Stella-0203/Stella-0203/blob/main/README.md

浙公网安备 33010602011771号