针对CMU “Cloud Computing有多坑”的一点个人看法

avatar 339619
gdh14
11287
15
原帖
CMU 15619 cloud computing 云计算到底有多坑
instant.1point3acres.cn
(出处: 一亩三分地)

本文针对最近备受争议的一篇帖子发表了一些个人看法。背景是CMU某正在选修15619 cloud computing的学生认为这门课设置不合理,最开始我觉得仅仅是个人吐槽,但当身边越来越多学弟学妹告诉我因为这帖被强力劝退CC的时候,我有必要说点什么了,希望本帖能够给大家另一个角度的认知,能对在选课的学弟学妹有所帮助。

我偷懒了,直接引用我在那篇帖下的回复了:

以下是回复原文
——————————————————————————

作为本学期也在上CC的一员,对于lz的处境表示理解,但我并没有觉得CC这门课像lz描述的一样不堪。我本人是CMU MCDS 18fall的,CC也是MCDS的必修课,之前听到各路消息都在狠怼这门课,主要的说辞都是性价比不高,耗时太高,收货太少。课程接近尾声了,我作为一个过来人也有一定的发言权,根据大家的集中反馈,总结了这么几个常见问题和我的观点。
1. 课程内容到底是什么?
CC主要涉及四方面知识:
(1) Big Data Analytics: 主要用到linux常见explore数据的命令,如grep/awk,Python数据分析包Pandas,以及Hadoop MapReduce
(2) Automating and autoscaling distributed services: 讲解如何在云端自动部署服务,涉及到AWS AutoScaling, Docker, K8s, Functional As a Service
(3) Storage and DBs on the cloud: 讲解云存储,包括传统RDBMS和基于NoSQL的DB服务
(4) Parallel processing of large datasets: 进一步讲解大数据处理,涉及Spark, Kafka, Samza

以上是individual的总结,选修619的同学还要再做一个group project,给定1TB左右的Twitter数据,根据query完成若干数据分析任务,并要在给定的预算内达到一定RPS。涉及到的知识主要包括高性能web framework(直接用现成的),数据库优化(MySQL和HBase),ETL(MapReduce / Spark)

2.每周耗时?
CC work load大是众所周知的,一门绝对要留出两门的时间。根据每次作业排名情况,我觉得我大概是整体选课学生水平分布中比较靠中间的,我用Toggl详细记录了CC花费时间,目前每周29.5小时。

3.到底有没有收获?
这个问题应该是最主观也最为两极分化的,选CC的同学背景非常多元,目的也不尽相同,有些是为了深入理解云计算原理的,有些是为了熟悉云平台下大数据处理的,有些干脆就是为了提升coding能力的。作为DS背景的学生,我认为CC从课程设置上给我带来如下收获:
(1)大数据处理:比较熟练地使用MapReduce和Spark完成数据清洗与处理。
(2)数据库:学会了如何导入数据,通过建立index、设置buffer等方法优化查询速度。
(3)自动部署服务:利用terraform,AWS AMI等自动化部署流程,大大提高了效率。

除此之外,我认为CC还给我带来了如下收获:
(1)阅读文档能力:太多时候网上或writeup里并没有现成的回答,需要自己阅读API文档来了解。期初我以为这只是偶然现象,但后来发现其实有很多工具都是需要阅读文档的,我觉得这也算是一个很practical的技能
(2)团队协作能力:group project除了技术上的收获,也给我带来很多团队协作上的收获。比如我们组并没有把ETL/数据库/web/设备管理与配置等模块完全分开,而是每人都要了解整个流程,但各有侧重,这样每个人都能somehow接手其他人的工作。再比如经常做code review,确保了逻辑上的正确性,降低错误率。当然,每周末的team meeting往往肝到很晚,大家一起吃饭,一起干活,累了一起刷剧,也算建立了深厚的革命友谊。

4.课程bug太多,助教难以详细解答?
CC本质上是一个project-based的课,每年都会有较大变动,坑多是常事,助教也很难完全了解细节。但实际工作的情况往往并不会更好,有的时候甚至连starter code都没有,那坑可能会更多。我觉得很多时候CC的坑也可以看做是对实际工作场景的一种模拟,提前了解,提前适应。

总结一下,CC这门课涉及到的内容非常多,但知识深度比较有限。论及收获,以大数据的存储(SQL, NoSQL),处理(MapReduce, Spark, Kafka),优化为主,同时还包括云平台的熟练使用,如多平台的基本服务使用、load balancing、autoscaling等。如果选择619(研究生版CC),group project还会获得很多实战经验与团队合作经验,如果你想转码或者转数据工程师,本身没有足够的项目背景,CC的group project会在你面试的时候让你有很多可以说的东西。但需要指出的是,以上收获是指在实践中的应用,至于原理层面,除非花出很长时间深度阅读课程教材(基本不可能),收获程度很低。如果想取得较为理想的成绩,请务必留出足够的时间,非常不建议在找工作的时候选,因为CC的节奏太快,停一下就很难catch up。但实际工作中往往就是类似的情况,需要你在短时间内学习大量新的东西,并立刻产出。如果大家真的想要学习云计算的原理,请移步ACC,那里的讨论与实践会深入很多,比如YARN和Spark,但涉及到的知识范围会相对窄一些。

最后,对于lz现在的情况,我觉得直接抱怨这门课有多么糟糕并不是一个最明智的选择,据我所知,CC给分还是很仁慈的,不会严格按照课程大纲里面的比例来给分。还有最后两次个人作业和一次live test,我觉得只要lz不放弃,跟majd那边解释清楚这次live test超额的情况,不会轻易就fail的。

祝大家能在CMU生活愉快!
  • 23
15条回复