李雷、罗然、Aileen编译

小白上路?工程师转型?应届毕业生?三种“圈外人”的数据科学入行指南

许多数据科学职业建议(或求职/面试准备建议)都有类似的问题:受众太宽,建议泛泛。

本文作者深受其害,这些繁多的资料使得不少有抱负的准数据科学家很困惑,到底如何分配时间到他们想进入的领域。

这篇文章中,本文作者将针对三种不同的、想要进入数据科学领域的人群,给出自己的经验,帮助他们迅速有效入行。

虽然没有适合每个人的万能解决方案,但这三类建议值得想转行的你一看。

第1类:新手上路

如果你刚刚进入数据科学领域,请记住这一点:这个领域发展很快,我在这里给出的建议基本上在你工作时已经过时了。能满足2017年招聘岗位要求的建议策略,在如今可能就不满足,而今天的数据科学领域招聘标准与一两年后的标准之间的差异可能更大。

因此,如果你打算在数据科学领域发展事业,并且没有编程经验和STEM(科学Science,科技Technology,工程Engineering,数学Mathematics四门学科英文首字母的缩写)背景,那么这里有一些建议:

  • 首先要保持开放的心态。如果你是一个新手,那么你实际上并不知道什么是数据科学,所以它完全有可能不是你想要的工作领域。请与LinkedIn上的一些数据科学家进行联系,请他们喝咖啡并向他们请教;并关注数据科学播客。要成为数据科学家需要花费大量的时间和精力,如果仅因你自认为驾驭数据科学很酷,然后就一头扎进去,这并不是冒险的好理由。请确保充分了解数据科学中不好的方面,比如数据整理,以及构建数据生产流水线,而这些工作占了数据科学家日常工作的大部分时间。

  • 如果你决定要从事数据科学领域的工作,那太好了!你首先要做的是学习Python。尽快在MOOC(大规模网络公开课平台即慕课)上选择相关的课程项目。当熟悉Python基本用法后,请学习如何使用Jupyter notebooks工具,并选学一些数据科学领域的网络公开课。

  • 如果你是完全从零开始的,一开始就以高级的数据科学职位为目标可能不太好,选择一些入门级的职位比较好,比如数据可视化或数据分析职业的需求量很大,并且市场需求也大。这些岗位的人员通常与数据科学家一起工作,一旦你积累了相关经验,就为今后的胜任更高级的数据科学相关职位奠定了基础。

如何包装个人品牌:如果你已经准备好申请工作,你可能会惊讶地发现个人品牌在数据科学中非常重要。由于你没有任何专业经验,或者没有计算机科学专业的研究生学位,你也许会担心个人亮点不足。但实际上这可能是最大的优势所在:如自学成才的开发人员/数据科学家,这些将成为公司可以利用的快速学习和努力工作的优点。但问题是,你背负着去实现那个形象的重担:这是一座陡峭的山需要你去攀登,但是回报肯定是值得的。

第2类:软件工程师

在我遇到的专业数据科学家中约有20%是软件工程师,一方面,他们有从编写程序到形成产品的工作经验,是开发团队中难得的经验人才。另一方面,对于全栈开发人员的需求很多,使得公司比较愿意朝着全栈工程师方向培养软件工程师,即使他们的录用通知上写的职位是“数据科学”。所以你要避免被当作软件工程师而不是数据科学家。

其他一些建议:

  • 首先可以先往更注重后端/数据库的方向上靠。把深化对数据生成线流水线的认识作为良好的开端,可以帮助你建立关键的数据处理技能;当然也可以帮你重塑自己,把自己塑造成一个经验丰富的数据管理者。

  • 机器学习工程可能是更容易过渡到数据科学领域的,因为它和该领域的研究内容最接近。你可以先着手部署模型或将它们集成到现有应用程序,因为这可以充分利用你的现有技能,这是迈出第一步的好方法,反正以后你总是可以投入更多精力到模型开发中的。

  • 为了让招聘人印象深刻,你很可能需要建立机器学习数据科学项目。那么利用你的软件工程技能,把这些项目集成到可以向招聘人员和技术主管展示的应用程序中。这会特别有效,因为它很直观,并体现了你作为一个全栈数据科学家的潜力。

  • 要记住的是:在过渡期,你的薪资极大可能会变少。即使是高级软件工程师换到数据科学领域时,通常也是要先过渡到初级职位的,但令人惊讶的是,他们中的很多人在做决定时并没有考虑这个因素,然而拿到的薪资少了,却又失望。

