How Long Does it Take to Learn Python? Here is a 6-Week Plan
When it comes to learning a new skill, a lot of questions come to mind.
How long will it take? Am I smart enough? Do I have the time?
This is all perfectly natural; it happens to everyone. It’s totally normal to want answers to these questions, and it’s very human to analyze whether we’d be able to chisel out time from our already busy schedules.

When it comes to learning Python, like all skills, it can be quite hard to determine how long it takes to learn it. Lots of factors come into play, such as how good you want to become, how much time you can commit, your previous experience with similar topics, and so on.
We can see quite a bit of variety in the timescales proposed by online experts as well. Here are some estimated timescales I’ve found proposed on the internet:
Author | Estimated Timescale | |
Data Quest | 5 hours per week for 1 month | |
Meenakshi Agarwal via Medium.com | 6-8 weeks | |
Jan Bask Training | 60 hours | |
Programming Hero | 2.5 months | |
Code Career Genius | 30 days | |
Tech Tricks World | 1 month; 3-5 hours per day |
Last Updated April 2021
Build 11 Projects and go from Beginner to Pro in Python with the World’s Most Fun Project-Based Python Course! | By Ziyad Yehia, Internet of Things Academy
Explore CourseAlthough there is quite a bit of variety, we can see that the estimates seem to hover around one to two months or four to eight weeks.
Based on this, I’d say a reasonable timescale probably lies somewhere in the middle (around six weeks). Six weeks is a good compromise between asking too much of your schedule and avoids overpromising rapid improvement.
So, instead of us trying to figure out exactly how long it takes to learn Python, let me share a plan that I have designed to help you learn Python in six weeks.
Let’s take a look.
How to learn Python in six weeks
Imagine learning to drive. Do you think you could learn to drive a car without knowing the difference between the accelerator and the brakes? How about knowing what red means at a traffic light, or which side of the road to drive on?
Similarly, mastering Python depends very heavily on you having a solid understanding of the basics. In fact, without them, you don’t have anything.
Here is a list of the fundamental building blocks of Python programming. If you know these topics, then you can say you know how to program in Python:
- Variables
- Numbers and arithmetic operations
- Strings and string manipulations
- Logic and Conditional Flow
- Data structures (lists, tuples, sets, and dictionaries)
- Loops (‘for’ loops, and ‘while’ loops)
- Functions
- Object-Oriented Programming (Classes and Objects)
If the above list looks a bit overwhelming, don’t worry. Allow me to illustrate a couple of these topics to show you just how simple learning Python really is.
Let me quickly demonstrate the first two topics: variables and arithmetic operations.
Suppose you wanted to add two numbers. Maybe you were coding a checkout software and needed to add together a price and 20% VAT to calculate the final cost of an item. Let’s see how we’d do it in Python:
price = 15
tax = 0.2 * price
total = price + tax
print(total)
Output:
18
First, we created a variable called “price” and used it to store the price of an item, which in this case was $15.
Then, we calculated the VAT due on the item by calculating 20% of the price.
Next, we added these two values together, just like we would on a calculator, and saved the answer in a variable called “total.”
Finally, we used Python’s print function to print the total cost to the screen, which was $18.
Just like that, we have written a Python script that can calculate prices for customers. Easy, right?
Let’s take it up a notch and look at ‘if-else’ conditional flow statement, the fourth topic on our list.
What if we wanted to build a program that could label a student’s performance on a math test.
- If the student gets a score less than 60, that’s classed as a ‘Poor’ performance (harsh, I know).
- If they get between 60 and 80, it is ‘Satisfactory’.
- And if they get more than 80 (whoah, genius), we’d label it as ‘Excellent’.
For the sake of this example, we are going to have a student who has a score of 85.
Let’s see how easy it is to do this in Python:
score = 85
if score <= 60:
print("Poor")
if score > 60 and score <= 80:
print("Satisfactory")
if score > 80:
print("Excellent")
Output:
Excellent
Wait, was that Python, or was that English?
The simple and intuitive nature of the Python programming language is one of its key features that makes Python way easier than you would think.
So, let’s get to the plan. If you follow this plan consistently for just one to two hours a day, I am confident that it will work wonders for you.
Python Practice: Take one to two hours a day. Works wonders.
The six-week plan
Week 1: variables and numbers
The first thing you will learn in Python is how to create variables.
They are fundamental to everything we do in programming. Fortunately, they’re also really easy, which makes them a great place to start.
Variables are essentially little boxes in your programs that can store data. You can give the variables names, store data inside them, and get that data back later when you need it.
This data can be simple like numbers and text, or it can be complex, like entire webpages and spreadsheets.
One of the simplest types of data is numerical data. Numbers are important for many things in programming. Whether you are keeping track of the number of users on your website, processing payments, or computing important statistics as part of data analysis, numbers are everywhere.
So, here are the topics I recommend you learn this week:
- How to store numbers in variables and access the values stored in them.
- How to use variables to perform mathematical operations on numbers (+, -, *, /, %, //).
- How to print the value of a variable to the screen using Python’s print() function.
These fundamental building blocks will form the foundation of everything there is to come; I hope you’re excited!
Week 2: strings and string manipulation
Strings, in coding terms, are simply pieces of text. Strings are used to represent usernames, email addresses, messages, URLs, names of cities in a dataset, and other kinds of textual information. .
You can print strings, stick them together, cut certain pieces out of them, replace certain pieces with other pieces, and so much more.
This week, I suggest you learn how to create strings in Python, and the various manipulations you can do with them.
Start by learning:
- How to ask the user a question and save their input in a variable.
- How to add two strings together.
- How to convert a string to all uppercase/lowercase/title case.
- How to strip off whitespace from a string.
- How to replace a certain character in a string with another.
Week 3: logic, conditional flow, and while loops
In this week, you will use your knowledge of variables, numbers, and strings, to learn how to make your Python programs think!
Logic and conditional flow allow you to control how your programs run. They allow you to decide whether certain pieces of code will run or not based upon whether a certain condition is true or false.
While it may sound complicated, it really isn’t. In fact, we have already used logic together when we gave our students a grade based on their score.
Logic is one of my favorite topics in programming. Being able to create a program that can decide what to do based on certain conditions opens a whole new world of possibilities.
When learning logic, focus on the following topics:
- If statements (if, elif, else)
- Comparison operators (>, <, ==, !=, >=, <=)
- The Boolean data type (True, False)
- Conditional operators (and, or, not)
Try to put these topics together to build a little program. For example, try building a program that will ask a user for their age, and then decide whether they can watch a certain movie or not.
Logic goes hand in hand with a very powerful concept called the while loop. So, for this week I want you to try to master while loops too.
How do they link? Well, logic allows you to say that a certain piece of code should run if a certain condition is True. While loops, on the other hand, allow you to run a piece of code while, or as long as, a certain condition is True.
The link between the two is that a condition is evaluated to be True or False, and then something happens based on that evaluation. In the case of logic, the action happens once. In the case of a while loop, the action happens continually, as long as the condition is True.
For this week, try to learn the following additional topic:
- While loops
This is a very exciting week and will essentially give you programming superpowers — have fun!
Week 4: Data structures and For-Loops
Up until now, you have been using variables that contain a single piece of data: one number or one string.
Data structures allow you to put multiple pieces of data together into one variable. Think of storing a whole bunch of numbers, a whole bunch of strings, or even a mixture of both!
There are two main data structures in Python: lists and dictionaries. There are others, of course, but dictionaries and lists are probably the two most common ones.
Lists allow you to store data in a certain order, like so:
my_numbers_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
A dictionary allows you to store data and store it under certain “keys”. In the example below, “name”, “class”, and “score” are keys, and each has associated values.
student_dictionary = {
'name': 'Sarah',
'class': 'The Python Bible',
'score': 100
}
For–loops link well with data structures like how while loops link well with logic. They allow you to repeat an action for every item in a data structure.
In this way, for-loops allow you to write a single piece of code and repeat its action (or set of actions) potentially thousands of times.
This week, try to master the following concepts:
- Lists
- How to add items to a list
- Extracting elements from a list
- Replacing elements in a list
- Dictionaries
- Adding entries to a dictionary
- Extracting values from a dictionary based on their key
- Replacing values in a dictionary using keys
- Using a for loop to iterate over a list
- Using a for loop to iterate over a dictionary
In my opinion, for loops are some of the coolest features of programming languages. They really put the power of your computer right at your fingertips.
Week 5: functions
In past weeks, you will have already learned how to use many functions. Perhaps you used a function to make a string all uppercase, or perhaps you used a function that will add an item to a list.
But this week, you will learn how to create your very own functions! Oooh, how exciting!!
A function is a piece of code that will perform a certain action (function) based on the inputs you give it, and maybe even return some output.
For example, when we use the print() function, we give the print() function a certain piece of text to print to the screen.
The print() function will take the input you give it, perform some rather complicated actions behind the scenes, and then make text magically appear on the screen.
Similarly, your functions will take inputs, do something, and give results.
This is very useful for making your code easier to read and for breaking your code up into manageable, well-defined chunks. These are invaluable skills to have as your projects become larger and more sophisticated.
So, for this week, try to learn the following topics:
- How to define a function
- How to give inputs to a function
- The difference between an argument and a parameter
- How to set default parameters
- How to return a value from a function
Week 6: object-oriented programming (OOP)
You are doing great and have come such a long way! But if I know you, you want to take your Python skills to the next level.
It’s time for you to learn Object-Oriented Programming.
As the word “oriented” hints in its name, Object-oriented programming is really just a new way—a new orientation, if you will—of approaching programming.
Instead of thinking of a program as a list of commands that you execute in sequence like in sequential programming, object-oriented programming is all about creating and using objects.
So, what are objects? Well, objects can be anything. We use objects to model concepts that are useful to our programs. We can model users; we can model buttons; anything you can think of can be an object and modeled in your code.
Python itself is intended to be used in an Object-Oriented way. The reason for this is that by creating objects and modeling their behavior, we can build really sophisticated and powerful programs in a relatively straightforward way (once you get the hang of it, at least).
So, the topics I suggest you learn in this final week are:
- The difference between objects + classes, and how they relate
- How to create classes and objects
- How constructors work in Python classes
- How to define an object’s states using class variables and instance variables
- How to define an object’s behaviors using methods
And that’s it; you have now mastered the fundamental building blocks of the Python programming language! Congratulations!
That said, it is quite a lot of content to cover. To help you along, let me share with you two tips that will make executing this plan easier and more effective!
Two tips to help you succeed
Change is often difficult. You’re used to your daily routine, and it is hard to suddenly make time for Python on top of everything else you have to do. What if you get frustrated with a concept and start to lose interest? How can you keep at it when life gets in the way?
These issues are very natural, and they happen to everyone.
However, I have some tips which personally have been game-changers for me, and which I believe will be very helpful for you as well.
1. Practice every single day, even if it’s just for two minutes.
This tip cannot be emphasized enough. When learning something new or doing any significant piece of work, consistency is key.
Something magical seems to happen when you keep at something consistently; it’s like your effort compounds rather than simply adds up.
To help maintain consistency, I’m going to share with you a (potentially life-changing) tip that I’ve learned from Stephen Guise’s fantastic book Elastic Habits.
Make a commitment that you will work on your Python skills every single day without fail, even if that means just working for two minutes.
Two minutes?!
Yep, if two minutes is all you can manage for today, then just do two minutes. The aim here is to maintain consistency and never give up. Falling off track, giving up, and not coming back is the most common cause of failure, not lack of ability.
The two-minute minimum serves as a safety net to make sure that you get engaged with Python every single day, even on your worst days. Plus, two minutes of work is infinitely better than none.
That said, although two minutes is your absolute minimum, I want you to try to aim for one hour of Python learning/practice per day. This is a goal to strive for and will help you make very solid progress
However, on those days you’re feeling particularly motivated, try to put in two hours that day.
This “Elastic Habit” strategy helps keep you consistent no matter how much time you have to learn. It allows you to rest but stay in the game when life gets in the way, to have a daily “decent” goal, and to really push yourself and “go in” when you have the motivation and time to do so.
By being flexible in your approach, and ensuring you stay engaged with Python every single day, no matter what, you’ll have a much higher chance of succeeding.
2. Find a guided learning resource
Fortunately, you’re not the first person who is learning to program in Python.
Instead of breaking your back reinventing the wheel, you’ll probably find your Python journey ends up being much faster and easier if you take advantage of the work of others.
Learning from a guided learning resource will save you the frustration and hassle involved in piecing together disjointed information from YouTube, blog posts, and Stack Overflow.
There are three types of guided-learning:
- In-person course
- Textbooks
- Online Courses
The best type of guided learning, in my opinion, is an online course. Why? In-person courses can be expensive, and textbooks can be dry and perhaps hard to digest. Online courses have the structure of a book, the engagement of video, and content created by experts. You can also learn any time and any place, which is great for fitting your learning around your schedule and lifestyle.
If online courses are something you are interested in, I have designed an online course specifically for Python beginners, called The Python Bible.
The Python Bible covers all the fundamental topics we’ve mentioned above, and it will have you building 11 fun and memorable Python projects along the way, like creating your own cinema booking system, an X-O game, and an object-oriented Python bank.
Over 100,000 people just like you have taken The Python Bible course and it is perfectly tailored to the needs of beginner Python programmers.
The course is also quite manageable and contains just nine hours of video content.
If you look at the reviews, students often say that they were so entertained they couldn’t stop watching the course and that it took them around three days to go through the content and learn to code in Python.
Students also often mention how the course “finally” puts everything together. They found that resources like The Python Bible made learning Python easy.
If taking the easier and more effective route of an online course is something you are interested in, I’d love to see you in the course.
Either way, I hope you have found this article useful, and happy Pythoning!
Recommended Articles
Top courses in Python
Python students also learn
Empower your team. Lead the industry.
Get a subscription to a library of online courses and digital learning tools for your organization with Udemy Business.