Data Science: Roadmap and Radar Chart of Skills

Pedro Prado
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:

Yikes — I have to improve my Big Data skills!

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!

--

--

Pedro Prado

Identity crisis between a Data Scientist and Data Engineer