What will we cover?
- Is Python the correct language to learn for a Data Scientist?
- How much Python do you need to learn as a Data Scientist?
- How to learn Python fast?
- How long does it take to become good at Python?
- How to get started with Python?
Is Python the correct language to learn for a Data Scientist?
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.
- Python is easy to use and learn.
- Python has powerfull fast libraries.
- Python has a huge community and it is easy to get help.
- Python has easy data handling tools for reading and generating spreadsheets, parquet files, csv files, web scraping, sql databasis, and much more.
- Python has great Machine Learning libraries developed by giants like Google (tensorflow – Tutorial) and Facebook (PyTorch – Tutorial).
- Python support graphical data representation with libraries like Matplotlib (Tutorial).
- Python has SciKit-learn for predictive data analysis (Tutorial).
- Python has easy to use data representation with NumPy and pandas (Tutorial).
…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.
Do I need a Computer Science degree to use Python?
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?
How to Learn Python Fast?
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.
Pitfall 1: I understand the solution when I see, but why couldn’t I figure it out – am I stupid?
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.
Pitfall 2: Get distracted when it gets tough
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.
Pitfall 3: Different sources of learning
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.
Pitfall 4: Comparing yourself to others
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.
How long does it take to become a good Python programmer
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?
- Remind yourself daily, that there are pitfall and all the best in the world have been there.
- Keep it playful – the majority of the time it is joyful to program.
- Accept it as a learning journey that will never end.
How to get started with Python for Data Science?
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.
Start Python for FREE
There is a full 8 hours video corse for Python.
- 17 video lessons teaching you everything you need to know to get started with Python.
- 34 Jupyter Notebooks with lesson code and projects.
- A FREE eBook with all the learnings from the lessons.
Expert Data Science Blueprint
A free 12 hours course to get you on the right track with Data Science.
- 15 video lessons – covers the Data Science Workflow and concepts, demonstrates everything on real data, introduce projects and shows a solution (YouTube video).
- 30 JuPyter Notebooks – with the full code and explanation from the lectures and projects (GitHub).
- 15 projects – structured with the Data Science Workflow and a solution explained in the end of video lessons (GitHub).
Start Machine Learning for FREE
Another great free resource is the 10 hours free Machine Learning course.
- 15 video lessons – which explain Machine Learning concepts, demonstrate models on real data, introduce projects and show a solution (YouTube playlist).
- 30 JuPyter Notebooks – with the full code and explanation from the lectures and projects (GitHub).
- 15 projects – with step guides to help you structure your solutions and solution explained in the end of video lessons (GitHub).