If you are a data scientist, there’s a skillset you can learn that is transformational.
It will wham doors open for you, wherever you go. Doors your colleagues can’t even see.
It will rocket-launch you right up to a new level, where what you accomplish with ease makes other drool with envy.
And the best part: once you truly learn it, you’ve got it going for life.
What is this skill set, you eagerly ask, from the edge of your seat?
Software engineering skills.
Add this to your almighty data science skill set, and there’s no stopping you. I’m not just talking about becoming a data engineer or a type B DS. Even if you want to stay a normal type-A-for-analyst data scientist, learning this skillset lets you run happy-emoji laps around the crying-emoji data scientists who don’t.
So… How do you do that? A few of the keys to this kingdom:
1) Escape the notebook
You are going to hate this one:
You need to become GREAT at writing code OUTSIDE of notebooks.
Yes, I know you love Jupyter. It’s fantastic. Nothing against it.
But you can only go so far in that playpen.
If you want to write functions, classes, and modules that OTHER data scientists import into THEIR notebooks…
Develop systems that harness the work other data scientists are doing, at a higher level…
Or even make your shining insights usable by people who don’t read math books for fun…
You can’t do any of these things in notebooks. Not in any remotely effective way.
It’s time to gear up with more sophisticated software engineering practices and tools.
2) Master Object-oriented programming
It’s weird how bad most data scientists are at this.
OOP is way more important than you realize. It’s the foundation of everything else you do when writing complex, powerful software systems.
When you import a DataFrame from Pandas… that’s a class.
When you create a LogisticRegression classifier in scikit-learn… that’s a class too.
You’re USING classes all day, every day. Type B data scientists made those for you to use.
But that just scratches the surface. NOTHING will level you up and set you apart from other data analysts like learning how to write good object oriented code.
3) Learn to write unit tests
Well, except maybe writing unit tests.
This one’s a BIG deal. The libraries you rely on every day use automated tests. They use a lot of ’em. That ought to tell you something.
Writing automated tests, and doing test-driven development… it’s a SUPERPOWER. It completely changes what you are capable of. When you learn to write tests, you can suddenly accomplish things you couldn’t even touch before. Especially when combined with your skills in OOP. See how they build on each other?