阅读正文

IC BA项目介绍第二弹,顺便谈谈零基础商科背景如何补编程 [2017.12.24]

[日期:2017-12-31] 来源:ChaseDream论坛 作者:oskird [字体: ]

一. 项目介绍

课程方面:

上一篇帖子讲过,九月模块主要分为两部分:统计知识(R)和算法(Python)。这两部分内容学完之后就会正式进入core module,而sept module里所学习的知识和编程会对这模块的学习十分有用。Core module分7部分,这学期会涉及五门课,另外的analytics in business和visualization会在下学期同选修模块一起讲。

Optimization & Decision Model:这门课其实相当于国内的运筹学,学习解决实际中的规划问题,主要讲线性问题、整数和binary问题,也包含一些简单的非线性问题(比如著名的资产组合优化)。授课教师Wolfram(可能很多open day时候来campus visit的同学都知道他)为人热情耐心,讲课思路明确,很善于化繁为简,虽然有点讲的太慢了23333。Wolfram每星期都会留一个比较challenging的作业(不计分的,做出来有奖品), 运筹学问题多接触一些就会发现其实是很锻炼思维的。工具使用方面,主要是excel solver和AMPL,目前已向programme team建议python(scipy),所以明年也有可能变成excel+python的工具组合。个人很喜欢这门课的,我本科学过运筹学的线性问题,但感觉这门课讲的更好一些。

Statistics & Econometrics:计量经济学,也延续了sept module里的统计课,主要集中在讲线性模型上,80%以上的时间都在研究线性回归,最后几个lecture简单的谈了逻辑回归模型。研究cross-sectional data为主,没有太多涉及panal和时间序列。本门课的授课老师是中国人,耐心负责,但是,确实能看出中国讲师的风范。课程内容也十分理论化,对于BA项目来讲,确实太学院派了,琐碎的概念和知识很多很多。值得一提的是,因为这门课里讲了linear regression和logistic,后面的machine learning课里就不讲了,这样是否合适,其实有待商榷。

Fundamentals of Database Technologies:SQL课,顺便入门一下spark。授课老师是外面请来的,平时做deep learning,人很牛逼但讲的确实不好。好在SQL很简单,同学们也就没有太绝望了。但SQL很重要很重要,平时多练习,还是有很大必要的。Spark讲的比较浅,选修中有一门会多讲。

Machine Learning:重头戏!模型主要讲了KNN, Navie Bayes,Decision Tree(简单谈及ensemble learning)和K-means。由于是第一门ML,所以选择的模型基本都是最简单的。授课教师还是Wolfram,讲的十分透彻,所以虽然课程难度不是很大,但学起来非常扎实。编程语言要求R和Python都会做,R语言的ML函数基本来自己于各处,python则集中在sklearn里。另外,这门课作业留的比较好,像用naive bayes预测垃圾邮件、分类树预测信用风险这些经典问题都涉及了,很贴近实际。写作业的过程不是单纯的找函数调包,而是需要真正去处理数据,很多次作业都涉及到了regular expression和scrape。如果有兴趣,后面可以继续选择Advanced Machine Learning,AML的授课方,是IC的data science institute,难度会大一些。

Network Analytics:个人认为最难的一门课,主要讲graph。授课老师Kalyan是项目director,经常把自学是本门课的重要学习目标挂嘴边。上课比较随性,课程内容不是很结构化;作业总是一次比一次难,每次像学了一门新课一样。课程主要使用python中的networkx包,其实实际中还要自学很多的。整体来说,不是特别喜欢这门课,学的很难很广,但都是浅尝辄止。后面的选修课,比如digital marketing和supply chain analytics会涉及到network的应用。

就业方面:

Sept module的时候,基本是一半时间上基础课一半参加career培训,找工作的气氛还是很高涨的。但是到了core module之后,课程难度和压力明显大了,一定程度上会压缩找工作的实际,这是实话。

伦敦这边的analytics就业机会没有美国多,但是好处是竞争压力也不大。英国开BA的项目并不多,IC和UCL两所处于伦敦的学校开设了BA,基本是占据最大部分资源的了。有一部分公司会专门针对BA做活动的,比如OC&C的analytics team来学校附近的酒店办了个比赛,第一名的直接获得全职的终面。还有BCG gamma、facebook等公司,也专门针对analytics开过宣讲会。虽是BA项目,但是也有近一半的同学以后并不想做analytics,纯粹读个BA扩展知识面的。

整体感觉,身边的同学下定决心非要留在伦敦的工作的并没有多少(很容易理解,如果非要留下,干嘛来英国),大多数准备来年回国参加秋招。很多准备简历都是为了准备来年6-9月份的placement。所以尽管机会很多,但身边的同学少了一些拼死找工作的气势,反而学习氛围是比较浓厚的。

二.来说说,零基础补编程背景

学BA,编程和数理知识很重要,尤其是开始master学习之后才发现,就算拿到了offer,如果没有点功底,从拿到offer玩到入学,痛苦的日子就来了。所以写下这篇帖子的后半部分,是想给商科本,之前没有任何编程经验的同学一点关于补编程的建议。我本人是商科本,接触BA之前学过VB和SQL(基本忘光了),大二下学期开始了解BA,大三下学期正式决定考虑BA,开始了学习编程和数理的生涯。大概是是Coursera和Datacamp都学了很多门课,也看过一些相关的书。以下的经验,基本都是给零基础或者接近零基础的,如有相关经验,套路肯定是不一样的。

