从表面上看,CS难申最关键的原因就是僧多粥少。
互联网行业的毕业生薪酬非常高,国内很多CS专业的本科毕业生就已经能拿到1万以上的月薪,进入阿里、腾讯这种互联网大厂工作。
而在美就业的CS毕业生,也可以进入谷歌、亚马逊等知名公司工作,年薪5-10万美金不等。
行业的高薪吸引了大批想转入CS专业的人,但教师资源却不会在短期内有这么快的增长。
这就造成了申请者众多、招生名额不足的情况,所以大部分CS项目的录取率都很低。
此外,中国学生转CS难很大的一个原因就是我们的水平和美本的学生相比确实有很大的差距。这不是智力和能力的问题,而是资源的问题。
美国的CS本科招收的就已经是有编程经验的学生了。很多进入卡耐基梅隆CS专业的大一新生,在申请时就已经有了自己设计的App。
美国的中小学教育很早就引进了计算机编程的课程,而国内的编程课至今仍然只存在于部分国际学校,或者是课外兴趣班。
我们国内的学生在申请CS研究生时,很多只有3年左右的编程经验,而美国的竞争者已经学了7-8年,咱们已经输在了起跑线上。
CMU、Stanford这种牛校录取的申请者是什么样的背景呢?
大家可以参考一下这个CMU大四学生的简历,她会使用5种语言,6种编程技能,她本人是两个App的主工程师,在CMU的人机交互机构中制作了两个安卓App,还涉及到了自然语言处理这样的高级项目。
美国的CS学生普遍从高中就开始学编程,大学开始写小程序,做企业项目。
等到申请研究生的时候,他们已经有2-3个企业的合作经历,开发过自己的网站,写过一个能上线的APP,参加过数据分析类的竞赛。
而国内的学生大多是从本科才开始学习CS,主要的学习形式是授课和考试,实践机会少,学生主动实践的意识也不强。
在基础知识本身就比美国学生薄弱的情况下,实践经验还不足,竞争力自然很低。
了解了这些差距之后,我们要如何弥补呢?
CS专业的同学们应该最清楚,提升能力的办法就是多做项目。那么我们应该做什么项目呢?又要去哪里找项目做呢?
对于想要转专业申请CS的学生来说,他们还有另外两个问题:
上哪些课来学CS?
从哪种语言开始学CS?
我们先来看看有哪些项目可以做:
提升Programming能力的方法有很多种,在美本的学生要积极抓住Research和企业咨询项目的合作机会;在国内的学生要积极参与实习。
CMU的一位CS招生官表示,由于大部分国际学生都很难找到在校内做Research的机会,所以招生官会注重申请者的实习经历,从实习中看到学生的水平。
因此,对国际生而言,越早参与实习越好。另外,平时除了学习CS的课程,大家还可以去OJ, Leetcode, Topcoder这些网站刷题,提升自己的专业技能。
接下来回答非CS专业的学生的问题,上什么课?
在美国读本科的学生,在学校Minor CS就能够有效提升你的计算机编程能力。
择由很多转专业申请成功的案例都是在本专业基础上通过Minor CS来加分的。
那么在国内读本科的学生应该怎么办呢?
国内大学几乎没有开设计算机辅修专业的,非计算机专业的学生在选修课的选择上又有很多限制。
这种情况下,大家可以尽量选修学校的相关课程,无法选修的,通过Coursera或者Udacity这些美国认可的在线课程去弥补。
参考斯坦福的编程Minor设置和国内常见计算机选修课,我会建议大家在申请之前修完以下这些课程:
一门高数、编程基础、数据结构、算法基础、计算机操作系统相关课程、数据库相关。
请务必记住,申请中和你竞争的是那些至少修了6门计算机课的美国学生,不要让课程不足成为你的短板。
接下来说说学习什么语言。
如果你是完完全全零基础,可以先从Python或者Java起步。
一方面它的应用比较广泛,市面上有更多的实习机会;另一方面,这两种语言出成果比较快,计算机语言之间都是互通的,熟悉一门语言以后,再去学别的语言就会很快了。
本文作者
你可能还想看↓
10、本科学理工,不进工厂不做码农,研究生还能选择什么专业?
11、几乎没修过数学或商科课程的纯文科生,可以申请什么样的商科专业?
13、从选课到做Project,合理利用ECE的课程设置一样能刷CS职业技能!
想一秒领取择由团队100+小时整理的10个让本科非CS专业的学生也可以申请的CS项目资料包吗?
领取方式详见评论区↓