给毕业生、初学者和入门从业者的数据科学职业转换建议
2019年04月22日 由 sunlei 发表
498481
0
在我学习物理的时候,我经常需要在谷歌上查找听起来很花哨的技术术语。而当我这么做的时候,往往第一个点击的就是维基百科上的一篇文章。
但是,尽管维基百科上的条目很棒,但似乎从来没有像我这样水平的条目。它们几乎总是超出我的理解范围,或者对我的用例来说太简单了。这种情况经常发生,以至于我忍不住把它称为互联网定律:“维基百科上的任何技术性条目都不可能同时被理解和提供信息”。
我认为很多数据科学的职业建议(或求职/面试准备建议)都遵循着类似的规律:有针对完全初学者的职位,有针对资深软件工程师的职位,还有旨在帮助初级数据科学家磨练技能的职位。所有这些噪音使得许多有抱负的数据科学家在考虑转入该领域时,很难知道把时间花在哪里。
这是我在与头脑敏锐的学员共事时关注的主要问题之一。虽然没有一个万能的解决方案适合所有人,但我发现我总是给3个不同类别的人提供相同的建议。
第一类:完全初学者
如果你刚刚进入数据科学领域,请记住这一点:该领域发展非常迅速,所以我在这里给出的任何建议几乎肯定会在你准备工作时过时的。2017年人们找工作的方法在今天已经行不通了,如今的数据科学招聘标准与一两年后将适用的标准之间的差距可能会更大。
有了这些,如果你今天想要进入数据科学领域,而你还没有编码/STEM背景,这里有一些建议:
- 首先,保持开放的心态。如果你是一个完全的初学者,那么从根本上来讲你实际上并不知道什么是数据科学,所以完全有可能它不是你想要的工作。在LinkedIn上你可以联系一些数据科学家,请他们喝杯咖啡,聊聊天。关注数据科学博客。成为一名数据科学家需要投入大量的时间和精力,所以仅仅因为你认为自动驾驶汽车很酷就一头扎进去,并不是冒险的好理由。你需要确保了解数据科学中不那么光彩的方面,比如数据争论和构建数据管道,这些占数据科学家日常工作的大部分。
- 如果你决定继续前进,那太好了!你需要做的第一件事是学习Python。参加开放性网络课程,并尽快建立一个基本项目。当你对自己的Python技能感到满意时,学习一下如何使用Jupyter notebook,并参加一些数据科学网络课程。如果你正在寻找更具体的指导,这篇博文为你提供了一个很好的学习途径。
- 如果你真的是从零开始,那么把目标锁定在一个全面的数据科学职位并不一定是最好的主意。相反,要瞄准容易实现的目标:数据可视化或数据分析角色的需求很高,并且是进入市场的更容易的方法。它们通常涉及与数据科学家一起工作,一旦你积累了一些经验,就有可能向那个方向靠近。
如何树立自己的品牌:如果你已经准备好求职,你可能会惊讶地发现,在数据科学中,建立个人品牌非常重要。你可能会担心,因为你没有任何专业经验,或者没有计算机科学的研究生学位,品牌对你来说可能是个问题。但这实际上可能是你最大的品牌优势:你是白手起家、自学成才的开发人员/数据科学家,公司可以指望你快速学习并努力工作。但问题是,实现这一愿景的重担落在了你身上:这是一座陡峭的山峰,但回报肯定是值得的。
第二类:软件工程师
在我遇到的有抱负的数据科学家中,大概有20%是软件工程师。一方面,具有将代码部署到生产环境的经验,以及与开发团队合作可能是一项很好的资产。另一方面,对fullstack开发人员的需求是如此之高,以至于公司有时最终会把软件工程师推向那个方向,即使他们被雇佣的职位涉及到纸面上的“数据科学”。所以你要避免被归类为软件工程师而不是数据科学家。
一些其他的想法:
如果还没有,可以考虑先将当前位置迁移到更侧重于后端/数据库的方向。更熟悉数据管道是一个良好的开端,可以帮助你构建核心数据操作技能集。它还允许你重塑品牌,把自己塑造成一个有经验的数据理论家。
机器学习工程可能是与数据科学相关的最接近的角色,这使得它更容易过渡到相关的工作。强调部署模型或将模型集成到现有应用程序中的目标角色,因为这些角色将最有效地利用你现有的技能集。你以后可以在模型开发上加倍努力,但是这是一个很好的入门方法。
为了给雇主留下深刻印象,你很可能不得不建立机器学习或数据科学项目。利用你的软件工程技能,把这些集成到你可以向招聘人员和技术领导炫耀的应用程序中。这可能特别有效,因为它没有留给你任何想象的空间,并且强调了你作为一个全堆栈数据科学家的潜力。
需要记住的是:你也许会在过渡期间减薪。即使是高级软件工程师,当他们转向数据科学时,通常也必须转换到初级角色,但令人惊讶的是,他们中的许多人在最初做决定的时候并没有考虑到这一点,所以当开始收到工作邀请时,他们会感到失望。
如何树立自己的品牌:树立自己品牌最简单的方法之一就是利用你在软件开发方面的经验。你已经知道如何编写干净、文档良好的代码,以及如何与他人协作,这是大多数初级职位的求职者所不具备的优势。但要有效地融入“清洁生产代码”品牌,你还必须理解数据科学中类似的最佳实践,因此,如果可以,请确保选中该选项。
第三类:计算机科学、数学或物理专业的应届毕业生
如果你是一个本科生,硕士或博士研究生,你可能有一个很好的统计和数学基础。但是你可能从来没有申请过技术类的工作,也不知道如何准备面试。此外,假设你在攻读学位期间一直在编程,你很可能无法编写干净、组织良好的代码。
有几件事要记住:
你在攻读学位期间所学的知识是不够的。如果你是一个物理学家,你把宝押在你的MATLAB或Mathematica技能上,想让你在工业界找到一份工作,这也不会成功。需要学习Python。
你需要尽快学习的内容:协作版本控制(学习如何使用GitHub与他人协作)、容器化(学习如何使用Docker)和devops(学习如何使用AWS或其他类似服务在云上部署模型)。SQL也是必须的。
学习Python中的测试驱动开发。学习如何使用docstrings。学习如何模块化代码。如果你还没有,学习如何使用Jupyter notebook。
如果你在一个以数学为导向的领域,深度学习可能是一个很好的探索方向。但是,你可能会发现,从一个更传统的“scikit-learn”类型的数据科学角色开始,然后迁移到深度学习,这可能更容易一些。对您来说,最重要的事情是进入行业,并尽快开始编写生产代码。
如何树立自己的品牌:尤其是如果你是数学或物理专业的学生,你最好的策略就是把自己塑造成一个拥有深厚理论知识的人。要做到这一点,你需要能够自信地解释各种模型是如何工作的,最好熟悉最新的“热门”研究结果(尤其是如果你的目标是一个深度学习的角色)。
注意:我所提供的建议并不是完全适用于每种情况。一些软件工程师要比其他人走得更远,一些完全是初学者的人有数学天赋,可能最适合成为深度学习研究人员。但它应该为你的技能发展方向提供一个良好的起点。
说到底,无论你是软件工程师、应届毕业生还是一个完全的初学者,你都要问自己一个关键的问题:在参数空间中,什么样的职业轨迹最接近你。如果有必要做一段时间的数据分析师或数据可视化专家,这往往是让你走上正确的长期发展轨道的最佳途径。