Within 40 hours a new developer should be able to write basic functional scripts in Python. This time to learn Python can be broken up as follows:
- 4 hours installing Python and an IDE
- 4 hours creating a “Hello World” script and running it in your IDE’s console
- 8 hours learning variables, types, and console input
- 8 hours learning conditionals
- 8 hours learning looping
- 8 hours putting it all together for a functional Guess the Number type script
Here is more intermediate functionality the developer should spend additional time on learning to begin to master Python:
- Data structures and algorithms
- Object oriented programming to maintain state in an application
- Using the Python standard library
- Creating a UI with PyQt/Tinker or a Web Application with Flask
With deliberate practice of fundamental skills a new developer can learn the core concepts of Python in one month that would be needed to complete basic tasks you’d find at an entry-level programming job.
Learning this in Python is quicker than learning these concepts in C++ or Java because it is easier to directly run Python scripts without needing to compile your code and because of the human like syntax which makes it simpler to write code.
Additional details into how long it takes to learn python
Typically these programming concepts are taught in university over 4 months in an “Intro to Programming” class during the first semester of computer science while taking other classes like calculus, digital logic, and circuits. People can also learn these in Coding boot-camps, which are the same length without the other required classes. Coding boot-camps can be taken by themselves for an average cost of 13,800$ with easier admission requirements and without a 2 or 4 year commitment that university requires. You can read more details about pursuing a degree or going to a bootcamp here.
In university and coding boot-camps, Comprehensive Python programming is taught in 3-4 months. Being aware of the factors that contribute to your learning and using the tips described in this article you can learn it in half of that time.
At this level you will be able to make basic text games like hangman or guess the number. You should also be able to make programs like an address book or a calculator. Adding in next level data structures and algorithms into your programs will be another learning hurdle requiring a few more months to thoroughly understand and be able to recreate on your own. But this will make your programs easier to grow and maintain. Your programs will also run faster through learning coding optimization techniques.
So as you can see a lot of factors have to be explored before the question of how long it will take to learn Python programming can be answered. Also, chances are that this question may not have the same answer for all that ask depending on your objectives such as do you want to learn basic coding, be a freelancer, become a python and software development master, or just improve your skills.
However while the answer to the original question can vary greatly from person to person, one certain fact is that years of long study hours aren’t required to start a career in Python; so, relax. No scary info is coming but diving deeper into the factors that will affect how long it takes to learn python and ways to learn python faster by having control over your goals and focus.
Factors of python learning duration
Core factors of the duration to learn Python programming include:
The purpose for which a developer is learning Python programming is a great determiner of the duration and his potential level of success. Are you learning to understand the writing of basic Python programs? Do you want to go deeper and specialize in one area that can fetch a job paying hundreds of thousands of dollars per year? Your answer has a lot to say, because it will narrow down your area of focus, and the energy you need to input into your field of choice to become so good people can’t ignore you and people come asking you to work for them.
Knowing your why will allow you to reduce the time it takes to achieve any goal by providing clarity and helping you focus on that goal. In the compound effect, Darren Hardy had a profound impact on me when he reinforced this concept with the balance beam story. He said most anyone can walk across a wide balance beam when it is a few inches off the ground. But when you make that task more challenging by lifting the balance beam 50 feet in the air between two buildings most people will no longer be able to do this task or have any motivation to even try it because of the risk of failure. However if the other building is on fire and a loved family member is injured on the other side you now have a much better “why” to help you accomplish getting to the other side.
Think of your most challenging goals as this beam you need to cross and visualize your why’s on the other side of the beam. Whether it is more success or the ability to create software that helps people or something else entirely; let this encourage you and fuel your drive to overcome your challenges. Even if you fall of your beam, it is not as severe as the 50 ft fall would be from the example. Simply pick yourself up and refocus on your goals to keep persevering to the other side.
It’s no secret that people’s speed of learning differs from an individual to another, generally. Our speed of comprehension of new knowledge isn’t at the same level. Moreover, the learning field of focus plays a part in the learning speed, as some people learn fast in some fields but are slow in others. This is a very pivotal determinant of the time taken to learn Python as trying to compare yourself to a fast learner if you are not can cause additional frustration and only inhibit your learning further.
The time taken to master Python by each of these learner categories will definitely differ, one from the other. Which category of learner do you think you belong to? Being honest to yourself of your learning pace will help you set more achievable and realistic goals while keeping yourself from comparing yourself to others.
Avoid comparing yourself to others and strive to improve yourself against a measurable benchmark you have achieved in the past. How quickly you meet or exceed your personal goals will dictate your learning pace. This can be accelerated through deliberate practice and personal victories. Set goals at the beginning of the week and review your progress on these each week to evaluate your pace and level of focus. If you didn’t meet your goals was it because of distractions? If so find ways to push these away and prioritize your learning process.
Even if you are a slower learning, a lot of times the learning process ends up being a freight train that may take a while to build up momentum but once you get it going you can’t be stopped. You just need to overcome the initial uphill climb with a strong “I think I can” mentality.
Commitment to learning.
Programming demands time, attention, and consistency. All these are offshoots of commitment. The quantity of time and quality of attention given to learning Python also dictates, to a large extent, how long it will take to master the act. This fact isn’t only true of Python but also of other programming languages. Something about programming is, a few days break from the learning process, many times, can result in the need for an almost complete refresher of previous knowledge to get back into shape. The art of coding slips so easily from human memory; therefore, consistent practice is key.
Most problems that arise in a lack of commitment to learn can be attributed to either a fear of failure from setting too big of goals or a lack of a strong enough reason to achieve your goal leading you to not prioritize studying or personal coding.
Try setting smaller and more achievable goals. Also have something nearby your work station to remind yourself of how your life will improve once you become a Python coding rock-star to help you prioritize learning and commit.
Level of programming background
If you’re new in programming you can substantially reduce the amount of time it takes to learn to program by immersing yourself in your programming journey. Join the 100 days of code challenge on twitter, be active in programming groups like reddit’s r/learnprogramming, do coding challenges on websites like leetcode, and if you do watch any kind of videos have it be a programming channels.
Available learning materials
Another great influence of Python learning time is the learning materials available. There are various sources to learn from, especially in this day and age, where the world has become a global village. The internet is awash with soft book copies, videos, and coding tutorial websites making it especially easy to fall into information overload.
The choices you make among all these knowledge sources greatly determines the time taken to learn. A person just reading any random book or watching you-tube tutorials and doesn’t engage with the material won’t learn at the same pace as a person who takes the time to get the best book recommendations and reads and works through them at a standard cadence by taking notes and building projects.
My main additional input here is that according to Google, CEO’s read on average 60 books a year or a little more than one book a month. To achieve this requires superb focus, high reading speeds and ability, and pushing aside distractions like netflix and video games. If you’re serious about coding and achieving your career snowball take advantage of all the learning materials you have available to you.
When you are working through a programming book or tutorial also do it in a quiet place where you can focus that is away from potential distractions such as your cell phone or additional open internet windows like Facebook or Twitter.
The Mentor Factor
There is no doubt that learning from a mentor and learning on one’s own is also a great determining factor of the learning duration. Things do get tight in the programming world. Difficulties can be solved with time, though, but someone under the guidance of a mentor is sure to have a faster way around debugging and cracking hard parts than someone who’s learning without a mentor.
I’ve recently been meeting with several senior engineer mentors regularly to help my expedite my own skill growth. Being able to hear first hand the elevated ways they think about programming and software has allowed me to pick up on their traits and grow better habits. A mentor also helps to hold you accountable to your goals which provides additional levels of focus.
Short Guide to Learning Python Quickly
If a person can knuckle down and focus on this list you can learn a lot of the core python functionality within two to four weeks. Check out my Learn Python Fast youtube playlist to see how this can be done.
- Setup and Install Python
- Write a basic “Hello World” script to learn how to run a program and see output
- Expand on this to program “Guess the number” to learn how to store input into a variable, creating a random number by importing the random function from the standard Python library and simple “if…else logic”
- Create an address book that reads and writes contacts to a file. This will allow you to learn object oriented principles by working with a “Person” class.
- Create a simple calculator application that has a graphical user interface using the TKinter or PyQT frameworks. From this you will learn how to create visually appealing interactive applications, working with libraries, and interacting with graphical user components such as buttons that will listen for events when clicked.
To expand on this and become career ready learn the core data structures and algorithms and spend another month practicing coding on leetcode or hacker rank.
Also in this month complete the projects in the free automate the boring stuff with python book online to learn more practical uses of python you will encounter in a software development position.
So, we go back to answering the big question, how long can it take to learn Python? Well, with all discussed so far, it solely depends on the learner and their goals. The determiners identified above are all still dependent by the aspiring Python developer and how much they push themselves to achieve their programming goals faster through focus, prioritization, and practice.
However, here is an idea that can help each individual reading this to arrive at a close answer. If you take 3 hours every day to learn and practice Python consistently with a relative learning pace, in 3 months, you should know the basics, but maybe not enough to take on a job. To specialize in an area and get enough knowledge of Python for a job may take you another 4-6 months or more, factoring in the determiners discussed above. If you can push aside all distractions and focus through the short guide to learn Python quickly a typical learner can even learn Python in 4-6 weeks.
With all the tips above I wish you good luck in achieving all of your goals in learning Python!
About Stefan Bradstreet
Stefan is a Senior Software Developer at Amazon with 8+ years of experience in tech. He is passionate about helping people become better coders and climbing the ranks in their careers, as well as his own, through continued learning of leadership techniques and software best practices.