Coming from the software development background, I am always surprised with the comments from some of the fellow data scientist colleagues that you can’t be data scientist and software developer at the same time. Additionally, this was usually followed by the comments that you need different set of skills to be a data scientist from the skills that are necessary for a software developer. While this may be true to certain extent, in this article, I will try to prove that these skill sets are not that far from each other and that they don’t look like this:
, but more like this:
In fact, what I have noticed is that data science as field could use experience form software development world. In this article, I will mention just some of the practices that could be beneficial. My argument is that good software developer with the good knowledge of machine learning and artificial intelligence can bring extreme value to the your business.
One might ask why do I write this article. Well, I have this feeling that there is certain bad attitude in the industry. Personally, I never liked people who act like elitists and I’ve spent a lot of time fighting we are above you attitude in software development industry as well. I even have a talk How to fight anxiety, ego and overburn, which is addressing this topic. And yeah, this is just my personal opinion, based on my personal experience and nothing more. They can be changed, of course 🙂 If you have any thoughts please leave a comment.
Data Scientists are smart people. Their math skills and ability to look at data from different perspective are amazing. However, sometimes reading and understanding code that is written by data scientist can be huge pain. This can be a big problem when you are working in a team. Good software developers learned how to represent complicated ideas and concepts with clean code, so it is easily understandable by the rest of the team. It seems to me that data scientists are still having problems with that.
One of the other arguments that I have heard is that coding is just a temporary tool for data scientists, and that in the future tools will evolve towards visual solutions. This again is true to a certain extent. Even if this happens, coding can be a valuable skill in your toolbox. In general, software development tools also converged to this point. Today, for an instance, we are having various CMS and out of the box solutions that can help you build website easier.
Versioning and Automation
Machine learning models and neural networks need to be deployed in some kind of application in the end right? Sometimes they need to be re-trained and maintained. Some of them need additional human input (human in the loop). Software developers are aware of the risks that can happen during the deployment process. They also know how to mitigate those risks with versioning (of the model) and how to automate mentioned deployment and training. Learn these skills, they are very handy.
I’ve already mentioned that data scientists have exquisite mathematics abilities. There is no doubt about that. However, software developers often have solid math background as well. Especially if they have degree in Computer Science. Sure, they may forgot linear algebra and probability during the time in the industry, but that can be fixed rather quickly.
Do you know who else has been working with data apart from the statisticians and data scientists? Yap, you all ready know my answer. From the beginning of the career, developers need to learn all about different ways to store, read and present the data. SQL as a language exists practically forever and is the skill that can be transferred to other technologies, like Pandas.
Apart from that, being able to work with NoSQL databases like MongoDB, became mandatory in recent years. That is why developers have a lot of experience with unstructured data. Did someone mentioned web crawlers and data scrapping? Majority software developers know how to perform these tasks.
Clients and Presentations
Data scientists usually need to find the best solution for the clients and help them to improve their business. Visualization of the data and rationale why some business decisions should be made are the part of the gig. While software developers are often not that close to the business process, they are able to understand the requirements and realize what needs to be done. These skills can be often found at technical team leads and software architects, so they can be extremely useful during initial workshops with the client. Apart from that, if developers are coming from the agile environment, they’ve probably presented features to the stakeholders on the regular basis.
In this article, we investigated some of the reasons why software development and data science skills are not that far from each other. Going from software development to data science, should not be a big problem to the good software developers with the interest in the field. If you need some advice on how to do so, shoot us a message via contact form. Also, if you need some consultancy or outsourcing services check out our consulting page and learn what we are all about.
Thanks for reading!
Read more posts from the author at Rubik’s Code.