TL;DR 是一篇关于数据科学以及如何进入该行业并在其中发展的问题/答案的帖子。 在文章中,我将分析基本原理和常见问题解答,并准备回答您的具体问题 - 请写在评论中(或私信),我将尽力在几天内回答所有问题。
随着《撒旦约会》系列笔记的出现,很多留言和评论都带着如何入手、从哪里挖掘的疑问,今天我们就来分析一下发表后出现的主要技巧和问题。
这里所说的一切并不声称是最终的事实,而是作者的主观意见。 我们将看看这个过程中最重要的主要事情。
到底为什么需要这个?
为了更好地实现目标,使其看起来至少有些具体 - 您想成为 Facebook/Apple/Amazon/Netflix/Google 的 DS 或研究科学家 - 查看要求、语言和必要的技能具体针对哪个职位。 招聘流程是怎样的? 作为这样的角色,典型的一天是如何度过的? 在那里工作的人的平均资料是什么样的?
通常,总体情况是一个人并不真正了解自己到底想要什么,也不完全清楚如何为这种不清晰的图像做好准备 - 因此至少有一个关于您到底想要什么的粗略计划是值得的。
将当前的目标观具体化
即使一路上发生变化,而且在游戏过程中改变计划通常是正常的,但有一个目标并专注于它,定期评估和重新思考是值得的。
它会或仍然相关吗?
等你成长到一个职位的时候。
想象一下,在担任该职位之前,您需要获得博士学位,在该行业工作 2-3 年,并且通常在寺院冥想时剪头发 - 数据科学的情况是否会与经济学家和经济学家的情况一样?律师? 在你想要追求的领域,一切都会变得面目全非吗?
现在不是每个人都会涌向那里的好机会吗?我们会看到这样一幅景象:有大量的人试图进入这个行业,而起始位置只是微薄的。
在选择道路时,可能值得考虑当前的趋势,不仅是劳动力市场的当前状态,还要考虑您对它如何变化以及它在哪里的想法。
例如,作者本来并没有打算成为一名撒旦教徒,但在读博士期间,他从事了一些与 DS 有很强共同技能的第三方项目,在研究生毕业时,他很自然地转向了这个环境,看到了良好的环境。位置。
如果在比赛过程中发现有必要搬到其他地方——因为现在有最多的动作并且所有最有趣的动作都在发生,那么我们会自然地搬到那里。
技能分解
这些是有条件的技能类别,在我看来,这些技能对于 DS 中全面有效的工作至关重要。 我将单独重点介绍英语 - 学习你在 CS 中所做的任何事情。 接下来是关键类别。
编程/脚本
您确定熟悉哪些语言? Python? 爪哇? 外壳脚本? 卢阿? sql? C++?
就编程而言,您到底需要做什么以及为什么这样做 - 这里的职位范围差异很大。
例如,我经常需要实现复杂的逻辑、查询、模型、分析,并且通常开发解释型系统,但对代码的速度几乎没有要求,除了最通用和合理的之外。
因此,我的技能与那些编写 Tensorflow 库并考虑优化代码以有效使用 l1 缓存和类似事物的人非常不同,因此请看看您到底需要什么并评估正确的学习路径。
比如对于python,人们已经补了
当然,已经有经验丰富的建议和适合您需求的良好资源 - 您需要确定一个清单并开始处理它。
了解业务流程
没有它你哪儿也去不了:你需要明白为什么这个过程需要你,你在做什么以及为什么。 这通常可以节省你大量的时间,最大化你的利益,并避免在垃圾上浪费时间和资源。
通常,我会问自己以下问题:
- 我在公司具体做什么工作?
- Зачем?
- 谁将使用它以及如何使用它?
- 我有什么选择?
- 参数的限制是什么?
这里有一些关于参数的更多细节:如果你知道可以牺牲一些东西,你通常可以极大地改变工作场景:例如,可解释性,反之亦然,百分之几在这里不会发挥作用,我们有一个非常快的解决方案,客户需要它,因为他为管道在 AWS 中运行的时间付费。
数学
在这里,你自己思考和理解一切 - 如果没有基本数学知识,你只不过是拿着手榴弹的猴子(对不起随机森林) - 所以你至少需要理解基本的东西。 如果我要编制一个非常小的列表,它将包括:
- 线性代数——海量资源轻松Google,寻找最适合你的;
- 数学分析-(至少前两个学期);
- 概率论在机器学习中无处不在;
- 组合学——它实际上是理论的补充;
- 图论 - 至少 BASIC;
- 算法——至少前两个学期(参见 Cormen 在他的书中的建议);
- 数学逻辑——至少是基础的。
实用的数据分析和可视化
最重要的事情之一是能够不怕接触数据,对数据集、项目进行全面分析,并创建快速的数据可视化。
探索性数据分析应该变得很自然,就像所有其他数据转换以及从 UNIX 节点创建简单管道(请参阅以前的文章)或编写可读且易于理解的笔记本的能力一样。
我想提一提形象化:百闻不如一见。
向经理展示图表比一组数字简单一百倍,因此 matplotlib、seaborn 和 ggplot2 是您的朋友。
软技能
能够向他人传达您的想法以及结果和担忧(等)也同样重要 - 确保您可以用技术和业务术语清楚地说明任务。
您可以向您的同事、经理、上级、客户和任何其他需要的人解释正在发生的事情、您正在使用哪些数据以及您得到了什么结果。
您的图表和文档应该在没有您的情况下阅读。 也就是说,你不需要去你那里就能明白那里写的是什么。
您可以进行清晰的演示来阐明要点和/或记录项目/您的工作。
您可以以理性且不带感情色彩的方式表达您的立场,说“是/否”或质疑/支持某个决定。
训练
您可以在许多不同的地方学习所有这些内容。 我将给出一个简短的清单 - 我尝试了其中的所有内容,说实话,每个项目都有其优点和缺点。 尝试一下并决定什么适合您,但我强烈建议您尝试多种选择,而不是陷入其中。
- 在线课程:coursera、udacity、Edx等;
- 新学校:线上和线下——SkillFactory、ShAD、MADE;
- 经典学校:大学硕士课程和高级培训课程;
- 项目——您可以简单地选择您感兴趣的任务并将其剪切,上传到github;
- 实习——很难在这里提出任何建议;你必须寻找可用的实习并找到合适的选择。
有必要吗?
最后,我想补充三项我自己努力遵循的个人原则。
- 应该很有趣;
- 带来内心的愉悦(=至少不会造成痛苦);
- “成为你的。”
为什么是他们? 很难想象每天做某事却不享受或不感兴趣。 想象一下,你是一名医生,你讨厌与人交流——这当然可以以某种方式起作用,但你会因为不断有病人想问你一些问题而感到不舒服。 从长远来看,这是行不通的。
为什么我特别提到内心的快乐? 在我看来,这对于进一步的发展以及原则上的学习过程是必要的。 当我设法完成一些复杂的功能并构建模型或计算重要参数时,我真的很喜欢它。 当我的代码美观且写得很好时,我很享受。 因此,学习新东西很有趣,并不直接需要任何显着的动机。
“成为你的”与这大致就是你想做的事情是一样的感觉。 我有一个小故事。 从孩提时代起,我就对摇滚音乐(以及金属 - SALMON!)感兴趣,并且像许多其他人一样,我想学习如何演奏,仅此而已。 事实证明,我没有听力,也没有声音——这根本没有困扰我(我必须说这并没有困扰舞台上的许多表演者),当我还在学校时,我得到了一把吉他......很明显,我真的不喜欢坐几个小时玩它。 事情进展得很艰难,在我看来,总有一些废话要出来——我根本没有从中得到任何乐趣,只是感到糟糕、愚蠢和完全无能。 我真的强迫自己坐下来上课,总的来说,这对马来说不是好食物。
与此同时,我可以相当平静地坐上几个小时开发一些玩具,使用脚本在 Flash(或其他东西)上制作动画,并且我非常有动力完成游戏中的元素或处理运动机制和/或连接第三方库、插件和其他一切。
在某些时候,我意识到弹吉他不是我的事,我真的喜欢听,而不是演奏。 当我写游戏和代码时(当时听各种金属音乐),我的眼睛闪闪发光,这就是我当时喜欢的,这就是我应该做的。
你还有别的问题吗?
当然,我们无法讨论所有主题和问题,因此请写评论并私信我 - 我总是很乐意提出问题。
来源: habr.com