缘起
2020年三月,我在网上到处寻找一些经验,期待可以找到一些前人的指导。我该如何学习计算机,学习更多的技术。在我到处乱逛的时候,接触到了几个博客(在这个部分的结束我会分享给大家)。然后看到了很多年度总结。
这是这篇文章的缘起,也为了整理我的魔幻2020。
ddadaal.me, idealclover. 这两个是南大16级的学生。
0xFFFF,这是一个论坛。
一段交流-伯克利
2020年一月,彼时的我应该在准备期末考试。一月十二日期末考试结束,一月十五日我便踏上了前往伯克利的飞机。北京时间一月十六日,经历十多个小时的飞行的我,提着行李箱,在旧金山国际机场乘坐破旧的地铁至伯克利。下车之后就是市中心,并不是像北京上海一样的钢铁丛林。走过眼前交错的二层小平房,我一个人拖着行李箱,在热烈阳光下寻找我的公寓。
取钥匙,上楼,然后躺在床垫上(还没有买床上用品),疲惫地憧憬接下来的四个月的异国生活。
我上了什么课
在伯克利上课的节奏还是挺快的。因为我们是交换生,所以选课的优先级最低。在开学前两周,我甚至不知道自己最终能上什么课。
什么都去上,微积分,离散数学,计网,算法,以及最后我确定上的CS61A,CS186 数据库,CS188 人工智能。同时上这么多课,要知道三门课的workload就已经很重了,每天还要自己做饭,搞得一开始生活压力非常大。
挣扎了一个礼拜,第二周开始做减法,七门课留下了三门,最终也选上了这几门课,算是得偿所愿。
三门课都是计算机的课程,每门课的人数也非常多,CS61A 规模大概在1300人,其余两门是本科生高阶课程,人数在700左右。
- “这里是cs61a,世界上最好的计算机课。”
这里面我认为最好的课程便是CS61A了,作为大名鼎鼎的入门课程,这门课的体验比我在南大上过的所有课都要好。
一周有三节课,每节课45min, 还有附加的lab 和 discussion课程, 由助教进行讲解。所以真正每周和教授的交流只有不到三小时的时间。
差距
讲师的个人魅力
即便礼堂里坐得满满当当的,prof. Denero 还是让我感觉到了和学生之间的交流。绝对不是单纯的念ppt,或者完成任务式的教学。
热情。我觉得这是国内的老师很缺少的一点特质。能让学生感觉到教授们对所传授的知识的热情与热爱,这一点是非常重要的,可以帮助学生培养对知识的热情与兴趣。当一个老师自己都不热爱自己所传授的知识,你怎么能期待学生们能够对其的课程感兴趣呢?
可以说一些在南大我觉得很有个人魅力的老师和他们的课程:
中国近现代史纲要(刘握宇)
文化创意进阶
C++与面向对象程序设计(于耀)
数字信号处理(李晨)
课程本身
课程本身方面的更是相差巨大。先不说别的,我们专业用的教材大部分只买得到二手书:),有些专业课的ppt甚至是十几年前的。更别说作业了。
61A文档的完备程度令我十分舒适,不会遇到困难而完全无法动手做。 你可能遇到的卡壳的地方基本上都会有tips或者Hint,而且会提供并不强制要求的题目作为extra practice以便学有余力的同学进行训练。
此外不得不提在学习中广泛使用的Piazza。
我所在的三门课程都有对应的Piazza,比较像国内的课程群但是气氛完全不一样。学生们可以实名,匿名在网站上提问或者是解答。每次发布作业助教都会在Piazza上发布集合贴,如果你有相关的问题就可以发布在Piazza上, 助教们会一一回答你的问题,当然学生也可以回答并且大概率会解决你的问题。
有一些同学非常热情,几乎在所有的帖子都有他们的回答,并且基本上是正确的。这和我在国内的课程群体会到的完全不一样:大部分人完全不关注别人问了什么,与此同时,问问题的人也很少。
- 一方面可能是担心得不到任何人的回应(包括老师和同学),我在有些课程群里的提问,就往往得不到任何回应。
- 另一方面在中国的教育环境下,问出一个silly问题可能很难让提问者接受, 这一点国外完全不一样。很多同学一有问题就问,打断教授问,在帖子里问,尤其是在课上的提问,很多在我看来可能是低级的提问,但是大家都不会嘲讽,提问者也不会感到难堪。正如Denero所说,大家的基础各不相同,每个人都是从菜鸟过来的,没必要嘲讽或者看不起那些提出silly问题的同学,也没必要为此感到尴尬,在CS61A的课堂中也禁止这样做(大意如此)。
Piazza 在我看来有这样几个好处:
- 匿名、不匿名自由选择(管理员可以看到真名)
- 根据话题分类,不会说被垃圾信息淹没了重要信息,你可以搜索你感兴趣的话题
- 界限性,你需要的时候自己去网站上看,而不是一直被动接受相应的信息。就像邮件。而QQ,微信群大家在日常生活中都会使用,并不是只在学习的时候用。有的同学不想要在休息的时候也看到关于课程的消息所以很可能屏蔽掉课程群。
- 成就感。对于热心回答者,管理员可以给一个徽章代表是被认可的学生回答者,并且有机会新学期做对应课程的助教(是的,本科生也可以做助教,在南大据我所知 只有计算机系的高年级同学有这样的机会)
在我的三门课程里,CS61A的话我解答得比较多,因为是基础课程,我的压力并不是很大。CS186 和CS188则全靠Piazza, 尤其是CS186, 这个课程的大作业是自己写一个数据库管理系统。给我们的框架只有相关的接口。这是我第一个像模像样的计算机项目,从零开始,用Java 实现了一个数据库管理系统。每次写功能的时候,都十分痛苦,因为你只知道接口和要求,所有得细节都需要自己去实现。是一个从0到1的过程,而我却更多程度上是一个example learner。每次写代码之前,我都会去Piazza上的相关帖子去看一遍,有的时候有十几页,全部看一遍然后整理自己的思路,揣摩如何才能够符合功能的描述。
助教们
怎么说呢,最能理解学生问题的人永远是学生自己。
国外的课程结构是由课堂,实验,讨论课三部分的。老师只需要负责上课和给分,还有他自己的答疑时间。其余所有的任务,包含作业,projects,实验,讨论课在内,都是由助教负责(CS61A大概有30-40个人的助教规模)。老师专注于如何把课讲好,而不用关注其他的部分。助教专注于解决学生的任何有关于课程的问题,和学生在同一战线,并且监督学生。这样一个结构可以较好地传道授业和解惑。
而国内的老师,自己的时间有限,既要忙科研,搞科研成果,上课的时候也是只管讲课,不管作业。助教则负责批改作业,习题课都没有几节。学生不会的问题经过一个学期的学习大概率还是不会,没有方便的渠道去“解惑”。
感觉不到师生,助教之间的交流。
然后便是pandemic,疫情。
匆匆回国
回国那段时间特别难受,所以有很多创作欲望,但是却很难将自己表述清楚。勉强写了一篇回国日记。
关于这点不再赘述。
其他
回国后大概完成了以下事情:
- 6 - 7月, 考完了TOEFL
- 8 - 9 月, 学车
- 9月开学,补了因交换落下的实验课
- 10月, 考完了GRE
- 10月 开始申请
这里面基本上是关于申请相关的事情,我会另开一篇文章专门写DIY申请(新建文件夹, 在做了在做了)。
期间在五月参加了微软暑期实习的面试,在12月参加了字节跳动实习面试也失败了。关于这两次面试,由于结果都不太好,但是面试反馈是逐渐变好的。
- 微软参与了两面,第一面是我的第一次面试,非常紧张,效果特别差。二面感觉不错,出了一个hard题由于我准备过(虽然我都忘了)还是写出来了。但是我的面试时间由3月20号我主动推迟后,被hr一直忘记直到劳动节过后才安排我面试(我发邮件提醒过多次)。然后没有后续了。
- 字节跳动在最近面的,准备了四五天。国内的企业一大特点是需要考察基础知识,遂针对面经准备了几天。也面了两面,背靠背。这次面试我的整体我自己感觉还不错。但是针对python相关的问题回答的还不好(实在没想到会问python相关的,还有关于python2, python3 区别的相关问题)。算法方面一面写了一题dfs,没有一遍过但是还是自己查出来了。
一面结束了紧接着二面,二面只写了一题。合并两个数组。面试官引导很多。我回答了二分的想法之后要求还要进一步优化。然后一直讨论得出最后的方法。讨论完成之后,写成代码。一个小时之写了这一题。遂挂了,可能写得太慢了。
总的说来进步还是有的,但是基础知识和算法方面都需要进一步加强,需要多加准备。
To do
- 毕业设计
- 完成申请经验分享文章
- 完成关于我最近在干什么,以及我打算干什么文章中的设想,实现一个类似于生存手册、飞跃手册的互助分享。
大致如此。
写于28日夜,永远相信美好的事即将发生。
- Post link: https://cw-guo.github.io/2020/12/11/my2020/
- Copyright Notice: All articles in this blog are licensed under unless stating additionally.
若没有本文 Issue,您可以使用 Comment 模版新建。
GitHub Issues