It’s been said that a data scientist’s skillset is a combination of computer science, statistics, and expert knowlege in a given domain. Any steps you can take to imrove your abilities in any of these areas will make you a better data scientist, then. Lately, I’ve been doing a lot of studying of algorithms, and it’s definitely improved my data science abilities.
If you’re a regular reader of this blog (first off, thank you!) then you might have noticed my post frequency has dropped off recently. That’s because I’ve been very absorbed in studying for a technical interview. My first interview was last week, and round two is coming up in a couple of days. Also, I haven’t thought much about many core computer science concepts since I graduated from college in 2011. Given the importance of this interview to me, I needed to step up my algorithm game, which lead me to the preparation stage of my process.
To get a complete reintroduction to algorithm fundamentals, I read Steven Skiena’s The Algorithm Design Manual from cover to cover. Most of this text was review from my computer science undergrad degree, but some of the concepts in the book went even further, giving me a deeper understanding. Also, having everything presented in a great, cohesive order, I made stronger connections between the concepts than I ever had in college. If you want to up your theoretical algorithm game, I highly recommend this book.
Theory is fundamental, but the interviews I’ve been having are based on applied algorithm problems. To get some hands on experience with the kinds of problems I expected from my interviewers, I’ve been using the LeetCode Online Judge. This awesome resource has hundreds of example technical interview problems, and it allows you to submit your code to run against its test suite to let you know if your answer is satisfactory. Whether you have an upcoming technical interview or not, this resource is amazing for pushing your programming skills.
In any field, it’s important to constantly sharpen your skillset. In a field that seems to change as quickly as data science does, it’s esspecially easy to get swept away with the current fads. Having a strong understanding of the fundamentals of computer science and statistics will help you navigate the rapidly changing field without getting lost, no matter what domain in which you’re practicing data science.