That is a good question to ask yourself. You want to become a Data Scientist, maybe you have some experience, but feel weak in the programming aspect, or maybe you start from scratch.
If I was to start my journey as a Data Scientist one of the questions I would ask myself, is, do I have the tools for it.
R is often high on the scale of programming language and environment to use as a Data Scientist. The language R is designed for effective data handling, operations on arrays and matrices, has data analysis tools, graphical facilities, and well established environment.
That sounds like all we need, so why bother looking further?
In the top there is a battle between two candidates: Python vs R.
Actually, Python is a general purpose language that has a wide aspects of uses, not only Data Scientist. Also, web services, game development, big data backend systems processing high volume data, just to mention a few.
With this description, it looks like R is tailored for Data Science, while Python is used for everything. The choice seems easy – do you want a tool made for the purpose, or something for general purpose?
Funny enough, as it might seem at first, Python has become more popular than R. Why is that?
A few reasons why Python is more popular than R.
…and the list could go on.
Python is also a great fit when you want to build tailored-made system, which integrate up against any other platform or service, like automatically get data from various sources.
Python is programming and programmers have computer science degrees. Do you need one to become a good Data Scientist?
The short answer is: No.
A Computer Science degrees will enable you to build anything. Let’s try to think of it differently.
Think of transportation – car, busses, bikes, trains, which can move you from A to B. People without a driving license can use busses and trains. All they need is to know how to buy a ticket, understand a schedule to find out to get from A to B. If you get a driver license, then you can driver your own car. Finally, if you are a car mechanics, you can repair and possibly build your own car.
Similarly, a computer science degree will enable you to build cars, busses, trains, and more, which other people can use. A Data Scientist is like a person with a driver license, and you don’t need to be able to repair a car to drive it. That is, you only need to understand and navigate the dashboard in the car.
Data Science is the same., you need to understand the things you use, but you do not need to be able to build them yourself.
But wait! You might object. It is still programming, when I use the things I use.
Yes, but the level of programming is simple and you use the complicated things like you use a car without being a car mechanics.
Feel more comfortable?
Now you are ready and know what you want – how to get there fastest without wasting time.
Maybe one question before that .
Can everybody learn Python? Do you need special skills?
I have so far never met anyone, which could not learn Python to the level of Data Science – and honestly, also for the level of Computer Scientist. It is just a question about dedication and interest to get to the last steps.
But becoming a Data Scientist using Python is not a problem.
The question is more how to learn it fast? The best way to answer that is to look at some of the most common pitfalls that make people learn it slower and some give up on the way.
Did you ever learn a new language – a speaking one – like English. If you are non-native English, then you started learning English at once. Remember that?
First you started understanding a few words. Then you started to understand full sentences when people where speaking English, but you could barely express yourself in English yourself. It took time to get there.
Programming is the same – at first you can read and understand the solutions to your problem, it takes time for you to be able to express yourself in programming language.
The feeling you have while trying to solve a programming problem for long time, but not succeeding can be devastating. Then when you see the solution and it looks simple, then you start to feel stupid.
But stop there – this is normal. You learn first to understand code before you can express yourself in code. Just like learning a new speaking language.
We have all been there – and we still get there – just with different more complex problems. It will never end, you will just become comfortable about it and the challenges you face will be more and more complex.
When something gets difficult the easy exit is to quit and start something new easier.
Maybe you think, this is too difficult for me – I am not smart enough. This is more fun, so I start this now.
The truth is, that every talented programmer on planet earth has multiple times been stuck at a problem for days – not being able to solve it – if it was a bug or just a difficult problem to solve does not matter. But they have all been struggling with a problem for long time.
This can be quite difficult to deal with as a beginner. You sit with a problem, which does not seem hard and you feel like everyone else can solve it – the logical conclusion is that you are not smart enough, right?
Then you might change to another programming project – and think that is fine, you will still learn programming.
But the truth is, that solving hard problems or finding bugs is not easy. It takes time and you will learn a lot from it. Escaping to another project will not teach you as much as the difficult ones.
The best programmers are the ones that never give up when it gets tough. This is what the highly paid consultant are paid for, solving problems where other give up.
This is often difficult to understand in the beginning. But there are many styles in programming.
When you know people and been working professionally with them in a development environment for long time, you can actually see who coded it. Their style falls through.
Why does that matter?
In the beginning it does. Because, what most also fail to understand in the beginning is, that you can solve problems in endless ways. There is often no perfect solution for a problem, only different solutions which different tradeoffs.
As a beginner, you want to learn programming and you will not see the differences in styles. But if you starte learning from one person, then another one, then yet another one, then it becomes difficult.
This has never been more relevant in the age where so many people share online learning.
Again, it is like learning English with a specific dialect and different vocabulary. It is difficult in the beginning to distinguish between them, and difficult to see it matters. But in the long run you will speak English optimized for your environment.
Keep focused learning from one source. Do not change from one place to another all the time. Master the basics from one place until you are comfortable about it.
We often compare our learning journeys to others. You need to know if you are doing good or bad, if you need to adjust your approach or not.
This sounds good, right?
You need to keep in touch with reality and not waste time.
This is a major pitfall. You will see solutions to your problems, which are solved more elegant. There will be people that ‘just started’ and are already typing in code like you would never dream of.
This is devastating. Do you not have what it takes?
As hard as it is to accept, that you are not the fastest learner, and you need to work harder than others to reach the same. It is just as hard to realize, that the people you compare yourself with are often the top-of-the-top.
We all have our own journey. Mine is different from yours. I was good at one thing in the beginning, but you are awesome at something I never understood.
Accept that we all have our own journey – there will be times when you feel like the only one not understanding something simple (or at least I did that many times) – but other times when you actually understand something extremely complex.
We often miss these aspects, because we always compare ourselves to the brightest person in our context in any moment. That might be different persons from time to time.
Further, in the days of internet, the environment you compare yourself to is huge.
As you see, this comparison is not fair and will do you no good.
Accept that your journey is yours alone. Comparisons with others do not help you.
I wish there was a simple answer to that. Unfortunately it is not that easy to answer.
First of all, what are your initial expectations and how will they evolve over time. Often people are fine with just some simple skills, but when they learn more they want to master more and it never stops.
It is natural. The problem is, your expectations to feeling successful moves along the way.
Secondly, is the dedication to it. You need to spend time on solving problems.
Experience shows, that either you need to burn for learning programming or you need it to solve you daily challenges.
It sounds like you need to keep motivated. And yes, you do. But the good news is, it is very rewarding and fulfilling to program. You are building something, you are creating something, you are the creator of something amazing. That feeling is awesome.
Does that mean it is just fun all the way from the beginning to end. Not at all, did you read the pitfalls above? Well, if you didn’t, go read them.
What I am saying is, it is a journey that will never end. The journey will sometimes feel bumpy, but the results are rewarding.
The more time you spend, the faster and better results you will get.
But how to keep motivation?
On this page there are a lot of resources available to get started with both Python and Data Science.
To help you further there are structured free courses you can follow with everything prepared.
There is a full 8 hours video corse for Python.
A free 12 hours course to get you on the right track with Data Science.
Another great free resource is the 10 hours free Machine Learning course.
Build and Deploy an AI App with Python Flask, OpenAI API, and Google Cloud: In…
Python REST APIs with gcloud Serverless In the fast-paced world of application development, building robust…
App Development with Python using Docker Are you an aspiring app developer looking to level…
Why Value-driven Data Science is the Key to Your Success In the world of data…
Harnessing the Power of Project-Based Learning and Python for Machine Learning Mastery In today's data-driven…
Is Python the right choice for Machine Learning? Should you learn Python for Machine Learning?…