微信群讲座经典实录|CS&EE专业详解|苹果软件工程师一场讲座带你读懂CS&EE

 

主页君在此给大家衷心推荐这篇我们为大家整理的,看完让主页君有醍醐灌顶感觉的微信群讲座实录。讲座主题为CS&EE专业介绍。主讲Peter学长:加州大学伯克利分校EE&CS专业,本科和研究生学位,现任苹果公司软件工程师。...






主页君在此给大家衷心推荐这篇我们为大家整理的,
看完让主页君有醍醐灌顶感觉的
微信群讲座实录。讲座主题为CS&EE专业介绍。主讲Peter学长: 加州大学伯克利分校EE&CS专业,本科和研究生学位,现任苹果公司软件工程师。
1. EE&CS的基本概念


到底什么是EE?EE这个词的中文翻译有很多,我也查了一下国内的大学对EE的理解,国内好像分大概这么几个专业。一个叫电气工程,一个叫电子工程,还有一个是通信工程。在美国,尤其是本科阶段的EE是一个很宽泛的概念,就是我们暂且把它翻译成电气工程。今天这个电气工程基本上涵盖了几乎所有与电子、光子有关的工程行为。也就是说我们上面提到了国内的电气工程、电子工程和通信工程都属于我们在美国学习EE的范畴。而CS的概念就清楚得多,就是计算机科学(Computer Science),是系统性研究信息与计算的理论基础以及它们在计算机系统中如何实现与应用的实用技术的学科。计算机科学包含很多分支领域;有些强调特定结果的计算,比如计算机图形学;而有些是探讨计算问题的性质,比如计算复杂性理论;还有一些领域专注于怎样实现计算,比如编程语言理论是研究描述计算的方法,而程序设计是应用特定的编程语言解决特定的计算问题,人机交互则是专注于怎样使计算机和计算变得有用、好用,以及随时随地为人所用。
2. EE&CS专业内有哪些课程?
为了给同学们和家长们一个更加直观的认识,我这边也查了一下我最熟悉的,我们系里面的课。给大家简单介绍一下。课分以下几类,首先就是入门课,在伯克利如果你是主要做EE方向的,入门课是两节,一节就是信号与系统,一节就是微电子电路的导论。接着,你可以选择几个方向。一个就是做数字电路、模拟电路、数字信号处理的传统的EE的方向。

下一个就是可以做关于通信的方向,也就是我们国内比较熟悉的电信、联通、移动,他们所做的这个方面的内容。比如说华为建设的这种4G网络、5G网络、研究新的通信的方法之类的,是这个方向。接下来学生可以学习的是对于电力系统的学习,在伯克利,这节课叫introduction to electric power systems,就是你可以学习空间站是怎么供电的,对这种强电的控制,是这个方面的学习。以上的这些都是对于所谓我们说的电气工程涵盖的对于电子方面的工程行为。当然,现在的EE也包括对光子方面的工程行为,比如说在伯克利,就有一节课叫introduction to optical engineering,这个也是放在EE这个部门下来做的。

下一个领域,就是所谓我们说EE中更靠CS这个方向的,有这么几个课程。一个是machine structure,这是伯克利一节很有名的课,就是教你机器、微机内部是怎么构成的,有哪些部分,以及一些最简单的原理,如:如何设计芯片,如何设计一个硬盘,如何设计内存等等。与它类似的还有就是另外两节课,一节叫做 embeded system design,就是嵌入式系统设计。还有一节是introduction to communication networks,就是我们所谓的互联网,学习互联网的硬件架构,这些不光是硬件,也有大量的软件的知识在里面,这属于更偏向软件的EE的部分,也就是更偏向CS的EE的部分。
3. EE和CS的区别
至于二者的区别,我基本上说两个词,大家就可以理解区别在哪里。我们说EE,就是做硬件,CS,就是做软件,这么分有点狭隘,但是总体上我们是可以这么理解的 。

