从P大到CMU:如何在本科学好计算机科学(微信群讲座记录)

本文记录自Daisy同学在AP计算机科学学习群内的微信讲座。对AP计算机感兴趣的同学和家长欢迎加小助手微信aadps1以获得入群邀请。


个人情况

我是北京大学的计算机科学与技术系的大四的本科生Daisy。我今天主要想聊一聊,如何在本科学好计算机科学。对于我而言,学习计算机不但是习得一种全新技能,而且是一种思维方式的转变。在进入大学学习计算机前我对编程几乎一无所知,编程领域的知识就是用pascal语言加循环画一棵命令行输出窗口的圣诞树。但是四年之后的今天,我觉得我成长了成熟了,在努力成为一个更加理性更加思辨的自己。我了解到大家基本都是高中的计算机爱好者,有志向在进入大学后就读计算机专业。那我就分享一下我这四年学习计算机的一些心得体会吧。

今天我主要就拿自己做一个例子,首先讲我眼中的大学的计算机专业包括什么,它的行业发展方向和就业前景。其次是个人对计算机专业课程、英语语言课程的学习经验。最后是计算机专业申请美国大学的一些点。

计算机专业

计算机专业都学些什么?我感觉我的大学四年都在想这件事。每次发现课程单上面各种神奇的课程,并且还是我的专业课的时候,我整个人就都是“天哪这也可以完全是新世界啊”的感觉。在我理解里面,计算机专业的主干包括:编程知识;计算机系统知识;人工智能包括图像处理、自然语言处理等的知识。更远一些的,甚至还有数理基础等等,它们影响了计算机中与一些算法理论分析相关的部分。

可能大家现在是懵的啊,人工智能、图像处理可能还听说过一些,计算机系统就有点一脸黑了。啊没事呀,简单来说,编程就是去写一些程序完成一定的工作,这个大家可能都写过Java Pascal C啊什么的会有一些了解。哎其实我现在也不知道你们会学什么语言写什么程序了,反正我在大学前对这些都是懵的,所以我觉得你们很厉害了!图像处理的话,像比较火的自动驾驶、人脸识别刷脸、小视频里面加贴纸一键瘦腿等等,都就用到了图像处理图像识别的技术。像计算机系统的话,比如说计算机为什么能运行起来,一个程序在执行的时候都发生了什么,这些比较底层一些的知识。其实整个计算机专业包括非常多的内容,具体来说就会体现在你未来一门又一门神奇的课程、神奇的项目上面。我也一直都在探索并且有新的发现。所以不用太担心,如果你们选择了计算机专业,会有很久的时间弄清楚这些都是做什么的。

我理解的计算机专业毕业生,和本专业相关的职业前景,主要有两类:

  • 成为一名科研工作者,在计算机领域的某些小且深的领域进行科研,为人类科学知识做出贡献。这样的科研工作者要求有知识的广度,同时更重要的是需要有深度:就是说,在你从事的这个极小的课题领域中,你应当成为全球TOP5甚至TOP1这种级别的人物。一般来说,这样的科研工作者会接受本科四年的基本教育和博士阶段五年左右的专业科研训练,成为一个成熟的研究员。一个人就要像一个军队一样的研究前进。当然这是非常艰难的道路,却也有很大的成就感。这样的科研工作者面向的职业有:大学中的研究员、教授等;公司中的实验室中的研究员。传统的大学中的研究员、教授比较好理解,毕竟大学一般都是从事科研工作的主力场所嘛,教授会带着学生做课题发论文等等。公司中的实验室的话,现在很多公司都流行自己建一个实验室,招一些做人工智能、信息安全等等的研究员。在计算机领域,公司所在的工业界和大学所在的学术界的交流是十分频繁的。所以有一些教授和博士毕业生会选择进入公司的实验室成为研究员。
  • 成为一名程序员,在公司的项目中编写程序,为新的产品新的应用做出贡献。最简单的,比如手机上各种APP的内在运行逻辑,这些都是程序员写出来的代码指导的。一名程序员的生活可能是这样的:最初先熟悉公司的代码,了解前人都写了什么。等相对熟悉后,针对其中的不足,写新的代码进行优化。如果程序需要新的特性,比如说应用要增加新的功能了,就在原来代码库的基础上进行修改。看着自己修改的部分进入代码库,最终出现在所有用户的手机里面,是一件很有成就感的事情。对于特别优秀的程序员,可能就是用一己之力支持一个初创公司的程序代码库,就特别有成就感。传说中字节跳动的创始人张一鸣先生,创业初期一个月写了十二款APP。我觉得他十分的帅。就算功利一点看,软件工程师是非常好就业的,所以学习计算机很棒啊。

