3. 操作系统课程让我变成一个更好的合作者我们的操作系统课程有一些协作完成的项目,两个同学一组。我十分幸运在协作项目中和我两个好朋友一起工作。这种一起面对困难的经历让我们成为更好的朋友,也让整个班级同学的联系更加紧密。 由于有这些协作项目,我们变得更加善于合作。团队工作很容易陷入这么一种模式:一个人编写代码,另外一个坐在旁边看写代码。在操作系统课程上,我们的做法更加高效:两个人分别负责不同模块的实现,然后互相检查对方的代码。团队合作同时也增强了我们版本控制的能力,这是一个好的实际应用Git的机会。
4. 操作系统课程让我更高效解决问题这是一个年轻程序员面临的最显著也是最难解决的问题:当我们遇到问题的时候,常常陷于费曼算法(Feynman Algorithm)
采用这个方法让我操作系统前一部分的项目苦不堪言。这门课让我不得不去找一个科学的解决问题的方案。我最后想到了一种通用的做编程项目的方案,而且我把这个方法也用到了其他的计算机课程上了。它包括三个步骤: ① 任务:在这个项目中我需要完成哪些目标?我非常看重任务驱动,所以在安排我工作的时候,我会做一份清单,上面有一些划分成小块的任务目标。拿烘焙蛋糕打个比方:
② 代码错误(Bugs):有哪些代码中的错误是已知的?在这个步骤中,我会跟踪代码错误和一些我尝试修复的东西。在早期的项目里,我把时间都浪费到了重复尝试可能的解决方案上和频繁遇到一样的代码错误上了。频繁追踪产生的代码错误和修复方案能够在接下来的项目中节约我很大一部分时间。 ③ 问题:我有什么问题?在这部分,只要我遇到了问题,我都会把它们大致记下来。当我翻阅文档或者询问同学获得答案之后,我就会把我学到的知识记录在这。 有这么一个表格让我对我所做的项目抱有很大的信心。如果没有它,我可能现在还在花大量的时间在实验室里,虽然也可能有进步,但绝对没有我现在进步得这么明显。
结束语操作系统课程确实是一门有挑战性的课程,但是还是建议能够参加这门课。它是我成为软件工程师路上提高最大的一门课。如果即使你学完之后甚至都不记得什么是虚拟层(hypervisor )了,你也会感谢它教会你的其他东西。 一些关于操作系统课程的其他观点评论: 感谢Dan Kang审阅本文。 |