我们来举个例子,比如说你现在有一台电脑,电脑里装了一个最普通的windows Xp系统。造这台电脑,应该主要是EE的人来设计,但是你写里面的这个windows Xp系统,这就应该主要是由学CS,也就是做软件的人来设计。后面也会讲到,因为各种各样的原因,其实现在CS和EE的区别在逐渐的缩小。稍后会给大家详细解释。
4. EE&CS未来发展方向,优势和劣势
我们先来聊聊EE和CS今后发展的优势与劣势。我指的并不是行业的发展或者学术的发展,因为在行业上并不分优势行业或者劣势行业;在学术上也没有说物理就比化学强,或是化学就比生物强。我主要想讲一讲我们每一个学生个人今后的发展。简单来说,我们系大概70%的人更加偏向于软件,大概有30%的人更加偏向EE,也就是硬件部分。

EE的行业内竞争比较少,尤其在伯克利这个现象特别明显:CS的课一般开的都很大,四百人、五百人,但是,EE的课通常非常小,经常是50人、30人,也有稍微大一点80、100人,但大概就是在这范围里面浮动,它不会出现一个300人的课。所以我们可以说EE的竞争相对较少。

但是EE的最大缺点,就是就业机会相对少。通常现在做EE的公司都是近3、5年内出现的一批做EE为主的较大规模的公司,所谓做智能硬件的这种公司。这相对CS的创业公司来说还是要少的多,所以有些同学工作的时候如果倾向于小公司,那么EE可能并不能满足这方面的需求。

所以EE公司多是一些年数较长的、公司规模比较稳定的,这也就决定了EE的公司文化相对于CS就没那么年轻和活泼。同时,它的公司特点也因硬件本身特性所决定。我们知道,比如说你买一台电脑,即使你条件特别好,或者经常爱换的人可能也至少要过个半年、1年才能换。但是软件就非常不一样,比如说手机里下个app,我可能同时就可以下3、5个app,我这个app用的不高兴,我就再换个app,我们可能一天就下个好几个,这个就跟硬件形成了巨大的差别。

CS相对于EE对比就很明显,它有很多年轻公司是可以选择,同时也有些大公司,你对公司文化的选择可以更加的灵活一点,浮动比较大;但是缺点就是因为这个东西迭代太快,行业起起伏伏,可能前两年,你看着公司非常厉害,可能过两年它就没那么厉害了,再过个5年它就销声匿迹了。

这种事情,在美国硅谷是经常发生的。这个行业更新换代极快,不像硬件。现在的趋势是,硬件行业趋于稳定,但是CS的浮动程度还是非常大,这也算是有利就有弊。
5. EE&CS的垂直整合
正像我前面说到的,现在这个CS和EE涉及的产业,也就是所谓的IT产业,在随着更多的产业进行垂直整合,CS和EE的边界很多时候已经没有像原来那么明显了,很多东西也在跨学科交叉。

垂直整合英文叫vertical integration。怎么样算vertical integration?比如一些大的公司,当它做出一个产品卖给客户时,很多时候并不是光卖给他一个硬件,或者光是一个软件,公司给他可能是一种服务,或者说卖给他是的一种“结果”。客户并不在乎你是用什么硬件、什么软件,但他在乎的是一种结果。所以如果一个公司,它同时可以涉猎软件和硬件的话,往往对于它这个公司的产品的效果或者它的利润是会有更大的贡献的。

