Types of Data Professionals

Dataviz logo representing a Spider chart.

The field of data offers a diverse array of job titles, making it challenging to navigate without getting lost in the jargon and uncertainty about which roles to pursue.

The charts below offer deeper insights into the competencies needed, salary ranges, and popularity trends for the four primary job titles.

It's a good opportunity to learn how to make a little application with React and D3.js, featuring 3 inter-connected chart types with smooth animated transition: radar chart, line chart and lollipop.

Useful links

The plot

Here is what we want to build. It is highly inspired by a work from Kevin Rosamont Prombo.

Four buttons are provided, one for each type of data professional. Clicking on it will update the 3 following charts.


Types of Data Professionals

The field of data offers a diverse array of job titles, making it challenging to navigate without getting lost in the jargon and uncertainty about which roles to pursue. The charts below offer deeper insights into the competencies needed, salary ranges, and popularity trends for the four primary job titles.

ML OpsData PipelinesDatabaseData VizStorytellingBusiness InsightsReportingExperimentationStatsML ModelingDeployment
00

Dive deep into the 4 main types of Data Professionals. Understand their main required competencies, their salary ranges and their popularity.

Data

The radar chart explains what competencies are required to be a Data Engineer, a Machine Learning Engineer, a Data Scientist or a Data Analyst. The data and the representation have been first suggested by Kevin Rosamont Prombo.

The little lollipop plot provides the estimated salary range for the job. Data from review n prep and glassdoor.

The line chart gives an estimate of the job popularity based on its google trend score in the last ~10 years.

Click the Show code button above to get a sandbox with the 3 datasets at json format.

Global state

The first thing that is required here is a global state.

The root file of the application computes all the available groups in the dataset (allGroups) and use the first group to state the initial state of the application.

const allGroups = data.map((d) => d.name);
const [selectedGroup, setSelectedGroup] = useState(allGroups[0]);

When the user clicks a button, the state is updated thanks to the setSelectedGroup() function. The newly selected group (selectedGroup) is then passed to the graphing component as a prop.

Charts

Then we need to build 3 charts based on the 3 filtered dataset.

The React graph gallery already provides in-depth tutorials for those 3 chart types. So please refer to the radar chart, line chart and lollipop sections to learn how to build them.


Animation

Most of the fun here comes from the smooth, animated transition between groups. It is also the trickiest part to implement.

As always in this gallery, the animation is computed thanks to react-spring, a javascript library for spring animation in React.

It would be way too long to explain how to implement it properly in this page. But to put it in a nutshell, you need to render animated elements instead of usual SVG elements. Here is how the line is rendered for instance:

const LineItem = ({ path, color }: LineItemProps) => {
  const springProps = useSpring({
    to: {
      path,
      color,
    },
    config: {
      friction: 100,
    },
  });

  return (
    <animated.path
      d={springProps.path}
      fill={'none'}
      stroke={color}
      strokeWidth={2}
    />
  );
};

I plan to write some complete tutorials on this passionating and complicated topic. You can subscribe to the project to know when it's ready!

Subscribe

Ranking

Contact

👋 Hey, I'm Yan and I'm currently working on this project!

Feedback is welcome ❤️. You can fill an issue on Github, drop me a message on Twitter, or even send me an email pasting yan.holtz.data with gmail.com. You can also subscribe to the newsletter to know when I publish more content!