数据科学家 (Data Scientist) 的核心技能是什么？
我是一名数据科学家，从事数据科学工作四年了，以前还当过游戏程序员，也算是一名老码农了。从软件开发到数据科学转变的过程中，我也积累了一些心得，发现技术工作的一些共性。 让我总结数据科学的核心技能，我会用四个字：落地能力。 关于落地能力，我想引用自己的在《算法工程师的落地能力具体指的是什么》里的一张图： 当然，这里并不想重复太多之间讲过的一些内容，之间讲的主要是概括性的内容，这个回答就想做一些关于方法论的补充。 数据科学家相关的技术主要分成下面几类： 编程语言：编程语言的话，80%以上的公司会选择Python，其次是R，其中有的公司除了Python也会选择Scala来作为补充。 数据处理框架：很多人入门时都会选择Numpy,Pandas来处理数据。这很常用，没错。但如果真的要加强自己的「落地能力」，那么我建议学习Spark。Apache Spark是一个开源集群运算框架，是一种分布式计算框架。在实际产品环境中，由于数据量极大，数据的分布是分布式的，使用pandas将力不从心。上面说到Scala语言，就是主要配合Spark用的。当然，Spark也有python版本——Pyspark。 机器学习框架：经典的机器学习框架包括Scikit-learn，XGBoost等等。Scikit-learn库里已经包含了很多经典的机器学习模型，例如SVM，Decision Tree等。深度模型框架的话，目前Pytorch和Tensorflow是主流。 模型与算法:说实话，现在模型越来越多，而且每个领域都有SOTA的模型，总不能都看一遍。对于初学者，跟着教程看一次，掌握基本的模型和算法，例如SVM，Decision Tree，Boosting，Bagging等等。然后了解深度学习模型里的CNN，RNN，LSTM等。至于各种更复杂的模型，按需学习。    说实话，业务能力这个事情，基本得接触了业务才能有能力。虽然业务理解主要靠工作，但是在kaggle比赛中，你还是可以稍微锻炼一下业务理解能力的，毕竟特征工程的过程就是理解业务的过程之一。例如你在Give Me Some Credit比赛中，你还是能感知到，哪些指标可能会对客户信用造成影响。 但根据我的工作经验，实际工业对业务理解还是有点不一样的。例如实际项目中会有很多制约因素，一般包括： 学会平衡这三大因素，可以说是一门艺术了。 软实力包括沟通与表达能力，思维能力等等。这个比业务理解更难用语言传递。软实力的锻炼来源于观察、思考和沟通。不过我可以说说如何锻炼自己的软实力。 增强思维方面，我推荐两本书：《金字塔原理》、《批判性思维工具》 增强沟通和表达能力方面，对于大学生，我建议是可以多走出自习室，多和朋友玩玩，多参加社团活动。我们搞技术的虽然学业是繁忙，但偶尔走出课外，不仅能放松下大脑，而且还能锻炼自己的软实力。对于职场新人，我建议是午饭时尽量和同事一起去食堂，尽量不要在工位自己吃。这个建议看起来简单，但相信我，只要坚持，你会发现你会得到意想不到的收获。  技术方面，现在网上非常多经典的免费学习资源。这里推荐一些 现在的免费学习资源，大纲很完整，适合纯新手从零开始。不过缺少教师针对性指导，较少和实际业务结合的练习。 当然，市面上也有很多不错的收费课程。收费课程的特点是针对性强，有人指导，适合想找工作的人。 关于收费课程，我建议要看授课老师的在行业深耕的情况。毕竟如果上收费课程得不到经验丰富的导师指点和帮助，那和看免费网课没啥区别。如果你问哪个收费课程比较好，那么FLAGDream的课程就挺不错。授课老师Alan博士曾工作于多个研究单位，主要研究机器学习在物理科学中的应用。曾经参与过美国太空总署 NASA Marshall 研究中心的汽球和地面有关太空科学的实验工作。后在微软工作，主要负责人工智能在时间序列(文字)上的产品: 例如情感分析, 文字安全等。而且他具有丰富的教学经验，同时了解年轻人的心理，曾参加面向高中生 、大学生乃至研究生的AI 的课程, 主要负责课程规划和授课，对教育行业十分热忱。 我看了下FLAGDream课程的教学大纲，这套课程能填补基础理论知识，帮助掌握从数据分析到建模再到模型评估所需的所有知识，包括工业 A/B testing，监督和无监督机器学习等等。 课程还设置了高含金量的实战项目，例如Airbnb 民宿通过率预测项目、PayPal 用户违约项目实战、 Industry Project in PySpark。关于找工作方面，老师结合 Google、FB、 Uber 等一线公司的面试考题，帮助学生掌握 DS 面试要点。由于这个课程不仅仅cover机器学习的部分，还设计到数据分析的部分，所以学成后，应聘Data Scientist, Business Analyst, Machine Learning Engineer等职位。 当然，学了课程就不是万事大吉的。我还是建议大家在打好基础后，多去打打kaggle比赛，一个优秀的排名对找工作也是加分项。 另外，我还建议多和同行交流。  总结 想要掌握核心技能，那么在初期时候，学习基础知识和实战演练缺一不可；工作后，要刻意在工作中进一步打磨自己的业务理解能力。对自己要有点耐心，不要太急于求成。希望数据科学求职者能找到自己心仪的工作，希望各位已经在工作的数据科学家工作水平更进一层楼。