You are on page 1of 6

You have 2 free member-only stories left this month.

Sign up for Medium and get an extra one

Roadmap to Python Mastery


What You Need to Learn to Become Good at Python

Samuel Martins Follow


Nov 2, 2020 · 6 min read

Photo by Luca Bravo on Unsplash

Is there such a thing as becoming a master programmer? Python is the easiest high-
level language most beginners are advised to begin with. The pace at which you get to a
“good coder” lever is totally up to you. This does not mean that you cannot go faster
through the journey. In this article, I will be discussing the topics and skills that you
need to learn to become a master at the Python programming language. This is going to
be like a road-map to becoming good at python. For the sake of organization, I will
break these skills up into four main categories. Those are beginner, intermediate,
advanced, and expert.

Beginner
In this category, any starting newbie should be focusing on fundamental programming
concepts and really understanding the basic building blocks of programming. The list
below shows the way I would advise a beginner to take.

Variables. You are going to want to understand how variables work, types of
variables, scope, and why we even use variables in programming. With these, you
can also learn mutable and immutable data types are pretty much self-explanatory.

Operators are a vital part of programming because they are the tools used for any
computation, variable assignment, condition evaluation, and loops.

Conditions. When it comes to decision making, conditions are king. In this section,
you will have to understand boolean conditions, chaining conditionals together,
and the statements used to check conditions. This usually goes hand in hand with
loops and iteration. In section, you must know the different loops available within
the language, like for and while loops.

Basic data structures. Data structures are the soul of every program. There are a
plethora of data structures out there, but the main focus should be on
understanding lists, sets, dictionaries, and tuples.

Functions. Functions are crucial to any program. A combination of different


functions within your programs makes is what makes the program perform as
intended.

Basic knowledge of IO operations. This is nothing complicated. The concept to learn


is how to read from a text file? How do you write to a text file? Can you open a CSV
file?. These are things that you may need to do, especially if you want to make real-
life applications, or maybe you want to store something into a file. So that is going
to be the basic section for you guys. I know that is a lot, and it sounds really
overwhelming.

Unit testing. You need to understand how you can actually do test-driven
development in Python or whatever programming language.

It is important that you practice the skills in this section because once you master or
have a good understanding of the basics, your python journey will become easier.

Intermediate
Object-oriented programming. I know this is a buzz word and it sends chills down
the spine of every beginner. It commands a proper understanding of classes,
objects, and the different concepts like instantiation, inheritance, abstraction,
properties e.t.c. Learnig this goes a long way. If you only get one thing from this
intermediate section, understand that you have to have a good foundation and
object-oriented programming to really understand anything above this level.

Design patterns and good practices when it comes to object-oriented programming.


I cannot go deep into design patterns in this article because it is a long article on its
own, which I have already written:

5 Design Patterns Every Developer Should Learn


Top Design Patterns to Get You Started
medium.com

Data structures. Data structures are known to really intimidate programmers. Once
you have a solid foundation of object-oriented, you want to learn about data
structures. Go deeper into things like queues, hash maps, and stacks to mention a
few. These topics will come up, and understanding the efficiency and time
complexity in big O notation is actually really important. Do not worry if you do not
understand some of the terminologies. You will get there. After all, you are
learning.
Comprehensions. So in Python, there are these really cool, fancy-looking things
called list and dictionary comprehensions. They are ways of writing one-liners
(writing a whole independent statement in one line).

Lambda functions. These are anonymous functions. These functions are usually
used in collection modules, but they are not really restricted to them. Learn more
about the Lambda function and the best use case.

Inheritance. This kind of goes with object-oriented programming, but I just wanted
to list it as a separate thing because it is important as well. Go deeper into other
object-oriented principles like polymorphism and advanced class behavior.

Dunder methods. If you have ever seen

def__init__

or any function that looks the same, that is an example of a special method in Python.
These will not be hard to learn once you get an understanding of functions from the
beginner section.

PIP. This is one of the best features of python because pip is a package manager that
lets you use third-party modules in your programs. This is also linked to learning
about python environments like Anaconda and how to use it. In this section, you
will also learn how to create and use your own modules.

If you have managed to get to this point, you deserve to be called a python programmer.
You are basically ready to be hired as a python software engineer. You do not really
need to get into the advanced section because they are usually on a need to know basis.
You can learn whenever you want as you go along. That is not to say that you ignore
them.

Advanced
Decorators. They pertain to object-oriented programming. In layman terms, they
decorate a function or a method.
Generators. Generators are a way to utilize memory efficiently in Python. Say you
are generating a collection rather than generating the entire thing. You can
generate one item at a time if you only need access to one item from that collection
at a time. It does not have to be just one, could be two or even three items. You can
use a generator for such an operation.

Context managers. These are usually an indication that there is a cleanup operation
that happens when you break out of that context manager.

Metaclasses. These are too advanced in that they allow you to modify how a class
behaves on a deeper level.

Concurrency and parallelism. This requires an article of its own because it is quite a
long subject to dive into. Simply put, Concurrency is the task of running and
managing multiple computations at the same time, while parallelism is the task of
running multiple computations simultaneously. To understand more about this
subject, I highly recommend you read this article:

Advanced Python: Concurrency And Parallelism


Explaining Why, When And How To Use Threads, Async And Multiple
Processes In Python
medium.com

Cython. This could probably go into the expert or master level section, but Cython
is essentially how you write C code that can interact with Python. So say I have a
really performance heavy piece of code or operation that needs to be done super
quickly, and I do not trust Python to do that for me, I can actually write that block of
code in C and then link it up to Python using a module called Cython.

If you made it past basic intermediate and advanced, you can pretty much learn
anything you want. Expert level is not really a level perse because programmers, no
matter how good, will always be learning something new every day of their career.

Expert
At this point, you probably have an idea of what you want to do. Think of it as
specialization. You can choose to go into data science, machine learning, and AI or full-
time web development. Honestly, every specialty goes deeper into a specific route
chosen. There is nothing much that I’d write about that pertains to the expert level.
Every special route requires deeper engagement, which you, as the developer, will
choose.

I cannot give you a timeline for when you will get there. It all comes down to your drive
and passion.

Thanks to Zack Shapiro. 

Sign up for Top Stories


By Level Up Coding

A monthly summary of the best stories shared in Level Up Coding Take a look.

Get this newsletter

Python Programming Software Development Python Programming Programming Languages

About Write Help Legal

Get the Medium app

You might also like