本科 CS
|
大家说说看,爆红的ChatGPT工程师既有清华的也有华中的,为啥没印度IIT的?不过我可以预言做大之后一定会被IIT占领
公司一旦做大,就会被老印完全占领,不信师母已呆
CS最火本科学校排行榜(按CS毕业生百分比排序)
1. CS最火的是Caltech高居榜首,MIT紧跟其后,CS毕业生都在30%以上。 2. 哥大,普林斯顿CS毕业生比例高过CMU,UCB,排在6,7 位。 3. 大多藤校私校CS比例超过公立一倍以上,学生赶趟CS的积极性最高。 Data Source: National Center for Education Statistics https://nces.ed.gov/collegenavigator/?q=...0#programs% CS Students College CS Total CS Student % 1 Caltech 77 218 35.32% 2 MIT 330 1100 30.00% 3 HMC 48 227 21.15% 4 GIT 847 4045 20.94% 5 Stanford 273 1602 17.04% 6 Columbia 315 2209 14.26% 7 Princeton 172 1257 13.68% 8 CMU 215 1618 13.29% 9 UCB 1166 8789 13.27% 10 Brown 209 1677 12.46% 11 U Michigan 982 8021 12.24% 12 Cornell 457 3781 12.09% 13 Rice 118 1026 11.50% 14 Duke 210 1850 11.35% 15 U Maryland 945 8448 11.19% 16 North Eastern 483 4461 10.83% 17 Amherst 52 505 10.30% 18 Harvard 162 1697 9.55% 19 Yale 125 1420 8.80% 20 North Western 180 2063 8.73% 21 UPenn 239 2869 8.33% 22 William College 42 513 8.19% 23 Swartmore 33 419 7.88% 24 JHU 110 1437 7.65% 25 Chicago 101 1746 5.78% 26 UW 481 8648 5.56% 27 Purdue University 419 8467 4.95% 28 UTA 456 10374 4.40% 29 UCLA 348 9265 3.76% 30 UIUC 292 8417 3.47%
CS本科的三种flavor:计算机学院的CS,工学院下的CS,文理学院下的CS。
选CS program 很重要的是看学生的特点和Program是不是匹配。大学里计算机本科教育大体有三种类型,他们有不同的core curriculum。计算机学院的CS 本科是CS CORE;工学院下的CS 本科是工程core;文理学院下的CS 本科是 Liberal Art Core。本科CS模式的选择肯定会对学生将来的专业特点有很大影响。 计算机学院的 CS CORE Curriculum偏重计算机理论/数学/CS 专业广度和深度教育。整个课程设置围绕CS进行。代表是 CMU SCS,清华计算机学院,GIT,UW,Purdue。这类CS学院很多是从应用数学系衍生出来又扩展成独立的学院。它的Core一般以CS/数学为核心,目标是培养受到严格科班训练的计算机科学家和工程师。教学偏重纯CS领域,比如AI,ML,NLP,人机接口,Robotics,语言设计,操作系统,软件工程,计算机理论,等等。General Ed不是重点。这类学校CS课从大一贯穿到大四,除了更多严格的数学和理论训练,也要参加很多大型复杂的课程设计和参加更多高级专业课。 工学院下的CS专业要求工程CORE,很多拿EECS/EECE degree。 目标是培养受过电子和计算机教育的计算机电子工程师,偏重软硬件结合。这类学校以MIT,Stanford,UCB EECS, UIUC,Cornell,UM为代表。这些program一般是工学院下设的一个系,很多已经扩张得很大, 多是原来EE系衍生出来的。因为CS系要和工学院的其他系分享资源,发展受到一定制约。学生基本功和计算机学院的相当,CS教学针对性弱些,尤其在纯CS领域。但在和硬件相关的交叉领域有一定优势,学生也被公认为硬核。在TECH界和CS学院出来的痛受欢迎,侧重点又略有不同。 第三种是文理学院下设的CS专业,很多藤校和公校的文理学院,一般文理LAC下设的CS系大多属于这类。这些program大多是Liberal Art Core。教授人数相对较少,教学任务较重,科研一般不如计算机/工学院强,领域相对窄。学生要上更多人文科课,CS课相对要少些,偏重基础,但教学的深度和广度不如计算机学院和工学院下设的CS program。学生社科方便知识面广,社交能力更强,大厂很多PM来自这类program。数学特强的个别学生去做quant也不错。
想当然了, 并没有所谓第一第二类之分野。只是每个学校CS规模大小/方向多少之别。在M和S,你想要CS多硬核就有多硬核
还可以和超一流数学系,工程系合作研究, 或者纯CS钻牛角尖也可以, Cal 也是如此
一篇分析CS四大名校的文章
斯坦福大学-它应该被称为“创业学校”,因为那里似乎每个人都有创业热。创业精神一直是斯坦福大学的血液,可以追溯到惠普时代,但现在看来真的很疯狂,源自于硅谷的声名远播,他们崇尚bro-grammer types。每个人都想成为马克·扎克伯格那样的人,他甚至没有完成CS学位,用高中时学到的知识建立了一个帝国。 斯坦福也是四所学校中最悠闲的一所。斯坦福管理层可能是彻头彻尾的不重视教学,课程很简单,如果你聪明的话,你可以轻松拿A,还有时间创业。斯坦福大学比我见过的任何一所学校都更喜欢选择题考试。如果你在SAT/GRE考试中表现出色,那么这应该不会太难。 当我在2000年初去斯坦福的时候,他们仍然热衷于使用老式的sunsparc工作站。如果你不知道这些是什么,请阅读有关太阳微系统,特别是它与斯坦福大学的历史。基本上,这是一个无人真正使用的UNIX环境。它是真正的UNIX,不是Linux。太阳微系统公司甚至已经不存在了,因为它们被拉里·埃里森的帝国甲骨文吞没了。我发现斯坦福大学仍然在使用这些太阳机器很有趣,因为校园里的其他一切都给人一种现代的氛围。 斯坦福大学CS课程的另一个突出特点是,一年级的学生必须学习C和指针算法,这在许多面向对象的CS课程中是不用的。不过,这一切可能都变了。我听说近年来,斯坦福大学大力推动非计算机专业学生上第一年的计算机课,以至于它现在是整个校园里最受欢迎的课程。很显然,他们现在已经有了一整套制作iOS应用程序的课程,这无疑是为了满足那些初学者的需求。 伯克利-伯克利是一所知识分子学校。最近几年,他们有点像斯坦福这样热衷搞初创公司,但这并不是伯克利真正的目标。伯克利是要用大胆的创造性智慧来解决明天的问题,而不仅仅是今天的炒作。换言之,如果你去了伯克利,除了如何制作一些移动应用之外什么都没学到,伯克利会觉得他们辜负了你。那不是去伯克利的理由。在斯坦福,如果你做了一个赚了一大笔钱的应用程序,就算在你的CS课上什么都没学到,他们还是会为你高兴的。这就是我在斯坦福和伯克利之间看到的主要哲学差异。 但在其他方面,伯克利和斯坦福的计算机实际上有很多共同点。如果你知道UNIX的历史,有一个叫Bill Joy的家伙,他在70年代曾经是伯克利的一名博士生,他在伯克利创建了BSD UNIX,这使伯克利CS出名。他还成为了太阳微系统公司(sunmicrosystems)的创始人,这家公司向斯坦福出售了他们所有的计算设备。因此,伯克利和斯坦福都是UNIX学校,由billjoy的UNIX团结在一起。 在伯克利CS,我看到的大多数电脑都运行着BSD UNIX操作系统的更现代版本——OSX。没错,伯克利到处都是Mac,至少在CS部门。在校园的其他地方,它是mac和古老的Windows pc的混合体。如果我没有记错的话,在CS中使用的远程登录机是Linux。基本上,伯克利的计算硬件没有什么了不起的,它既不是最先进的,也不像我在斯坦福看到的SUN机器那样超级复古。 据我所知,第一年的课程混合了Java的面向对象编程、C的底层编程和LISP的函数式编程。我的记忆力可能有点差,我从来没有在那里上过一年级的课程,所以最好自己去确认一下,但我记得伯克利似乎有着最平衡的一年级课程。他们试着教你一点所有的东西,相比之下,许多学校可能只教你一种编程语言和方法。 除了教你实用的东西,伯克利大学在理论计算机科学方面也很强。这一直都是事实,尽管斯坦福大学有一些重要的人物,比如克努斯(似乎已经退休了),但我要说的是,伯克利在理论上比斯坦福更强大,同时仍然保持着它的黑客资格。伯克利的数学系离计算机科学系只有很短的路程,它是一个真正的发电站——世界上最强大的纯数学系之一。如果你想解决(或者仅仅是学习)计算机科学中真正深刻的理论问题,比如P vs NP问题,我认为伯克利是最好的地方,让他从四大计算机学院中脱颖而出。 伯克利的校园可能不那么优雅,除了CS大楼和几栋较新的建筑之外,大部分校园都需要重新粉刷内部。例如,看看数学大楼,卫生间里到处都是涂鸦。这是伯克利,一所公立学校,很接地气,没有自命不凡。我并不是说校园非常难看,但与斯坦福大学相比,伯克利是为那些不以封面来评判一本书的人准备的。 很多人认为伯克利在政治上非常自由,比较左,但如果你是一个保守派,这不应该把你吓跑。我发现在伯克利做一个保守派至少比斯坦福容易。斯坦福大学的嬉皮士自由主义者较少,但SJW自由主义者较多。如果你知道其中的区别,一组人通常支持言论自由,另一组人则反对。我认为,伯克利也有更多的保守派。比如说,最近我在电视上看到的骚乱,我不确定伯克利是否仍然是言论自由的安全地带,为了安全起见,我现在只会避免涉及政治。有点遗憾-我在那里的时候肯定不是那样的。 伯克利最大的缺点是,校方真的是官僚作风,会把你当成墙上的苍蝇一样对待。谢天谢地,那里的大多数教授都不是这样的,我和计算机系的教授相处的经历非常积极。当他们遇到一个真正想突破界限的学生时,他们非常支持。在斯坦福,教授们似乎更冷漠,更不平易近人。可能只是我的经历。总的来说,伯克利的经历非常棒,我想我最喜欢那里的文化。 麻省理工学院-我个人认为MIT CS有点被高估了,生活在黯淡的荣耀中。希望,MIT的人不会被我的话所激怒,因为他们对自己母校非常自豪。 在个人电脑革命之前,MIT CS是很顶尖的。一般来说,这里就是黑客文化的起源。与此同时,我认为MIT的人生活在他们自己的世界里,有点忽视了我们其他人,这导致他们在计算方面的相关性随着时间的推移而缩小。 从历史上看,MIT开发的很多东西从未在MIT之外起飞,其中一个原因,我认为,是因为MIT可以负担得起比其他地方更强大的计算设备,所以,当他们开发软件时,他们从来没有真正关心过自己的软件是否能在低功耗硬件上运行良好。 例如UNIX,它不是麻省理工学院开发的,当时是专门为在廉价的低端计算硬件上运行而设计的。伯克利和斯坦福大量采用了UNIX,他们的CS课程也深受其影响。伯克利和斯坦福的黑客文化是建立在UNIX的哲学基础上的,UNIX的哲学就是编写非常高效的流式代码,效率胜过优雅。在个人电脑革命初期,这一点变得非常重要,因为与上一代人开发的电脑相比,第一代个人电脑相当原始。 MIT的黑客哲学在今天的Emacs中最为明显。尽管史泰尔曼从未正式成为MIT的学生,但他当时也是黑客文化的一部分。Emacs应该只是一个文本编辑器,但是如果你曾经使用过它,你就会知道它有一个除了厨房水槽之外的所有东西的设计理念,这使得它当时在大多数计算机上运行都很痛苦。不管MIT是否值得这样的刻板印象,我肯定会把过度设计和缺乏实用主义与MIT的教育联系在一起。 在CS课程中,MIT几十年来一直使用Scheme编程语言来教授第一年的CS课程。Scheme本质上是LISP的一个版本,从未在学术界以外的任何主要软件项目中使用过。如今,很少有软件项目使用LISP,使用Scheme的更少。你可以对函数式编程的价值,以及Scheme作为一种语言的教学之美提出各种各样的论点,然而,这些论点都不能反驳没有人使用它的事实。 与学习C不同,Scheme不会教你任何关于指针算法的知识,也不会让你了解代码在硬件上的实际运行方式——你知道,只有在你关心优化代码以提高效率的情况下,这种东西才是重要的。 换言之,我所知道的其他学校的CS课程都试图首先教给学生一门在他们离开学校后立即对他们有用的语言,而MIT向学生灌输一种玩具教育语言Scheme,至少他们是这样做的……直到几年前他们转向Python,可能是因为他们毕业生简历中的Scheme很难打动人,但是Python仍然不会教你指针算法,也不会教你自己做内存管理的繁重工作。 我想说的是,我从来都不是MIT的学生,但我知道他们教育理念的一切都让他们成为反斯坦福的人。他们根本不关心这个行业想要什么。他们的毕业生也许还能在工业界找到工作,因为MIT的牌子很有分量,但别指望MIT以外的人会关心你在MIT学到的东西。另外,不要指望MIT会沦落到教授一些可能对你的初创企业有用的东西的水平,比如构建iPhone应用程序的最佳实践。如果你想学习如何做任何实际的事情,你就靠自己了。 MIT会很好地教你计算机科学的基础知识,但大多数体面的大学计算机课程都是如此。老实说,光是这一点不应该让MIT成为四大计算机名校之一。70年代以来,尽管计算机科学的基础并没有发生太大的变化,但是麻省理工学院的课程对一所自称是最好的计算机专业来说似乎不太相称。比如他们的算法课程似乎也没有比70年代教什么新的东西。我看了他们的标准算法课程,我只看到一些枯燥古老的东西,无论如何都没有创新。如果不是因为那些聪明的孩子,MIT的本科CS课程没有什么亮点。 所以MIT=非常聪明的学生+不起眼的乏味课程+不关心计算机实用性的文化 卡内基梅隆- 我对CMU不太了解。我只是短暂地参观了他们的校园,不过我认识几个去过那里的人。 我对CMU的计算机课程有一个非常积极的印象,我的总体印象是,虽然MIT一点也不关心工业,斯坦福过于关心工业,而CMU介于二者之间,试图关心工业在未来会更如何发展。换句话说,CMU做了CS学校应该做的事情,回答了一个问题:CS未来需要解决什么样的问题? 我一直有一种感觉,CMU计算机学院非常热衷于将其课程和研究转移到它认为未来会发生的趋势,比其他学校更重视未来的方向。例如,CMU要求学生学习并行算法,随着计算硬件越来越并行,并行算法将变得越来越重要。CMU的一年级理论课可能是高校里最难的。 CMU的计算机课程也比其他学校有更大的自主权,因为他们有自己的计算机学院。他们直接录取,可以制定录取标准,以反映他们认为录取的学生应该具备哪些素质来接受挑战。所以我认为这会导致CMU的发展变化比其他学校更快。 当然,这也可能导致一种相当孤立的文化。我不知道有多少人去过那里,真的要说。去那里的大多数人似乎都是对计算机非常着迷的学生,他们想深入研究计算机系统的内部结构和运行,对像斯坦福大学的学生这样的创业活动并不感兴趣。 CMU与伯克利大学不同,它毕竟是一所私立学校,我听说,当你需要帮助的时候,得到的回应要灵敏得多。他们非常清楚谁来付账单,所以如果家长向他们投诉他们的学生正在面临困境,校方会非常认真地对待。所以从这个意义上说,CMU对他们的学生更关心。在伯克利和其他许多大型公立大学,你必须长大,自己处理这些难题,因为没有人会救你。 总结: 我的看法是,今天的伯克利有最顶尖的计算机课程,介于斯坦福(过于注重创业)和MIT(对行业需求过于冷漠)之间。你可以在那里找到想创业或在工业界工作的人,但你也可以在那里找到想解决计算机科学重大理论问题的人,以及喜欢哲学化的人。CMU有一个稍微好一点的CS课程,更符合业界的发展方向,但它似乎不像斯坦福和伯克利那样是一个创业友好的地方。 伯克利的问题是,它是一所公立学校,在计算机之外,你将不得不面对那些九百多人的资源竞争环境,更不用说偶尔嬉皮士了。另外,我想值得一提的另一个不利因素是,伯克利没有像著名的私立学校那样直接帮助校友。一旦你毕业了,你就真的独立了。你不能像常春藤联盟那样只拨打一个电话号码,让某人帮你联系一位校友,他会为你安排面试。在伯克利,甚至可能没有人接电话,即使如果真的有这样一个号码。 |
|