同样神课 CC. 这门课没有课程视频,即使是本部也没有。有的只是许多 project. 在这门课中,你将走马观花地使用 Amazon AWS 中的大部分服务,尝试写出若干 Cloud Native 的小服务,并在啃 write up 和与队友撕逼之间掌握自我学习的能力。该课程 workload 很大,即使是有经验的人也需要 30+ 小时每周的时间。在选这门课的同时,建议找好可靠的队友(大腿)。推荐所有想做后端和 infra 的人学这门课。 ..
## “神课” 11-785 Deep Learning
自然,神课都是本部的。这门课也是享誉业界的好课,从最基本的 NN 和 SGD 一直讲到 Reinforcement Learning, 并且伴有丰富的学习材料和 Project. 如果你有志于做 Data Scientist... 这门课可能不够,毕竟这样的岗位基本都需要 PhD. 不过,本课能让你对 ML 有一个基本的了解,让你将来做 ML Infra 的时候和同事 PhD 交流之时不至于露怯。推荐所有想做 DL 方向或者有相关方向的人学这门课。
## “还行” 18-652 Foundations of Software Engineering
问题来了,既然这门课这么糟糕,我为什么还要选呢?想必你猜到了,这是 SE 项目的 core, 是必须抽选的。
建议所有人,包括有志于创业和金融的所有人,不选这门课。当然如果你是 SE 项目必须选的话……还是得选。.--
## "腐朽" 18-655 Service Oriented Computing (以及 Jia 老师的所有其他课)
这是另一门神奇的烂课。如果前一门课的描述是「诡异」,这一门的描述就是「腐朽」。从第一节课开始,整门课程就流露着上个世纪末期,Orcale 和 IBM 还叱咤风云意气风发,打算用 Java, Eclipse, XML 和专利费一统江湖的旧时光。. .и
. 1point3acres.com
这门课的老师是 Jia Zhang, 是在 Service Computing 领域颇有影响力的老资格人物。不幸的是,这个领域早就死了,现在已经完全沦为了许多人自娱自乐的产物。千万不要把这个所谓的 Service 与现在正在流行的 AWS/GCP/Azure 这种 Cloud Computing 服务混淆:要知道正是后者杀死了前者。
让我们把时光倒转到 Late 1990s, 那时候没有 iPhone, 没有 Google, 没有 Facebook, 更没有 AWS. 当时世界上的信息产业的主要形式,是大公司向 IOE (IBM, Oracle, EMC) 等大厂花大价钱购买机器、软件、维护和技术支持,用海量的钱换取自己内部数据的电子化和快速统计。在这个时候,软件的开发模式是瀑布模型,架构是 Huge Monolithic, 交互是 Private Protocol. 这个时候,Oracle 正确地预见到将来软件会更加分散、更加小块、更加灵活。但是他走上了完全错误的道路。他们的技术路线是:开发模式接着瀑布,架构选择用一个 JVM (Typically Tomcat Server) host 许多 Java App, 交互选择基于 XML 搞一个协议 (SOAP) 来传输 Java Object. 为了允许服务之间互相发现,搞了一个基于 XML 的 Service Registry (UDDI), 并且搞了一个基于 XML 描述 web service 的语法 (WSDL), 甚至还发明了一套基于 XML 的所谓 Workflow, 来让你通过写 XML 来调用其他 Service, 并把他们的结果整合起来。没错,用 XML 写业务逻辑。最后,他们在 Eclipse 里面把这一整套全家桶集成起来。聪明的你看出来问题了吗?
. ----
没错,这一套系统是完全彻底的 Vendor Lock in, 如果贵司真的用了这么一套系统,可以说是永世不得翻身,估计时至今日还是要每年给 Oracle 交上大笔的维护费,来让他们帮忙维护贵司的 service infrastructure. 另外,充满了 XML 的传输也是臭名昭著地低效、人类不可读,叠床架屋的 SOAP 标准也会莫名其妙地不工作并且让你无法知道原因,正如 Oracle 的所有其他产品一样。2019 年的新鲜工程师们听到这么一套技术,恐怕会脸上目瞪口呆心中窃笑。在 Amazon 放出了他们的 AWS 以后,这一套垃圾迅速、彻底地走入了历史的垃圾桶,消失得仿佛不留一丝痕迹,而这个名为 Service Computing 的学术领域,也慢慢沦为了自娱自乐的小圈子。 毕竟,我们今天使用 Python 和 Node 做微服务,JSON 做传输协议,Kubernetes 做编排/负载均衡。日子过得很好,不是吗?
然而,时至今日,在 CMU-SV 校区的 Jia 老师仍然在孜孜不倦地教着这一套技术栈。在她的第一门课,匆匆定义了一下什么叫 Service Computing (这个定义请背下来,期末考试要默写)之后,她严肃地说,每一届都有学生要求我修改课程内容,但是这是我的课,我是不会修改的,你可以选择不上。当时我还太年轻,并没能理解这句话背后的含义。等到我理解的时候,已经晚了。值得一提的是,如果你是 SE 的学生,你将一定需要选她的课,而她的所有其他课,都有本课作为前置。所以其实你并不能选择不上。. check 1point3acres for more.
第二个题目是为什么 XML 比 JSON 好。答案是 XML is a Language, but JSON is not. XML can be validated, but JSON can not. 显然,这个题目的编制者既不知道什么是 Language, 也不知道什么是 JSON Schema.
..
无论如何,强烈建议任何人不要选这门课。无论你的目的是学习技术、拓展人脉还是纯粹找工作,这门课只会损害你的大脑而不会有任何技术考古学以外的意义。当然如果你是 SE 项目必须选的话……还是得选。
## “跑路” 18-645 How to Write Fast Code
SV 自开课。这门课的标题颇有一点哑谜的感觉。它既不是教你怎么快速地写代码,也不是教你怎么做性能调优,而是教你怎么并行计算的。主要分为三块,thread, GPU, MapReduce. 所以怎么写出很快的代码呢?只需要氪金变得更强、买更多计算资源就好了。. check 1point3acres for more.
这门课的神奇之处在于,基本上没有在上课。具体来说,有一半以上的课程会在上课前半小时被取消。这件事情初次发生的时候,老师的群发邮件说的是女儿生病了本次课临时取消,我们还惊奇了一下。但是后来,邮件里就是简单地说 Today's lecture is cancelled 于是已经到了教室的同学们就耸耸肩回到自习室。再后来,老师和学生就有了默契:学生不去教室,老师发邮件。
推荐所有人选这门课——作为每周需要时间不超过 3 小时的课,你将省出充足的时间来进行你想做的事情,无论是自学、社交还是刷题。毕竟它还是一个 SE Track 里面的课。
How to write fast code?
答案就是不上课,把上课的时间都用来写代码,这不就fast了嘛!
. 1point3acres.com
感觉跟NEU sv可能挺像的,不过NEU师生之间似乎有一种默契,上课什么的据说感觉都挺好?0.0
.
哎,Master就是没人权呀0.0
anyway,CMU的title还是很给劲的!