原文:
towardsdatascience.com/how-id-become-a-data-scientist-if-i-had-to-start-over-d966a9de12c2
我已经作为一名数据科学家工作了近三年,在这篇文章中,我想分解如果我从零开始重新学习数据科学,我会遵循的路线图,从你需要知道的知识到如何找到你的第一份工作。
数学
由Antoine Dautry在Unsplash上的照片
毫无疑问,我会从数学开始。
数学是许多技术工作的核心,我恐怕没有其他途径可以绕过它。
数据科学全部关于用数据和算法解决问题,数学是你完成这个任务最基本的概念。工具和技术会来来去去,但数学知识始终是恒定的。
幸运的是,成为一名数据科学家所需的数学技能并不需要博士水平,其中大部分在高中最后几年就已经教授了。
通常,你需要学习三种类型的数学:
-
概率与统计学
-
微积分
-
线性代数
单独来看,这些领域都非常庞大,但我们不需要知道所有内容;我们需要的是许多数据科学职位所需的批判性知识。
概率与统计学
概率和统计学是最重要的,我每天都在使用它们。这是一个广泛的领域,但以下列表应该涵盖了您的大部分基础:
-
描述性统计 – 用于一般分析。包括均值、中位数、标准差、分位数、相关性和直方图、条形图、折线图和饼图等可视化。
-
概率分布 – 你需要了解二项分布、泊松分布、正态分布、伽马分布和 t 分布。
-
概率论 – 最重要的概念是最大似然估计、中心极限定理和贝叶斯统计。最大似然估计推导出所有标准损失函数,如最小二乘法和对数损失。
-
假设检验与置信区间 – A/B 测试现在无处不在,而假设检验是它们幕后工作的方式。数据专业人士经常使用几个测试,包括 Z 检验、T 检验和卡方检验。
-
建模与推断 – 在这里,你应该了解的主要是线性回归和逻辑回归,尽管它们现在在技术上属于“机器学习”类别。
要学习上述内容,我推荐由 Peter Bruce, Andrew Bruce 和 Peter Gedeck 编著的 《数据科学家实用统计学》。它 __ 被实践者高度评价,因为它主要是为数据科学家设计的,而不仅仅是一本普通的统计学教科书。书中还有代码示例,这样你可以早期就获得一些编程实践!
微积分
微积分是机器学习算法学习的方式,例如线性回归中的梯度下降和神经网络中的反向传播。我建议学习以下内容:
-
什么是导数,它测量的是什么?
-
标准函数(正弦、余弦、指数、正切等)的导数。
-
转折点,以及极大值和极小值如何与它们相关?
-
链式法则和乘积法则。
-
偏导数和多变量微积分。
-
雅可比矩阵和海森矩阵
以下教科书,《机器学习数学》 由 Marc Peter Deisenroth 编著,涵盖了上述所有内容。你可能不需要书中的所有内容,有些主题可能有些高级,但如果你这样做,你的微积分知识将非常出色。
线性代数
线性代数处理向量和矩阵,并在数据科学和机器学习中得到广泛应用。矩阵在深度学习和大型语言模型中扮演着核心角色。它们包含了训练过程中使用的所有偏导数计算。
这是你应该知道的内容:
-
向量 – 它们是什么,如何计算大小、方向和分量。这些问题你应该知道答案。
-
矩阵 – 理解矩阵是什么以及它们是如何应用的。
-
矩阵运算与变换 – 迹、逆矩阵、转置和点积是数据科学中使用的矩阵变换。例如,主成分分析(PCA)可以找到矩阵的特征值和特征向量。
-
线性方程组系统 – 这通常出现在我们需要考虑多个约束和因素的优化问题中。
下面是一个关于线性代数的优秀 Coursera 课程,涵盖了数据科学和机器学习所需的所有内容。
编程与软件开发
由 Ilya Pavlov 在 Unsplash 上拍摄的照片
在你掌握了数学知识之后,是时候发展你的编程技能了。
你可能知道,数据科学中需要的主要语言是 Python 和 SQL,其中前者更为重要。
Python
对于 Python,我建议选择任何入门课程;以下是一些建议。
不论你选择哪门课程,任何入门课程都会教你相同的内容,所以不要过度思考。
这些是你应该确保学习的。
-
变量和数据类型
-
布尔和比较运算符
-
控制流和条件
-
For 和 While 循环
-
函数
-
本地数据类型(列表、字典、元组等)
-
类
-
包
此外,确保通过练习问题或独立项目获得实际操作经验。这是学习编程中任何东西的最佳方法。所有关于获得练习的机会!
SQL
在你开发了 Python 技能之后,是时候学习一些 SQL 了。它比 Python 更容易学习,而且不需要花太多时间,但对于数据科学家来说仍然是一项关键技能。
再次,选择一门入门课程,并开始逐步学习。以下是一些选项:
需要学习的内容包括:
-
SELECT FROM*(标准查询)
-
ALTER, INSERT, CREATE(修改表)
-
GROUP BY, ORDER BY
-
WHERE, AND, OR, BETWEEN, IN, HAVING(过滤表)
-
AVG, COUNT, MIN, MAX, SUM(聚合函数)
-
FULL JOIN, LEFT JOIN, RIGHT JOIN, INNER JOIN, UNION
-
CASE
-
DATEADD, DATEDIFF, DATEPART(日期和时间函数)
你需要学习所有用于 SQL 简单分析的基本函数。这是一个相当小的语言,所以要学习的东西不多,基础知识会让你走得很远。
其他工具
如果你有时间,我建议投资一些其他工具和技术。我主要推荐的是终端(bash 或 z-shell 脚本)和 git。
这些在行业内被广泛使用,我希望能在我第一次数据科学角色之前更多地学习它们,因为这将使调整期变得更加容易。
对于 git,我推荐来自 freeCodeCamp 的这门速成课程:
此外,对于学习终端和 bash shell 脚本,我也推荐来自 freeCodeCamp 的这段视频。
哦,我还发现了一个有用的工具,那就是 Anaconda,它就像一个一站式商店,可以在你的本地计算机上解决数据科学问题。他们的网站有一个很好的入门教程。
数据科学 & 机器学习
好的,到目前为止,我们已经开发了我们基本的编程和数学技能,这是每个数据科学家都需要具备的基本能力。
现在,我们转向与数据科学和机器学习相关的更有趣的内容。
我会从学习一些更具体的数据科学和机器学习库开始。我推荐的是:
-
NumPy – 专为科学计算设计,提供许多数学函数和矩阵支持。
-
Pandas – 在 Python 中加载、操作和数据处理的首选库。它非常适合几乎任何数据分析任务,并且易于使用。
-
Matplotlib – 作为数据科学家,你必须可视化你的数据或结果。Matplotlib 由于其广泛的功能,是 Python 中领先的可视化包。
-
Sci-Kit Learn – Python 中主要的机器学习和统计学习包。它使用简单,是进入机器学习世界的一个很好的起点。
下一步是深入研究一些机器学习和算法理论。这将使你能够开始使用这些新的编程技能来实际参与现实世界的数据科学问题。
到目前为止,最好的入门课程是 Coursera 上的 Andrew Ng 的机器学习专项课程。这是我在 2020 年上过的第一个机器学习课程。然而,它已经进行了更新,包括推荐系统和强化学习等令人兴奋的主题。不仅如此,编码教程现在也使用 Python 语言了!
我推荐的下一门课程是 Andrew Ng 的 深度学习专项课程。这是机器学习专项课程的后续课程,将教你关于深度学习的所有你需要知道的内容,这也是人们经常进入数据科学领域的主要原因之一。
项目
由 Andrew Neel 在 Unsplash 上拍摄的照片
在我们掌握所有这些新知识之后,是时候进行最关键的步骤了,那就是项目。
通过完成项目,所有学习的内容都应该逐渐融入,你将获得使用 Python、数据科学库和机器学习理论的实际操作经验。
这些是一些尝试的想法:
-
Kaggle:参加比赛并尝试不同的想法。唯一的目标不是获胜,而是学习如何处理现实世界的数据问题。
-
从零开始实现机器学习算法:我尝试了这个项目,它非常有用。从第一原理实现整个算法将彻底教会你它们是如何工作的,以及如何在代码中优化它们。
-
个人兴趣:如果你真的喜欢某个领域,比如运动或购物,想想你可以在该领域开展的数据相关项目。这可能包括梦幻足球或为喜欢的衣服创建推荐引擎。
你可以做任何你喜欢的事情,而且绝对不必局限于上面的列表。
主要目的是在数据科学领域积累大量的实践经验。
突出
由 Jeroen den Otter 在 Unsplash 上拍摄的照片
在申请入门级职位之前,我会确保我的简历和申请材料在某种程度上比其他人更突出。
目前数据科学家的市场相当严峻,很多人都想成为数据科学家,所以我建议做一些额外的事情,让自己在别人之上。
这里有一些选项,做起来并不特别困难:
-
GitHub 个人资料 -> 创建并填充一个 GitHub 个人资料(如果你需要一些灵感,可以参考我的个人资料)。至少添加一个仓库;这可能是你完成的项目或一些编码挑战。这不仅会教你一些 Git 和 GitHub 的知识,还会展示你的兴趣。
-
撰写博客文章 -> 这真是太简单了;我惊讶为什么更多的人不尝试。你所需要做的就是了解一个主题,然后写一篇关于该主题的短文。目标不是让它走红,而是让它成为你可以向潜在雇主展示的公开学习日志。再次强调,这显示了你对该领域的兴趣,这正是你想要传达的。
-
实施研究论文 -> 这一项有点困难,但你可以重新实施一篇研究论文。我之前尝试过,发现很难匹配论文中给出的结果。尽管如此,这是学习机器学习的巅峰,你将获得宝贵的知识,这会给面试官留下深刻印象,并为你提供一些有趣的话题来讨论。
-
创建个人网站 -> 创建一个关于你的数据科学目标和进展的个人网站是展示你所做所有工作的绝佳方式。这也会让你学习到一些对数据科学家有用的其他技术技能。
我保证 80%的申请者不会有这些,所以你将立即脱颖而出,并增加进入下一轮面试的机会。这是经典的帕累托法则,做 20%的事情会给你带来 80%的优势。
需要注意的是,仅凭这些并不能保证你能够找到工作;你仍然需要成为一个具备所有技术和软技能的合格候选人。然而,它们就像是蛋糕上的糖霜,从某种意义上说。
工作申请
图片由 Sebastian Herrmann 在 Unsplash 提供
现在,我们已经到了最后阶段:申请工作。这是最困难的部分,因为大部分情况下,你是否能获得一个职位超出了你的控制范围,并且涉及到相当大的运气成分。
为了提高你的运气,确保你拥有我之前提到的那些建议,让你的申请脱颖而出。更好的是,做所有这些,这将真正提高你的机会。
然而,根据经验,在数据科学职业生涯的开始阶段,找到第一份工作实际上是一场数字游戏。我说我申请了300 多个职位时,我不是在开玩笑。它们并不都是数据科学相关的,但其中很大一部分是。
这并不是要让你气馁。有些人会反对这种方法,但确实有效。当然,建议你为每个申请稍微调整一下你的简历,但这可能很耗时,可能不值得付出努力。
此外,不要盲目地申请你看到的所有职位。审查职位描述,并确保你愿意在这个职位为公司工作。
如果你一开始没有被 FAANG 公司接受,不要担心。几乎每家大型公司都会有一个数据科学团队,所以你很可能最终会找到一个你喜欢的地方。第一个角色旨在尽可能多地学习,并确保你的立足点。如果你想朝不同的方向发展,你总是可以调整方向。
我希望这篇文章能成为你成为数据科学家的路线图。我并不是说如果你遵循这篇文章中的所有内容,你就能保证获得入门级职位,但它肯定会推动你朝着这个目标前进。
另一件事!
我提供一对一的辅导通话,我们可以讨论你需要的一切——无论是项目、职业建议,还是只是确定你的下一步。我在这里帮助你前进!
1295

被折叠的 条评论
为什么被折叠?