于是很多公司,现在也是倾向于这么做。最直接的例子就是苹果公司,它是自己做硬件,同时也自己做软件。这是一个比较浅显的例子,我再来举一个更加具体的例子:比如说Oracal这个公司(甲骨文公司)。其他公司通常会买甲骨文的数据库去存数据,所以有种语言叫SQL,有些有计算机背景或者经历的孩子一般都知道这个,这种SQL语言它是专门来解析数据库、查询数据库信息的。Oracal现在在做一个什么事情?通常这个SQL语言是用CPU来进行的,就是我们所谓的计算机的中央处理器,但是Oracal发现:如果平时公司数据库特别大,你要运行一条这样的语句可能要很久很久,于是,他们为自己的SQL语言专门设计了一种芯片,这个芯片就放在他们公司设计的服务器中,所以你只要买他们公司的数据库,买他们公司的芯片,这个芯片可以直接解析SQL语言。那这样产生了一个什么效果?本来你可能要80台机器才能达到的一个性能,现在10台机器就可以了。因为芯片很牛,价格可能要比原来更贵,一台机器卖原来3、4台机器的钱,但对它来说,除了研发的成本,它的生产成本实际上非常低。所以可能它这样就能多百分之好几百的利润,但对客户来说,因为要的是结果,他们并不在乎到底有多少台机器。他们从Oracal买了这个机器,买了这个带芯片的机器,同时也买了它的数据库,只要最后可以得到这样的结果,对客户都是一样的。这样到最后产生的结果,就是说这样的产业整合,给了Oracal更高的利润率,这是我们说的产业链。

在学术界这样的例子也非常多。我有另外一个朋友,他最近在跟我聊天的过程中说,告诉我他们在研制一种芯片,这个芯片能做什么呢?前段时间网上有个直播应该特别有名,叫做Alpha Go大战李世石。Alpha Go,就是我们所谓的机器学习,这是CS领域非常非常火的一个话题。他们做这个芯片是干什么事?通常机器学习是一个很耗时的过程,可能就要学个十天半个月,都是非常非常正常的。即使现在有些人,我们男同学可能更熟悉的,我们叫显卡graphics card,他们去做加速,但还不够快。所以他们就设计了一种专门的芯片,去做这个机器学习。机器学习里面非常具体的就是去做深度学习,可以让整个机器学习的速度有显著提高。这个芯片本身是一个EE的工作,但是你也并不能说它只是EE。这个芯片比如要卖100块钱,它这个芯片拿出来就什么也干不了,你只能做这个机器学习,个需求是一个非常非常软件的需求,所以,如果不是对两边都特别理解的话,是做不出来这么一个芯片的。

所以总结以上,也就是我前面说的:现在随着产业的整合,包括很多所谓的“交叉学科”,实际上EE和CS不能真正叫交叉学科。而是一个学科的两个方向,有时候在实际应用中也会越来越往一个方向发展。所以,即使你是一个学CS的人,你可能也要懂点EE的知识;你即使是一个学EE的人,你可能也要懂一些CS的知识,因为这些学科的区分正在变得越来越小。
6. 学EE都可以做什么工作?
下面我们要说到的就是一个比较现实的问题,因为我们前面专门讲过一场关于CS的,所以我就集中在EE上讲。就是说如果你EE学好了,哪些种类的、哪些方向的工作你可以去做:首先你可以做一些电子产品的设计,比如说我有一个朋友,他在Next工作--google旗下收购的那家做智能家居设备的公司(比如家庭的智能温控、家庭的烟雾探测、家庭的二氧化碳探测,包括家庭的security camera,包括监控摄像头的开发)。这些东西,你学EE是都是可以去做的。第二块,就是所谓做控制系统,比如我另外一个朋友,他在Tesla,就是美国现在很火的电动车公司特斯拉。他做车辆里面对电池的控制系统。具体的问题是怎么去布这个板,怎么去设计这些对于电池的控制,怎么去做测试的控制,这都是所谓的控制系统。

另一个你可以选择的工作类型,就是所谓的电网公司,比如中国有国家电网,美国西海岸有PG&E,叫太平洋电力瓦斯公司。除此以外,你还可以做芯片设计,比如说在intel做电脑cpu,包括现在很火的高通,英伟达(男生玩游戏可能会熟悉一点)。在英伟达你可以去设计显卡啊这样不同的芯片,当然了就是做EE的事情。还有很多同学会去选择做测试工程师,或者生产调试工程师,比如我们知道的苹果:苹果生产iPhone,它是在美国设计,但是在中国生产的。生产的过程中很多东西你不产的时候你并不知道你某一个设计是有问题的,你只有到了生产阶段你才会知道哦原来这样设计会有点问题。

