I thought about why I felt like some data scientists are more Junior- to Mid- level data scientists; rather than Mid- to Senior- level. The reason I think this is because I often ask them to propose some type of design for a solution to multiple requirements / problems. The response is almost always ‘how do I do this?’ - bad answer. This is very different from high-performing teams I’ve been on where it is more common to have multiple people arguing over multiple solution designs. Discussions can become quite heated because it determines the direction of the code / work, the future of the project, and (often) career trajectory.
Mindset
Systems design thinking is a sign of maturity because in order to both create solutions and compare them you have a strong grasp of the fundamentals. This means understanding:
i) what goals you may want to optimize and why ii) what tools (and their characteristics) are at your disposal to meet the goals iii) how to effectively employ those tools to reach your intended goals
These are important at every level. From planning-out an algorithm, to architecting a cloud system. It is incredibly difficult to do it across fields, such as statistics and computer science, as well as business and organizational needs. But it is the common trait of all senior level people.
The difficulty in design is that 99% of your approaches will be ‘good enough’, but only 1% are able to meet all your objectives AND be the simplest. It is one of the most human things that we do. So much so, that in human-computer interfaces, high-level systems thinking is where computers perform poorly - there are too many complicated variables!
Typical Traits By Background
Mathematician
Outlook: problem-solver
- Analytical - very thoughtful about the problem so that you are not unprepared
- Methodical, thoroughness - moves step-by-step in a logical fashion, when you say its done, it is complete
- Classical problem solving - Python and Data Manipulation
Programmer
Outlook: get things done
- Work ethic - Motivated to use python coding to resolve solution requirements while applying concepts of data mining and machine learning.
- Meets deadlines - Team collaboration and commitment to goals.
- Delivery agression - Experiment with different styles of presenting results and use technology to learn about it.
Mentoring
I do not tell employees that this is what I’m looking from them. Instead, I try to perform these steps in a problem-solving manner, every day, in-front of them. I look to see them realize that this is both important and useful, and I look to see them emulate the process. The most important aspect is the methodical process. It should be slow because there are often many gut-instincts that should be listened to, and inspected analytically, before making a decision. This comes naturally for senior developers, and is often why they pursue roles such as ‘solution architect’. But, if a less mature developer tries it, they will either be quickly flustered, or they will blurt-out one of the few patterns they memorized. It is a true test of maturity.