学习经验

针对编程这块,我觉得在开始写程序之前要记得多想想。“要多想,在那之前要多想”是一本科幻小说《三体》里面章北海父亲的话,我蛮喜欢的就拿过来借用一下。先想清楚再开始。做事情之前多想想嘛,想一下思路框架,大概有一些感觉。最好不要一上来就是干,先怼出程序来再说。我们可以写精致一些的程序对吧。

从我个人的经验来看,写程序最困难的就是debug。程序会在各种鬼知道什么地方出问题,并且把人弄得十分崩溃。要想知道哪里出了问题,可能需要非常多的耐心、非常多的时间,最后还是很想哭。如果在开始写程序的时候想清楚一些,不管你后面乱不乱,至少整个思路框架有了,在debug的时候会好受一点吧。这个可以说是我写程序血与泪的教训,在各种项目里面debug许久之后的想法。可能做到这件事蛮难的,有的时候我自己也懒得这么干。但我还是抱有美好的愿景,希望大家至少尝试一下多想想吧。

当然如果你开始就想不清楚了,自己也不知道为什么写代码,也不知道要干什么,整个人都是晕的懵的。比如说在编程测试里面看到一个题感觉很茫然,甚至没有什么针对这个题的任何想法。那我个人建议你,不用瞎写挣扎就先放弃这个题吧。如果是自己做项目的时候,碰到类似的情况,那我个人建议先睡一觉多想想,至少有一些想法了再开始写程序。因为写程序实在是太脆弱太容易出错了。

针对英语语言,因为我了解大家可能是想申请美国的本科,英语语言应该蛮重要的吧。然后我自己是申请美国研究生的,所以就也考了好多次托福,感觉可以顺便聊一聊吧。我自己的托福最后上了105+我还蛮开心的。因为我感觉我整个备考都比较佛,第二次的时候突然就上了100 感觉是没怎么学就过了,所以后面干脆不好好学就考考开心开心了,倒也都还好。可能心态放好蛮重要的,反正托福能考很多很多次嘛。写作我觉得凡人就堆字数练打字吧。神仙们可能短的文章就能接近满分,但凡人需要堆字数。如果对自己的英语写作不是自信到一定程序的,我建议就老实点多练打字敲多点。反正我自己都是疯狂堆字数,最后都还蛮好的。口语的话我感觉说慢点说清楚点就还好了,不用太紧张的。阅读听力我感觉我没怎么练,也没有特别好,所以没什么好说的。你们不要学我不好好练啊,我觉得你们好好练就能特别好了。

申请的关键环节和女生身份的影响

女生身份对计算机申请的影响。下面我可能要说一些听起来政治不是很正确的话了。一直以来比较主流的观念是“女生身份在计算机学习中有劣势”。比如说女生的逻辑思维能力有所欠缺,从而不适合学习计算机等等。我觉得这些都是假的!女生在计算机学习上有着不逊色于男生的能力等等。反正我没觉得我由于我的女性身份,有体现出逻辑思维能力等等的欠缺。从我和我周围的姑娘们的情况来看,我也不觉得女生在计算机方面有什么先天的性别导致的劣势。

最重要的是在计算机领域女生有diversity,而在美国这种非常看重diversity的环境中,这是一种可以去利用的优势。虽然比较政治不正确,但是这是我的观念:女生在计算机申请和学习和工作等等都自带优势。比如说,有一些说法,在申请计算机专业博士生的时候,同等条件的女生更容易被录取。在求职面试可进可不进的时候,女生一般都能被放进去,男生的话要看情况来定。我个人是觉得女生学计算机享受这种diversity 真的是蛮好的。

计算机申请的关键环节:参加暑期科研或暑期学校,选择申请学校,写文书。参加暑期科研或者暑期学校,就可以理解成先去目标学校的教授面前混一个脸熟,希望建立自己的一点社交圈子。选择申请学校的话,我个人的理解是先要想好自己看重什么,对自己看重的东西是怎么排序的:你看重学校的名声,优秀的课程设置,一个舒服的地理环境,和高中小伙伴在一起的友谊,等等。先想清楚自己想要什么,然后去找一些对应的学校。写文书的话,我理解是要有一个中心线的想法,串起来自己的经历。素材的选择需要平衡深度和广度,需要有一些专业性,但也不能向论文一样艰涩。文书需要多改改,需要专业人士的指导。这方面可以咨询经验丰富的陈欣老师。

重要通知

本文著作权归原作者所有。了解更多AADPS学员的第一手感想。本文的原始发布地址是https://aadps.net/2022/14642.html。如发现其他自媒体盗用文章,欢迎粉丝告知或协助我们举报。

发表回复