张同学的Berkeley回想录启程,奔向美利坚与我而言,很小的时候就有想要出国的愿望和憧憬。
究其原因的话,有一部分是因为自己喜欢打篮球的缘故,从小就非常喜欢看NBA,所以经常梦想能够有一天能够踏足那片“神圣”的土地。
另一方面就是因为自己的专业方向。
出身于计算机科学专业,我在大一刚入学时就已经树立了研究生想要出国留学的目标。
加州大学伯克利分校是以计算机科学见长的传统世界名校,当然早已成为了我的研究生目标学校之一。
2017年年末的时候,接触到了立思辰留学360对于伯克利夏校项目的宣讲,内心深处马上坚定了想要在2018年暑假去美国体验伯克利生活和学习的信念和决心。
在立思辰留学360的帮助下,我成功度过了前期的申请阶段,并且顺利地拿到了通往美国的签证。
就这样,一段难忘的美利坚伯克利之旅,开始了。
北京时间2018年6月17日 上午, 我随Leo还有其他同行的小伙伴们,一起登上了飞往旧金山的班机。
对于之前没有任何出国经历的我来说,这样跨时区的飞行经历真的是既辛苦,又兴奋。
飞翔在大西洋之上的云端,从世界的一边飞向另一边,别有一番滋味。
在经历了短暂的“黑暗”之后,我迎来了来自西边的第一缕阳光。
飞机上的行程记录仪可以非常清晰地看到飞机的位置,真的已经是非常接近旧金山了。
心里真的是非常的激动。
终于,经过10个半小时的飞行,我们终于到达了旧金山的机场。
短暂的休整之后,和小伙伴们一起搭出租车,开往伯克利。
落地,构想伯克利 在来到美国之前,听很多的伙伴们说倒时差的一种方式就是一直不睡觉(前提是自己能熬得住)。
所以,虽然已经20多个小时没有合眼了,但是在好奇心的驱使下,打算在开课前的一天先去Berkeley的downtown转一圈。
半天的时间,可以说差不多逛完了半个Berkeley,因为确实是非常小的一个城镇。
从我们住宿的地方走5分钟,就能够到Berkeley的市中心了。
听Leo说,下面这个图就是整个Berkeley的中心,所以叫做Center Street。
当然,我也数不清到底从这个路口经过了多少次了,因为它真的是每天我上课的必经之地。
走在Berkeley的大街上,我一直在观察周围的环境和人们的一举一动。
自己在内心身处非常的感慨,一个如此小的城镇,小到让你觉得一不留神就能散步走到另一个城镇,却铸造了世界上最好的公立学校,街上的每一个人仿佛都有一种深深的自豪感,因为“我”来自Berkeley。
可以毫不夸张地说,如果没有这所世界一流名校的出现,也许不会有那么多人会知道在美国加利福尼亚州旧金山市附近有一个叫做Berkeley的小城。
我仿佛融入到了这种自豪感当中,为自己能有机会在接下来的两个月里成为一个Berkeley的居民感到骄傲。
继续探寻Berkeley(或者说是倒时差), 我在主校区附近的地方发现了一些非常有趣的标记。
看到这句话之后,我的第一反应就是,也许该做好两个月吃苦的准备了。
Optional 就意味着有的人坚持了下来,有的人却放弃了,这也许就是Berkeley培养一个又一个杰出人才的原因,因为他们都选择了苦难和痛苦,只有这样才能磨炼自己的意志。
第二个涂鸦标记真的看得我目瞪口呆,这或许就是一些Berkeley学生的心声,忙于繁重的课业压力不能呼吸,发出了内心身处的呼喊。
可以说,这些比较有代表性的标识涂鸦让我在内心当中或多或少对之后两个月学习生活有了一些构想—不论过程有多么艰难,一定要坚持到底!
体验,渗透伯克利说到这里,终于要进入Berkeley课程的主题了。
我选择的课程是Berkeley计算机科学系教得最好的一门课:CS 61BL—Data Structures and Programming Methodology。
实际上对于Berkeley本校的同学来说,在秋季学期和春季学期选修这门课的话,课程代码就会是:CS 61B。
这两种课程代码有什么区别呢?
简单来说,暑假的CS 61BL是以机房课(Lab—这就是L字母所代表的)为基础的数据结构课程,而普通学期的CS 61B 是以讲座课(Lecture) 为主体。
再加上,暑期课程的时间是两个月,正常学期(秋季和春季)的课程时间是四个月,选择这门课就意味着我要用两个月的时间学完四个月的课程 – 难度可想而知。
所以早在开学前,我的instructor就专门发过邮件建议我们:因为课程压力很大,除了这门课尽量不要再选择其他的课程。
简单介绍一下CS 61BL 的课程设置和安排吧。
每周待在机房的时间总共有12小时(每天3小时,除了周三);每周三会有一个两个小时的lecture,主要讲Lab上会遇到的难题,以及概念的讲解;8周的课程中,总共有4次考试(3次midterm期中考 + 1次Final期末考);8周的课程中会有3个难度依次上升的项目。
所以说,根据这个课程安排来看,CS 61BL可以说能够让你度过一个充实而有趣的暑假了。
我们的老师是Berkeley在读或者刚毕业的学长和学姐们,他们之前都在这门课上取得了很好的成绩,所以有着非常丰富的经验。
Lecture的老师是Kevin和Christine,他们都是美国的ABC(American Born China), 口语特别棒,第一节课就被惊艳到了。
虽然我们上Lecture的时间不多,每周只有一节,但是每节课的内容都是一周Lab课程的凝练,每次我都抢第一排的位置,仰慕两位大神。
因为整个CS 61BL的学生有300人左右,Lab的教室是有限的,所以我们会被分配到不同的小的Lab的时间段,每一个时间段有一个固定的Lab Leader。
我每天的Lab时间是从17:00 – 20:00,陪伴了我们两个月的Leader 是已经毕业的学长Alex。
Alex是一个菲律宾裔的美国人,性格非常的活泼,总能以非常新颖的方式解答我的疑惑。
比如说,我当时对于如何用递归法(recursion)写翻转链表(reverse list)的算法非常的困惑,Alex告诉我应该当一个先知,预测最后一个步骤的写法,然后反推回Base case,就能非常快速的写出代码。
这个方法让我瞬间就明白了递归算法的本质,让我能更好的运用它写出其他的相关算法。
每天对于我来说都是充实的,上午起床之后我会去图书馆,提前开始今天的任务,并且在手机的备忘录上记录所有遇到的问题。
到了Lab的时间,就是我和Alex交流的时间了。
这也是我觉得CS 61BL 最应该利用好的资源,和Berkeley的本校学生一起交流学术,了解他们的思维方式和解题方法,真的是大有裨益的。
除了Alex,每一个Lab都会有两到三个Teaching Assistance(助教),协助Alex解答大家的问题,这样子就达到了充分交流的目的,也是让我每天保持旺盛精力的来源。
对于我来说,最具有挑战的就是第二个项目,我们要以小组为单位,完成一个Gitlet version control system(和Git类似的版本控制系统)。
这应该是我做的第一个CS的比较大的软件工程项目。
整个项目需要我们利用现有的数据结构来设计自己的系统组成部分:working directory, staging area 还有 Commit area。
这些都是需要我们从无到有来构建的,可以说难度相当的大。
周日是最后的截止时间,我们周五才最终确立全部的系统结构。
用了整整23个小时无间断的工作,终于完成了这个一开始令我望而却步的项目,心里的成就感爆棚。
最后拿到满分的project 2
在这样紧张的学习节奏中,我也会去通过一些消遣的方式放松自己。
Berkeley的“乡土”气息慢慢地浸透进我的血液当中,紧锣密鼓的学习生活之余,慢慢地回味和享受着“伯村”的点点滴滴。
落幕,憧憬伯克利早中晚 经过Berkeley钟楼
为期两个月的夏校课程可谓是来也匆匆,去也匆匆。
无数次经过钟楼,无数次在图书馆目睹了最美的黑白交互。
两个月的Berkeley夏校经历让我收获了太多太多,除了最后还不错的总评成绩A-之外(要知道Berkeley本校的同学上CS 61B的平均成绩是B),我收获的更多的是对自己未来的无限遐想和憧憬。
之前并不知道是否能在CS这条专业路上走下去。
夏校的经历告诉我,我完全有能力和水平在将来申请硕士Master的时候,适应美国的CS体系,适应美国的生活和学习,更重要的,适应Berkeley的点滴。
我憧憬两年之后能够真正有机会,以Berkeley研究生的身份再次回到“伯村”,回到那个以自由为信仰的Soda Building,回到那个有着最美黑白交互的图书馆,那个上课必经的钟楼小道,还有能够经常看到到松鼠小精灵的树林栈道…
落幕,伯克利的难忘夏校。
永不落幕,伯克利的青春回忆。
© 2024. All Rights Reserved. 沪ICP备2023009024号-1