小越越发现啊,自从上次分析了美国大学人工智能排名的情况之后,不少家长都动了心思。是不是可以让小孩去美国读计算机科学 (Computer Science,简称CS)?不同于中国高校独立的人工智能专业,美国大学里的人工智能一般是计算机科学专业下设的一个方向。

全球知名求职引擎Indeed上个月发布了一份报告,统计并总结了全美40万人工智能及IT领域从业人员过去3年的薪资水平。其中,数据工程师和机器学习工程师平均年薪达13万美元,软件及开发工程师平均年薪为10万美元,而同年美国就业者的平均年薪才4.3万美元。中国人工智能领域的人才缺口更大,工信部教育考试中心副主任周明曾在2016年向媒体透露,中国人工智能方面人才缺口超过500万人,供求比例大约只有1:10。
 (注:上图数据主要为硕士及博士起薪)
前来咨询我们的家长中,甚至有一部分人的小孩此前并没有接触过编程或者计算机理论。那么,对数学、工程学、游戏或者设计感兴趣的同学们能否报读CS呢?
当然能!今天小越越为大家请来了这一领域的“骨灰级玩家”,一位毕业于伊利诺伊大学厄巴纳-香槟分校的CS博士。让他给大家讲讲美国的CS究竟长啥样,怎么学,需要注意什么?
本期嘉宾
问答实录
Q1. 美国大学CS本科在开学之前需要做哪些准备?是否需要提前预习功课?
本科CS课程中,编程占小部分,计算机科学理论相关课程是大头。
因为美国高中有编程训练,所以大学里编程课有限,入学前熟悉一门编程语言比如C++或Java会很有帮助。美国的很多大学在本科阶段会开一门比较理论化编程课,叫函数式编程,这门课入学后学就可以。
计算机科学理论相关课程,包括算法、数据结构等等,是本科学习的重中之重,如果上学前有基础会更轻松。
以卡耐基梅隆大学的BS in CS (Bachelor of Science in Computer Science)为例,如果新生以前没有编程学习经验,可以进修Fundamentals of Programming and Computer Science (编程语言及计算机基础,不计学分)。
第一学年的课程中,涉及编程语言的有Principles of Functional Programming (函数式编程)和Principles of Imperative Computation (命令式编程)。但是这些课程都不是教你具体某种编程语言的,例如C,C++,Python,Java等等,而是教你编程的思路。其他的课程基本上是数学知识,计算机系统入门和算法这些的。如果觉得自己的计算机语言方面有所欠缺,建议入学后报名学习基础课程,会有很大帮助。
Q2. 进修CS是否需要一定基础?零基础学生如果想选择CS您有哪些建议?
需要有一定的编程基础,临时学不是不可以,可如果你周边的同学都会一两门编程语言,而你还要临时学,到时会比较累。
对于零基础的学生,建议入学前自学或上一个C++或Java编程的短期培训班。另外,算法和数据结构是所有课程的基础,建议先自学最简单的数据结构和算法知识。
想学CS的各位,千万不要有拖延症哦,能在学校外解决的问题就不要留到正式入学了。至于那些想自学C++或者Java的同学们,我敬你们是条汉子
如果有去外面机构上课的话,3个月就能基本掌握一门计算机语言;自学的话就看各位同学的领悟能力和毅力了,一般3-6个月不等。不过就算是掌握了,以后还得不断地练习和实践,否则当你拿到一个具体的课题还会一脸懵逼。计算机语言是一个终身学习,终身完善的课目。刚开始学的时候可能很枯燥乏味,但入门之后的学习速度会成倍地提高。而且已经掌握了一门计算机语言的话,触类旁通,再去学习新的语言可以节省20-50%的时间。
(看看你该从哪种语言学起

Q3. 中美的CS专业有何不同?对于时间管理您有什么建议呢?
体制不同,中国高校比较轻松,而美国大学则学习压力大,几乎每门课都很累。没有捷径,最好的时间管理办法是提前掌握部分相关知识或技能。
以斯坦福大学CS本科的大一课程为例,这是CS107 (Computer Organization & Systems)的一个Assignment,分为5个编程任务,并要求学生如果可能的话最好在自己的代码中加入注解。从Assignment发布到截止时间为两周。
图源自:斯坦福大学官网
小越越找到了几位正在美国读CS本科的同学并且询问他们大概需要多久时间完成。最短的回答是需要一周,最长的回答是需要两周。而且都是建立在同一个前提下:除了吃饭睡觉上课就是写代码……美国的CS专业虽然“钱途”一片光明,但也不是没有代价的。
于是,时间管理就变成了CS学生必须掌握的武器。如何在有限的时间里完成最多的任务,学会最多的东西?你不是在和别人赛跑,你在和时间赛跑。要学会把时间当做成本,把知识当成收益。
Q4. 以UIUC为例,本硕博不同阶段的CS有何不同?
UIUC的CS学位分本科、硕士和博士,其中硕士有需要写论文和不需要写论文两种,博士都要写论文。UIUC/CS在工学院,授予的是工学学位,细节可参考学校网页。
这里小越越再补充一句,UIUC是提供CS学位5年本硕连读的哦。各位如果有志于在CS领域深耕的程序猿
可以了解一下。
UIUC硕士学位中需要写论文的是Master of Science in computer science (M.S in CS),不需要写论文的叫The Professional MCS program。后者相较于前者更加灵活,不仅可以在学校全日制上课,也可以通过在线学习获得学位。但是MCS的课程安排相较于MS也更加紧凑,学生需在一年内修满92~100学分 (根据选课不同有所不同)。
图源自:UIUC官网
Q5. 如果条件允许,您建议CS专业的学生辅修什么专业或课程呢?
如果本专业学习有富余时间,可跨学科选课或双学位,内容根据自己兴趣而定。建议多学点数学方面的知识,比如统计和概率等,它们是热门的领域大数据和人工智能的基础。

陈老师在这里特别突出了数学的地位,不过数学和CS到底有何联系呢?
往回看,数学是计算机的基础。二进制的0和1既是机器的语言,也是数学的语言。当下,函数式编程正在逐渐成为潮流,利用数学思维可以大大简化代码,减少工作量。向后看,数学将赋予冰冷的数据新的生命,让他们更容易被程序收集和分析,进行大数据计算,为人工智能铺平道路。
很多美国大学的CS本科已经把Math当成必修课来对待。除了必修的数学课之外,如果学有余力,小越越强烈建议各位同学选修更多高阶的数学课程。
Q6. CS专业的本科生在校时如何获得亚马逊、谷歌等大公司的实习机会?
本科学生可以自己投简历或由教授推荐。建议早点进入教授的实验室参与科研,从而获得更多的机会。

关于如何申请CPT(在校期间实习)或OPT(毕业后实习)小越越就不在这里啰嗦了,大家可以自行百度。不过,该如何让自己的实习物超所值呢?各位CS本科生无论是打算回国还是继续留在美国读研/工作,能被IT界的大公司相中那都是极好的。
和国内不同的是,在美国实习是一件很严肃的事情。例如,Facebook接受你大三时前去实习,那基本意思就是:你大四毕业后可以来上班了。实习期间,公司里面的其他员工也会把你当成正式员工对待,而不像国内实习就是打杂,端茶递水的。但是这也意味着,实习生是真正去干活,去解决问题的,你可以切身地体会到一名程序猿的24小时要怎么度过。
陈老师还提供了一个很好的建议:通过教授推荐。美国的高校和企业紧密结合,特别是IT行业,各家大企业从学校就开始“抢人大战”。而最为便捷的方式,毫无疑问就是通过各个教授去发掘他们底下的学生。一般从大三、大四开始学生就有机会可以参加教授主导的科研项目了,一定要想方设法挤进去。有了教授的推荐信和人脉,事半功倍。
如果自己申请的话呢?毫无疑问难度会很大,可是也不是没机会。以亚马逊的Systems Analyst Intern (系统分析师实习)为例,本科生毕业是可以申请的。
图源自:www.amazon.jobs
“Basic Qualifications (基本要求)”很多人都能达到,也体现不出你的竞争力。大家要重点关注“Preferred Qualifications (进阶要求)”这一栏,这里才是厮杀的主战场。比如,你掌握了几门计算机编程语言?你有没有运营大型系统的经验?有没有操作过负载均衡器、网络交换机、路由器?有没有复杂系统中的故障模型分析经验?……
这其中有些要求的在本科阶段可能无法在学校里接触到,可是如果先去其他较小的IT公司实习呢?有不少在脸书、谷歌这样的大公司上班的中国人也不是一步到位的,而是“曲线救国”。他们先在其他IT公司里实习,最后一跳才瞄准大型的IT公司。CS专业的学生最长都可以申请3年的OPT (因为CS专业属于STEM范围),在这段时间里足够大家从容地规划和准备了。
Q7. CS本科毕业后如果在美国或国内相关领域求职,需要做哪些准备呢?
除了准备CV,建议将网上的各种本专业的面试问题搞熟悉。

求职和找实习类似,一切都以目标公司的要求为准。如果你很早就有去某家公司就职的打算,那么在学校期间就要让自己尽量接近他们的职位要求,最好能争取到一个在校实习机会。如果没有很明确目标的话,可以在实习期间好好了解各家公司的薪资待遇以及后续发展等等情况再做决定。
CV的准备要简洁,突出重点,让HR可以在最短的时间内知道你的优点和亮点。写完了之后可以拿给学校里的就业顾问 (Career Advisor/Consellor),学长或者教授看看,他们的意见可以让你快速地发现简历里面有哪些问题,要怎么改进。
(CV示例)
特别是在国内的公司求职时,一定要准备好面试。比如,当HR问到“你的预计薪资”或者“你对加班的看法”这类的问题时,不要蒙圈。你可以上网求助,咨询朋友、父母、亲戚……总之提前准备,千万不要让自己的才干被糟糕的面试技巧埋没了。
写在最后
在采访的最后,陈老师还特意写下了给CS留学生们的一段话。这既是来自学长的鼓励,也是来自资深程序猿的提醒。
对于有志出国的同学,我加一句题外话。计算机科学或人工智能是一门艰苦和乐趣同在的专业,在校期间及工作以后,要有随时熬夜调试代码的准备,这种节奏会伴随整个职业生涯,可能在进入管理层后才有所好转。特别需要提醒的是,由于中外文化及市场情况不同,中国的程序员做到35-40岁后就有迫切的转型压力,而国外文化对选择终身写代码的程序员则宽容多了。
想了解更多关于美国计算机科学专业及人工智能课程的资讯?
更多疑问可资讯下方微信↓↓↓↓↓↓
想了解更多的活动以及留学咨询?
欢迎持续关注留学早课堂公众号 


回顾往期分享:
继续阅读
阅读原文