1. 补编程对BA有多重要

很重要很重要,但是重要性在标准化成绩之下。尽管这篇帖子要讨论补编程,但是也不能夸大编程对于申请的作用。商学院申请,标准化成绩和吹牛逼能力永远是两个最重要的能力。这句话不是说没有标准化成绩就不能学习编程了,但是没有标准化成绩却想靠补一点编程和数理背景救世,在商学院申请很难行得通。个人认为,申请前了解一下BA所需要的基本技术,面试和写文书时候能扯上几句就差不多够了,其余的具体和深入学习部分视个人精力而定;申请后可以利用近一年的时间好好学学。

2. 要补,补什么?

BA所用的工具里,R、Python和SQL三门编程,是被提及最多的。SQL是重点,数据库查询无论到什么时候都是很常用的,R和python中的数据操纵包也使用了很多SQL的思想;Python和R是数据分析届最火爆的两门语言了,从数据清理到分析再到模型,可以说样样精通。所以要学,SQL是一定要了解的,而且SQL的入门会很快,之后是R和Python。

3. R还是python?

万年辩论题,每次谈到都引起口水。作为一个使用python和R的比例都差不多的选手,感觉两门语言的差距,做数据分析而言,其实没有那么大。经常看见有人说Python rocks, R sucks......客观来说可能是真的,但是你所需要的应用范围来看,不一定。就我个人的自学心路历程而言,是先学Python,再学R,又学回Python。开始比较喜欢R,现在逐渐更喜欢python了。

关于这个问题其实问了很多人,大部分刚刚同时接触两门语言的都会认为R舒服一点。个人认为,R语言更像是一门数据分析工具,像工具像到甚至有点不像编程。比如学pandas时候新手会想问,为什么有时候是function(x),而有时候是object.method(),但是用R的时候可以很大程度上忽略这个问题,都是function(x)。这样很容易让初学者把精力集中在数据分析本身,了解一些数据分析的基本做法和概念,而不是太过集中在编程上(毕竟,学这个是为了用)。而Python的优点在于,定义算法要比R方便。无论你是知识量多么丰富的调包侠,也不可能永远不自己写代码,一旦开始自己写代码,我相信大多数人都会认为python是更舒服的。

根据以上优缺点,如果非要选择,给一些个人建议吧:1)如果你未来就读的项目只学R或者Python,那么你就学这个吧,其实差不多的;2)如果你自学,只想学一种,那么更建议Python;3)如果你早晚两个都要学,那么建议从R先开始。

4. 学什么?那个平台好?

学习网课的平台如今越来越多了,相关的免费书籍网上也有很多。诚然,平台是有优劣的,有的比较符合你的个人习惯,所以学起来会事半功倍,但无论在哪个平台,更重要的是该学习的知识点需要学到。

SQL比较容易,查询语法内容不多,学一下就好,之后多练练。

R语言的学习,先要了解基本的数据类型(vector/matrix/dataframe/list)和会应用基本函数,之后强烈推荐学习一下数据操纵package(dplyr)和可视化package(ggplot2)。这些都相当于基本功,如果都用的十分熟练,后面就可以利用R来学习统计知识了(推荐一下Coursera Duke的Stat with R)。

Python而言,基础语法会需要学的更深入一些。掌握这些之后,建议开始学习numpy/pandas/matplotlib这些与数据分析最接近的工具。值得一提的是,python有一个很强大的能力就是写爬虫,大名鼎鼎的coursera Umich课就是在讲完list和dict之后就直接开始讲爬虫了。然而,我并不认为这是个很合理的学习路径。

平台的话,最推荐的肯定是Datacamp。虽然需要花钱,应该是包月29刀,但是能边学边练边纠错,功能是在是太强大了。Datacamp目前还是R的课比较多,但是从入门来看,python的内容也足够了,可以说是最适合入门编程的平台。当然Datacamp也有相对的弱点,就是理论讲授的部分实在是太少了,尤其是学到比较高级的课题时就会发现,经常是看了一眼代码,模仿着敲一遍,觉得自己屌屌的;但实际一用,因为并没有学得很扎实,就发现其实并不透彻。

Coursera和Edx这些平台也提供很丰富的编程课,当然目前课出的太多了,质量就良莠不齐了。我还是倾向于认为,这些课适合讲理论知识的。比如学习统计学,之前提到的stat with R,还有machine learning届很有名的斯坦福机器学习课,就很适合在Coursera听。这种理论知识学习,听听网课远比在Datacamp上学调包扎实。

网上教材也有值得推荐的,比如《利用python进行数据分析》,基本涉及到了python数据分析的最常用工具。还是之前那句话,从哪学相对来说是次要的,学到需要学的内容就好。

--------------------------------------

原文引自:
https://forum.chasedream.com/thread-1312909-1-1.html

参与讨论及查看更多的相关文章请访问【商学院Master申请区】
https://forum.chasedream.com/forum-14-1.html

打印 | 录入:steven
相关文章      
ChaseDream版权声明
活动日历
{{item.event_geo.name}}

{{item.subject}}

<< 查看更多 >>