CC的学习经验

CC的半学期学习总结



感谢王达师兄,让我在学习他的同时感觉到点滴进步。
学期过了一半,Cloud Computing 的project也已过半。
20号凌晨5点,随着强一致和终端一致的两个测试的通过,意味着可以享受一下周末的惬意了。白天的时间去冲了下奖励,拿到两分后也是黔驴技穷,还是腾出点时间写写总结,分享分享学习经验。通常自己一个星期挣扎出的作业,见识过第一天就能荣登榜首的神牛。也不用提在第二周作业就被EMR活活逼哭的黑历史。说是分享,也请各位大神高抬贵手。
我是如何学习这门课的,有什么感悟。这里不会过多去纠结课程本身内容,而是分享下我自身的学习经历。

实验指导是否理解透彻

实验指导是指在每次做项目前,官方发布的说明文档。它包括

  • 项目简介
  • 知识点讲解
  • 平台要求
  • 任务步骤和目标
  • 惩罚,奖励,提示

对指导的理解程度会极大的影响每次作业的速度和质量。
刚开学时,每次CC的作业在读完指导后就直接开始,这样虽然可以很快的进入工作,有两个缺点。

  1. 写程序bug百出
  2. 完成后很快忘记

如果bug如果不是代码的生疏,便是自己没有理解。

做一项最愚蠢的工作

开始试着重新排版指导说明,对重点部分进行加粗和注释,通过这种方法,加强对指导的梳理和理解。问题来了,这样每次的作业都有一多半的时间在处理这项任务。这是一项很蠢的工作,直到突然看到师兄在博客中翻译上课内容,才恍然一笑,原来还有一样蠢的人。但是师兄,很快!后来的实验开始,我尝试着去翻译这些指导。刚开始极其痛苦,汉语翻译是要比英文注释还要慢的一项工作,有几周差点没有完成作业。但坚信的是,学习方法是比内容更重要的,既然你觉得是对的,那就做下去。

你会越来越快

翻译的工作实际上是,在理解原文的情况下做出总结,这是一个双倍的学习工程。翻译的难点在于:

  1. 准确把握原文
  2. 翻译通顺
  3. 专业词汇的使用

奇迹也会来的很突然。在翻译工作进行了一个月左右的时候,可以很明显感觉到翻译速度的提升,伴随对指导的理解深入,作业会完成的越来越顺利。以这一周为例,个人项目花费两天时间翻译理解指导,复习涉及到的知识和自己查找的一些资料,笔记字数1万字左右。作业程序花费1天通过了12个测试的11个,半天时间冲奖励和补漏。

深入理解是一种技能

深入理解是翻译这项愚蠢工作的副产品,也是主要目的。
举个例子来说,在最近的一次作业,要求实现一个终端一致的服务器,只有一个要求:(原文)with only one requirement- the newly received write operation must have a greater timestamp than the write operation that updated the currently stored value. 就这一个要求挡住了不少同学满分的道路。这里我理解的至关重要的一个词就是write而不是new。只有在连续写请求的条件下,终端一致有效。如遇读请求,复位。这并不是官方提供模版的标准写法,我甚至没有补全其他的相关联函数,因为这样的理解已经实现了终端一致的要求,足够通过所有的测试了。

自立更生与舶来主义

没有对错之分。一定要给自己足够的思考空间!一定要给自己足够的思考空间!一定要给自己足够的思考空间。我总结这三句,是因为前半学期的作业中,依赖他人思想过多。自己思考和交流讨论都是学习的基本方式。我自己总结了一个请教他人最佳的时间点:在对方不对你感到厌烦的同时,因为帮助你解决了问题而能极大满足自己虚荣心的那个时间就是最佳请教时间。嘿嘿,只是道理是这样讲的。

坚持

看个标题就能懂了。也没有什么过多的内容,亘古不变的真理。对学习的坚持,不要轻言放弃;对学习习惯的坚持,习惯会提高能力。