Data Science: Roadmap and Radar Chart of Skills
2 min readMar 14, 2023
What does data science comprise? There are too many articles on this topic online. I wanted to write a short one, so you could grab it and use it as a roadmap for your career path.
- Math + Statistics: this is where it all begins. Calculus, linear algebra, descriptive and inferential statistics.
- Programming: Python, R and SQL are essentials to extract information and basic build infrasctructure.
- Data Visualization: to show what you extracted. Seaborn, Matplotlib and Altair. Outside of Python world, PowerBI, Tableau or Qlik.
- Machine Learning: knowing algorithms and the workflow of ML implementations and infrastructure.
- Big Data: Hadoop, Spark and NoSQL. Some cloud provider such as AWS, GCP or Azure.
- Soft skills: showing your vizualizations, insights and proposals. You are dealing with human beings, not machines.
Each of these skills can be represented in a six-sided radar chart, so you can display and always remind you where you need to focus your time:
The Python code for this radar graph can be obtained here. With a few tweaks we have our own version for the six-sided skill map:
# Libraries
import matplotlib.pyplot as plt
import pandas as pd
from math import pi
# Set data
df = pd.DataFrame({
'group': ['me'],
'Programming': [6],
'Data Visualization': [5],
'Machine Learning': [7],
'Big Data': [3],
'Soft skills': [7],
'Math/Statistics': [8]
})
# number of variable
categories=list(df)[1:]
N = len(categories)
# We are going to plot the first line of the data frame.
# But we need to repeat the first value to close the circular graph:
values=df.loc[0].drop('group').values.flatten().tolist()
values += values[:1]
values
# What will be the angle of each axis in the plot? (we divide the plot / number of variable)
angles = [n / float(N) * 2 * pi for n in range(N)]
angles += angles[:1]
# Initialise the spider plot
ax = plt.subplot(111, polar=True)
# Draw one axe per variable + add labels
plt.xticks(angles[:-1], categories, color='blue', size=8)
# Draw ylabels
ax.set_rlabel_position(0)
plt.yticks([1,2,3,4,5,6,7,8,9], ["1","2","3","4","5","6","7","8","9"], color="grey", size=7)
plt.ylim(0,10)
# Plot data
ax.plot(angles, values, linewidth=3, linestyle='solid')
# Fill area
ax.fill(angles, values, 'b', alpha=0.1)
# Show the graph
plt.show()
# Export figure:
plt.savefig('radar_chart_of_skills.jpg', transparent=True)
I hope any of this is useful for you!