比如举个例子:你可能把两根线设计的太近了,两根线设计的太近了有什么问题?在生产过程中发现量比率特别低,做出来都是坏的,因为你设计的太近了,那怎么解决?就需要有这种大量的工程师去做驻场工程师,就是在你生产的阶段去做最后的改设计,当然不可能大改了,就是一些小改。而这些在生产阶段会做最后的调试,包括你生产线上的质量管控,这些都是尤其是对硬件公司非常非常重要的。
7. 所以,EE&CS究竟怎么选择?
下面一个问题,就是最后一个问题,就是EE与CS我该如何选择?我前面也说过这么多,就是说什么是EE,什么是CS,EE有什么优点,EE有什么缺点,CS有什么优点,CS有什么缺点,我该如何选?我觉得大部分的同学并不太需要在本科阶段纠结这个问题,为什么?因为大量的CS和EE基础课是非常的类似的,而且即使是你完全确定以后一定要学CS,或者一定要学EE,我也建议你在另外一个领域选一到两门课。可以不选多,你选一到两门基础课,这些基础课在好多大学,比如在我们学校是必修的。就是说EE和CS在我们学校你可以双修,你也可以往某一方向单修,但是有6门基础课不管你学哪个方向都必须要修的。所以刚进学校以后,随着这些基础课的学习,你会对EE和CS的区分有一个更加直观的认识,在那个时候再做选择也不迟。

当然了我觉得最最重要的,关于选择的问题,我觉得还是应该按照兴趣。因为正如我前面说的,EE虽然就业的机会稍微少一些,但它的竞争可能也比较少。CS的就业机会虽然多,但是竞争也大,学的人也多。所以,你就如果按照就业为导向去选择的话,可能并没有什么意义。所以我觉得大家还是更多按照自己的兴趣去寻找,而且EE和CS这个东西可能很多人觉得它们俩跨度还有有点大,不过在我看来,现在这个东西的跨度已经越来越小了。而且我也认识很多我的朋友,比如本来是主学EE的,最后找了一份软件工程师的工作;或者是主学CS的,他现在去做跟EE相关的东西。如果你现在不是确定,那么就按照兴趣选!以后即使你想换,也并不难。我觉得CS和EE转换的难度可以说是最小的。就是刚才的讲话里面有很多专业的术语、专业的term还没有上本科的同学可能并不理解是什么意思,不过这个没关系,你们后面学到的时候就会知道这个是什么意思、那个是什么意思,都不是什么复杂的内容。
8. EE&CS本科教育有哪些差异?学校怎么选?
有另外一个朋友问,美国各学校CS和EE在课程设置上差异大吗?差别在什么地方?本科的教育实际上都是非常统一的,包括课程的设置、用的教材。当然Professor倾向于用自己编的教材啦,因为教授都很牛,他们就说你们写的书都没我写的好,我上什么课就用自己写的书上。

但是如果具体说选择学校怎么选的话,我的建议是说可能更多你可以考虑到别的方面,比如说这个学校的文化,周边的环境。

我们拿伯克利vs. CMU来举例。伯克利和CMU在EE和CS方面都是很强的两所学校,你看每年各大的顶级会议基本上他们发的论文都是很厉害的,都是非常多的著名的教授,也都得过很多著名的计算机的奖项,应该如何选择?当然我是回答这个问题是不客观的,首先我对一个的了解要远大于另一个,而且我说这个话肯定说有偏向性的,但是我真的认为生活上面伯克利要更加好,就不说靠着旧金山、靠着硅谷这一个优点来说,我们就说最基本的生活,说吃。那我绝对相信,伯克利吃的要远好于CMU。