如何包装个人品牌:一个最简单的方法就是充分利用你的软件开发经验。作为初级职员,已经知道如何编写干净、文档齐全的代码,以及如何与他人协作,这是大多数职位申请者不具备的。如果要真正做到善于写“干净的产品代码”,你还需要尽可能多的去学习数据科学领域中类似的好案例。

第3类:新CS、数学或物理学毕业生

如果你是应届理科本科,硕士或博士毕业生,那么你统计学和数学基础可能很好。但你可能从来没有申请过真正的工作职位,也不知道如何准备面试。而且就算你在读期间一直有编码,但很可能无法编写干净、组织良好的代码。

所以要记住以下几点:

  • 你在读期间所学的R是不够的。如果你是一名物理学家,并且赌定要用MATLAB或Mathematica的技能找到工作,那这可能不太会如愿;所以学习Python吧。

  • 你可能需要尽快学习这些你没接触过的东西:协作版本控制(学习如何用GitHub与其他人一起工作)、容器化(学习如何使用Docker)和开发(学习如何用AWS或类似的服务在云上部署模型)。另外,SQL也是必须的。

  • 学习Python中的测试驱动开发,如何使用文档字符串,如何对代码进行模块化,以及如何使用Jupyter笔记本(如果还不会的话)。

  • 如果你的领域特别注重数学,那么深度学习可能是一个很好的探索方向。但你可能会发现,从更传统的“scikit-learn”类型的数据科学开始起步,再过渡到深度学习可能更容易。最重要的是要入行,并尽快开始编程。

如何包装个人品牌::特别是如果你学的是数学或物理专业,那么最好的策略是要呈现出自己是具有深厚理论知识的人。要做到这一点,你需要能够自信地解释各种模型是如何工作的,最好要熟悉文献中最新的热点(特别是如果你的目标是深度学习的话)。

警告:当然我所提供的建议并不能涵盖所有职业。对于软件工程师而言,他们确实比其他人走的远一些,一些有数学基础的初学者可能是最适合的深度学习的研究者。但是以上这些建议能为你的技能精进提供一个好的起点。

最后,无论您是软件工程师、应届毕业生,还是完全初学者,都要问自己一个关键问题:在上述建议中,什么样的职业轨迹最接近你。如果你是想成功入门数据分析师或数据可视化专家,那么这将是协助你走上正确的职业轨迹的最好方法。

相关报道:https://towardsdatascience.com/3-common-data-science-career-transitions-and-how-to-make-them-happen-588c3618942f

大数据文摘
大数据文摘

秉承“普及数据思维,传播数据文化,助⼒产业发展”的企业⽂化,我们专注于数据领域的资讯、案例、技术,形成了“媒体+教育+⼈才服务”的良性⽣态,致⼒于打造精准数据科学社区。

入门数据科学
1
相关数据
AWS机构

亚马逊网络服务系统(英语:Amazon Web Services,缩写为AWS),由亚马逊公司所创建的云计算平台,提供许多远程Web服务。Amazon EC2与Amazon S3都架构在这个平台上。在2002年7月首次公开运作,提供其他网站及客户端(client-side)的服务。截至2007年7月,亚马逊公司宣称已经有330,000名开发者,曾经登录过这项服务。

相关技术
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

数据分析技术

数据分析是一类统计方法,其主要特点是多维性和描述性。有些几何方法有助于揭示不同的数据之间存在的关系,并绘制出统计信息图,以更简洁的解释这些数据中包含的主要信息。其他一些用于收集数据,以便弄清哪些是同质的,从而更好地了解数据。 数据分析可以处理大量数据,并确定这些数据最有用的部分。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

数据科学技术

数据科学,又称资料科学,是一门利用数据学习知识的学科,其目标是通过从数据中提取出有价值的部分来生产数据产品。它结合了诸多领域中的理论和技术,包括应用数学、统计、模式识别、机器学习、数据可视化、数据仓库以及高性能计算。数据科学通过运用各种相关的数据来帮助非专业人士理解问题。

数据管理技术

数据管理是利用计算机硬件和软件技术对数据进行有效的收集、存储、处理和应用的过程,其目的在于充分有效地发挥数据的作用。

数据库技术

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

测试驱动开发技术

测试驱动开发,英文全称Test-Driven Development,简称TDD,是一种不同于传统软件开发流程的新型的开发方法。 它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。 这有助于编写简洁可用和高质量的代码,并加速开发过程。

推荐文章
暂无评论
暂无评论~