心得总结#
开源毕设最重要的是兴趣,只要是自己感兴趣的题目,做起来就很上头,停不下来;相反,如果没兴趣的话就很难坚持下去。
做这个操作系统调试器花费了半年多,基本每周都开组会交流,持续时间比较长,所以除了兴趣,时间管理,精力管理也很重要。
能够表达自己的问题也很重要。刚开始遇到困难我只会说做不下去,说不出来问题所在,然后向老师只能不厌其烦地重复项目中最核心的思路。后来渐渐学会一点表达的技巧,就是多用概括性的语言,抓住重点。
除了表述问题的能力,写文档的能力也很重要。首先是给自己留下个记录,以免一段时间之后忘记开发细节,其次是给论文留下素材,我这回论文就没写好,答辩的时候老师看不出工作量,很吃亏。
就算这一周没什么进展,也尽量参加组会。组会的每周纪要刚开始我觉得很麻烦,一段时间后就发现它的价值了。
写程序时遇到很多困难,这些困难都有一个共同的特点,就是它们涉及多个元素之间的交互。就像三体运动一样难以预测。诀窍在于彻底弄清楚这个模块和其它模块之间的关系,然后按照时间顺序分析。写程序其实就是设计一台假想的机器。脑子里要有一台假想的计算机。
如果实在弄不明白,应该回头复习一下理论知识。多联系rCore指导书和课堂里学到的知识,在写代码的时候经常会用上。
踩过的最大的坑是代码不规范,最核心的内核态用户态切换跟踪那块代码的注释自己都看不懂,和其他同学协作起来就很费劲。
除此之外,我发现我能够写一些抽象层次比较高的程序了。因为烂代码写太多了,明白为什么要这样那样的抽象了。
最后再次感谢向老师和吴老师的指导。每次迷茫的时候老师们总是能指明方向。