伯克利和CMU相比有什么缺点呢?还是我前面说的,如果是CS的方向,现在一般伯克利的课人都比较多,你如果是那种同学下课了就跟着教授唠嗑,或者说喜欢小班的环境,喜欢私立大学那种高大上的感觉,那肯定CMU要更加合适。我看到很多同学就是不知道是不是在湾区还是对伯克利感兴趣还是看到我是伯克利来的,所以问了很多关于伯克利的问题,我在这边简单回答一下。就是伯克利的CS专业想保持gpa3.3是一个什么难度。我觉着这是因人而异,这是一个比较难回答的问题。不过有一点,CS好的几个学校里面,除了Stanford给分是相对松一些,其他几个学校,MIT,CMU,伯克利都是想拿gpa相对比较难的,所以大家学这个也是要相对做好一个心理准备。
精选答疑

AI(人工智能)的方向有哪些具体的课程?


如果是本科阶段,人工智能方向有一门叫做人工智能导论,CS1-88,还有一门是CS1-89,就是machine learning,机器学习导论,还有一些研究生的课也是可以在本科阶段带着上一些的,比如有一门叫做CS2-88,叫自然语言处理。

我们在选校时主要看什么因素?




我觉得可能相对来说专业排名相对更加重要一些,因为专业排名很多时候代表的是系的一些实力,包括这个系在全美的知名度,包括发了多少的论文,教授的水平,同时排名也能可以代表这个系的规模,以及学校对这个系的重视程度。当然这个也要看情况而定了,所谓的专业排名、或者综合排名,都是不考虑地域因素,不考虑生活因素,我觉得学习是一个综合上的事,所以还是要综合的来看。

学EE,需要读研究生么?




学EE,通常我认识的朋友大部分是要读研究生的,因为我觉得可能也是跟这个行业相对比较成熟有关系。相对比较成熟了以后,新晋的人不是多,不是多,high count能比较有限,就挑几个比较好的。就是我分析啊,可能大家就更愿意要一个研究生学历的人。而且,通常这种芯片设计,我觉得,包括数字信号处理这些领域啊还是需要更多的学术上的支持的,所以研究生对于EE来说通常我是比较建议的。

之前没接触过CS/EE,大学也能学吗?


然后有同学问说,过去没有相关的学习经验,是否适合?我个人接触CS早一些,但是我也认识很多同学,从来没有接触过,本科之前从来就没有碰过这个领域,但是本科也学习的非常出色。所以我觉得也不是一个必要条件。还有就是对数学的成绩,对数学的成绩要求实际上不算特别高。讲到这个CS对数学的要求,虽然总体不算特别高,但是有些领域可能是要求的还挺高的,比如说做算法研究对语感数学要求比较高;然后当下最火的机器学习,那个是我觉得所有在CS里面对数学要求最高的。当然了,如果你是做图形啊,或者视觉方向,那对你的线性代数的水平要求我个人认为也是挺高的,但总体上我觉得CS不算一个对数学要求特别高的学科 。

如何从CS小白到有能力可以研究AI(人工智能)?




研究AI就是看你怎么定义研究了。如果你是说如何从啥也不会到你能做AI的PHD,或者能发顶级会议的论文,或者是以后能做教授,你可能要通过一个非常漫长的本科学习、研究生学习、博士生学习,会需要一步一步的积累。如果你只是说对AI有所涉猎,比如说可能做不了alpha go,但是alpha go的作者上台做个presentation,我就可以看懂他在说什么,这个并不是很难。基本上就是你本科上个几节课就可以达到的水平。就像我,我对ai基本就算是啥也不会,也就是本科上过两节AI的课,我现在去看alpha go,大家可能觉得还是有点深奥的东西,那个presentation,基本上从头到尾都可以理解他在做什么。我觉得如果你是想达到这样的效果,那我觉得是比较容易实现的。

所以最后总结一下,这两个专业的发展前景是非常好的,而且暂时也没有衰落的趋势。就业上也比较有优势。至于选择,我强烈建议大家在学过相关课程对它们有一个具体了解以后,结合自己的兴趣再做出选择。

以上就是我本次的讲座,谢谢大家,也谢谢棕榈的组织。
-The End-


    关注 棕榈大道本科留学


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册