You are on page 1of 47

The Ultimate Beginner’s Guide to Python

Everybody loves Python. Well, not literally everybody. Let’s face it – the baby-boomer
generation will probably scream in terror, thinking it’s the self -indulgent predatory
snake we have in mind. This little disclaimer aside, if you’re aiming to start a career in
data science, we’re pretty sure Python already holds a special place in your heart. It’s
intuitive and easy to run on any platform, and it has tons of amazing libraries and tools.
Python also provides great support when it comes to deep learning algorithms in
comparison with other programming languages. Plus, it has a huge community base of
data scientists and developers that continuously improve the langua ge. In fact, there’s
so much more to say about Python programming – applications, job outlook, IDEs,
libraries, frameworks, where to start, how to start… , that we actually had to dedicate an
all-encompassing, in-depth article to it.

1
Find Our Comprehensive Guide on Python

Programming Language!

We split the article in two sections. The first one is for those of you who don’t know
what Python is or wonder whether to start learning it. The second section contains
information and practical tips you can apply once you’ve decided to start learning
Python.

To navigate the guide, you can use the Contents below. You may decide to jump to the
section of your interest or read the whole article through and through. Either way,
you’ll gain some invaluable insights.

We hope you’ll find this Python guide helpful and that there will be something
beneficial for everyone. Enjoy!

Python Tutorial: Contents


1. Python Overview ......................................................................................................................... 3

1.1. What is Python? ......................................................................................................................... 3

1.2. What are the Applications of Python? ................................................................................ 4

1.3. Why learn Python? ................................................................................................................... 8

1.4. Python vs R, Java, and C++ .................................................................................................. 13

1.6. What’s the Python job outlook? .......................................................................................... 17

2. Tips and Advice on How to Get Started with Python...................................................... 22

2.1. Which Python version to learn? .......................................................................................... 22

2.2. How to install Python? .......................................................................................................... 24

2.3. Which are the best IDEs for Python development? ...................................................... 25

2.4. Python IDEs for Scientific and Data Analysis Use .......................................................... 25

2.5. General purpose Python IDEs ............................................................................................ 27

2.6. Which are the top Python Libraries and Frameworks? ............................................... 31

2
3. Coding in Python: Where to start? ....................................................................................... 38

3.1. How to learn Python? ............................................................................................................ 39

3.2. Find help when learning Python: online communities ................................................ 44

3.3. Learning Python: Resources for Practice and Exercises.............................................. 45

In Conclusion ................................................................................................................................ 47

1. Python Overview

In this section, we’re going to cover the origins of Python and what we use it for. We'll
also give you the main reasons why it is one of the best programming languages to
learn.

1.1. What is Python?

Python is an open source, cross-platform, general purpose programming language. As


far as programming languages are concerned, it’s neither new, nor it is too old. Its
development started in the late 80s and it was first released to the public in 1991. The
Python language creator, Guido van Rossum, had a clear vision for it: make it as simple

3
to understand as plain English. In retrospect, this might have been a little too
optimistic. Nonetheless, language aims to emphasize readability and the use of
significant whitespace. In other words, it strives to be as close to the human language
as possible. Now, what about the name Python?

You might think, as many do, that the name originates from the dietary-challenged
snake. You’d be wrong. It turns out Rossum (Pyt hon’s creator) is a big fan of British
comedy… and was reading scripts from Monty Python’s Flying Circus, while
implementing Python. So, the name is a tribute to the great English comedy makers.

Now, if this isn’t motivational enough as to why you should l ike Python and its creator,
this next section answers an important question: What are the applications of Python?

1.2. What are the Applications of Python?

Python has been growing in popularity over the last few years and is now widely used
in all kinds of applications. It’s even often referred to as “ the best programming
language to learn” . Python is used to develop video players like YouTube, power apps
like Instagram, test microchips at Intel , run a search engine at Google, and even power
transactions on the New York Stock Exchange (NYSE). And you know a programming
language is very powerful when it's maintaining a stock exchange system. In fact, NASA
also uses Python when they are programming their equipment and space machinery.
Well, isn’t that something? Let’s review some of these applications further.

Python for Data Science

Python experienced a recent surge in popularity across various industries mainly


because of its data science libraries.

Both in business and academia, Python finds a wide range of applications for data
analysis. It is the language of choice for a large portion of the data science community.
Why? Because of the various tools which make it easy to work with huge datasets and
gain significant insights.

4
Python libraries, such as NumPy and Pandas are extensively used in the collection,
processing, and cleansing of data sets, as well as in applying mathematical algorithms
for the benefit of users. Another aspect that makes Python a great tool for data
scientists is the robust visualizations that come with Matplotlib and Seaborn.

Python for Machine Learning

If you haven’t heard of Machine Learning (ML) before, here’s a quick introduction. ML
refers to the ability of a computer to “ learn” from training data (fitting a model to the
input) in order to make predictions (such as, how likely it is for a customer to buy this
product, based on data about their past purchases). It is widely employed in “ smart”
algorithms (where it uses large datasets) and by many companies.

Indeed, companies have plenty of good reasons for using Python.

Its libraries, such as Scikit-learn, TensorFlow, and NLTK are widely used for the
prediction of trends like customer satisfaction, projected values of stocks, etc.
Speaking of libraries, TensorFlow, in particular, has a very interesting story. Google
developed it for inhouse use, but they released it as an open-source library in 2015. But
we’ll get back to it in section 2.4 where we talk more about Python libraries.

5
Given the growing importance of machine learning and artificial intelligence
nowadays, this side of Python will definitely improve even more.

Python for Web development

HTTP programming (or, as we more commonly call it, web development) isn’t just done
with JavaScript anymore. In fact, Python plays a major part in it, too. So, in this section,
we’ll introduce you to a main Python framework called Django. In addition, we’ll see
some of the major companies which are using Django for their web services.

Django is a full-stack web framework. Now, what does that mean exactly? Full -stack
frameworks provide you with everything you need to build a complete web application.
That includes web serving, database management, and even HTML generation. So, it’s
no surprise that Django is the foundation for sites and services like The Guardian, New

6
York Times, Instagram, and Pinterest. Looks like, if you’re building large and complex
web applications, Django is the way to go.

But what if you want to create simple web applications?

Let us sneak in another option for creating web content using Python – Flask. Flask is a
micro and lightweight web framework. This means it is more intuitive and easier to use.
If you want to accomplish more complex tasks you might require a third -party
framework. But consider this: in 2018, Flask surpassed Django by 2% , with 47% of users
opting for Flask, and 45% for Django. This goes to show that the web development
industry has been moving towards smaller frameworks, microservices, and
" serverless" platforms. And it just might be the perfect time for you to consider joining
in on the effort.

Python for game development

We won’t sugarcoat it, this is where Python is lacking with respect to the competition.
Although it has libraries for game development, such as PyGame and PyOpenGL, they
often prove insufficient to provide enough functionality. Although it’s generally good
for creating 2D games, game developers consider it slow in comparison to compiled

7
languages, such as C# and C++. Furthermore, it’s probably not the best choice graphics -
wise, and it doesn’t offer rich development tools or an editor. That, coupled with the
fact that Python is a high-level, interpreted language, makes it a not -so-attractive
option for game developers.

Nevertheless, Python is extremely helpful in prototyping thanks to the fast speed of


writing code in it. Essentially, when deciding whether to invest time and resources in
developing a game, it’s useful to build a prototype – a proof of concept. And that’s
where Python comes into play, as it’s able to produce a simple 2D working prototype
much faster than other languages.

In addition, Python has an important role to play in the online gaming community.
Notable examples of games developed with its help are Civilization IV (uses Python for
logic and server controls), Eve Online (uses Stackless Python) and World of Tanks (uses
Python for some of its internal logic and scripting). Finally, Snakeworlds – a 3D snake
game that puts the famous game classic on spheres/ globes. It is written entirely with
Python-Ogre.

1.3. Why learn Python?

Okay, this is where we really get in the thick of things. We’re about to start reviewing a
lot of the core aspects of Python, discussing advantages and disadvantages, and
comparing it to other programming languages. If you’re eager for some in -depth
knowledge about Python features, you’ve come to the right section.

Before we start, let’s first take a look at an important, yet often misunderstood
distinction: coding is not programming. Most people use these terms interchangeably
and, frankly, it is convenient to do so. But explaining the concepts behind them can
help create a more beneficial attitude of beginners towards programming.

So, the difference between coding and programming is, in simple terms, the same as
the difference between coming up with a story for a novel and writing it down in a
book. Let’s elaborate. If you want to write a novel, asking yourself how you would write

8
it in English should not be the first step. Your focus should lie on creating the story with
all its elements. Only then you can write it out neatly in whatever language you want.

The same principle applies to programming – it is a two-stage process.

First, you are presented with a problem (let’s say, you have to find the shortest path
between cities).

Then you have to come up with steps that will take you to the right answer in every
initial graph configuration of those cities (we call this an algorithm). This is the most
important stage in programming, and it is (mostly) independent from the language in
use. But once you have that down, you can start to communicate the instructions to the
computer via a programming language. That is the coding stage. Learning to code in a
specific language is not enough, by itself, to become a good programmer. When
learning programming for the first time, you should concentrate on the techniques
used to solve a problem, not on the language per se.

Having said that, different languages can definitely accelerate or slow down
the learning process. We believe that Python is one of the best languages for a
beginner to start programming in. Let’s see why:

Python is an open-source language, meaning it’s free to use and everyone can
contribute to the writing and maintenance of its code and libraries. Indeed, a lot of
people, and even companies, have dedicated time and effort to expand and perfect
Python. And that’s a big part of what makes the language so attractive for the
community.

Furthermore, Python is a high-level and general-purpose language. High-level implies


it is far away from 0s and 1s and, therefore, closer to human language. So, it follows
that you don’t have to worry about memory management, and deleting objects (among
other issues). And that allows you to focus entirely on solving the programming
problem. This makes Python ideal for people who’ve never studied programming
before, as it can greatly improve their learning experience.

9
Finally, general purpose indicates that Python is very versatile. As we mentioned
above, we can use it for web and software development, as well as for network
programming. On top of that, data science and machine learning, in particular, are
areas where it increasingly finds an application. So, it doesn’t come as a surprise that
major companies such as Facebook, Quora, Twitter, Spotify, and Netflix use Python a
lot. Now, while these websites and platforms are not written in Python, many
supporting processes, especially those related to analytics, are performed with it.

Overall, Python has been steadily growing in popularity among developers. It really
seems to be beloved by the community, both by front and back-end users. And with its
wide variety of functionalities, it’s not just the major companies that are using it. Across
the board, the IT industry is incorporating Python to develop various products.

What are the advantages and disadvantages of Python?

So, what are the key aspects of this programming language that make it so attractive?

10
Pros:

• Easy to learn - few keywords, simple structure, and a clearly defined syntax.
This allows the student to pick up the language quickly.

• Easy to read - Python code is more clearly defined due to the extensive use of
whitespace.

• Productivity – Python code can be considerably faster to write.

• Interactive mode - support for an interactive mode that allows interactive


testing and debugging of snippets of code.

• Broad standard l ibrary - Python is famous for being the " batteries are included"
language. There are over 300 standard library modules that contain classes for
a wide variety of programming tasks.

• Cross-platform - Python works equally well on different OS platforms like


Windows, Linux, Mac OSX, etc. Hence its applications can be easily ported
across OS platforms.

• Extendable - You can add low-level modules to the Python interpreter. These
modules enable programmers to add to or customize their tools to be more
efficient.

• Embeddable - Python is embeddable as well. You can put your code in the
source code of a different language, such as C++.

• Extensive collection of support l ibraries – there are numerous libraries for


Python that add a lot of functionality to the language.

Cons:

• Speed l imitations - Python is interpreted and that results in slow execution of


the code. This, however, isn’t a problem, unless speed is the focal point of the
project. In other words, unless high speed is a requirement, the benefits Python
offers are enough to outweigh its limitations.

11
• Weak on mobile – although it has made its presence on many desktop and
server platforms, it is seen as a weak language for mobile computing. This is the
reason why very few mobile applications use it.

• Difficul ty in using other l anguages – Python supporters become so accustomed


to its features and its extensive libraries that they face problems in learning or
working with other programming languages. Very often, Python experts may see
the declaring of variable types and the syntactic requirements of adding curly
braces or semicolons as an onerous task.

Static and dynamic typing

In explaining the characteristics of Python, we can’t forget to mention that it’s a


dynamically typed language. In short, variables in Python don’t have a predefined type
(such as an integer or a string of characters). Instead, the type of a variable is
determined dynamically as the program is running. For instance, if at one point we
assign the value 10 to the variable A, Python automatically determines that this
variable is of the type int (integer). If, later, we update it to 10.0 it will now be a float (a
real number).

In contrast, in a statically typed language, like C++, the type of variable is written in the
code itself. So, if you want to use A as an integer, you write “ int A” . Now, we can assign
only integer values to A. If you try to assign a non-integer value to A, the program
would return an error.

Of course, both concepts have their advantages and disadvantages. A dynamically


typed language is easier to get into for a complete beginner. However, because no one
knows the type of variables before runtime, you may get unexpected errors that are
hard to track.

But let’s escape these somewhat abstract comparisons and see how Python measures
against other popular programming languages.

12
1.4. Python vs R, Java, and C++

In this section, we compare Python to other programming languages: R, C++, and Java.
Once you’ve read it, you’ll be able to decide which programming language best suits
your practical needs.

Python vs R

Python is a script language. It is very powerful, in the sense that, with just a few lines of
code you can execute a wide range of actions. You can read, analyze, visualize and
even predict on huge datasets, and all that would require just several lines of code.

As it happens, R is also a script language. So how do the two compare? While both have
advantages and disadvantages, in the last few years, Python has been the dominant
language programmers use. The reasons for that? Well, there are several.

First, although both languages are free and open source, we use R is mainly for
statistical analysis (and was, in fact, developed by statisticians). Python, in contrast, is a
general-purpose language ( that’s an important feature of the language and bears
repeating) .

General purpose implies that it is suitable for all types of needs; not only data
science and machine learning, but also pre-processing, web programming,
and just about anything you can think of.

Another advantage point for Python is that it is high-level. Loosely explained, it has an
easy syntax which is close to logical human language, and which is later translated
into lower-level languages (like C) or even 0s and 1s. For example, the NumPy package
actually goes through the programming language C. That explains why it is so fast.

Let’s mention one final minor thing about R. The graphics in R aren’t the best. But this is
an understatement. By a lot. In fact, the graphics are so bad, that R launched R shiny,
which was specially designed to counter that problem. We like Shiny, it’s very pretty.
That said, although the graphics in Python can be lacking in some instances as well, it

13
recently made an improvement on that front. Seaborn, which is used on top of
matplotlib, definitely made the graphics look better than before.

Python vs Java and C++

Now, we emphasized the fact that Python is a script language. While that is true, it
doesn’t give us the full picture.

Although a lot of people mainly use Python to run scripts, it also has object -oriented
capabilities like C++ and Java. That said, we find that learning programming with Python
is considerably easier than with the other two.

Why, I hear the seasoned C++ programmer yell behind the screen? We know you
learned programming the hard way and are super happy with it because everything
runs super-fast and there aren’t as many memory leaks anymore. And, as long as you
know exactly what you’re doing, the code is running, right? (Yep, the author of this
article likes C++, too.)

Well, allow us to play devil’s advocate and consider that there might be an easier and
more intuitive way to learn the basics of programming.

Consider first of all: Java. The first language for many programmers.

Java has objects and classes, which are concepts difficult to understand for beginners.
From personal experience, it could involve a long summer of your dad shouting, “ What
is the difference between a class and an object?!” , and you trying to figure out what
the right answer is. For the record, the answer is – an object is an instance of the class.
Did that make things clearer? Yeah, that’s what we thought. It takes some time to
understand these concepts. And writing and running your code in Java might take you
a bit longer if you’re a beginner. So that’s Java in a nutshell (a very small nutshell
indeed, but you get the idea).

How about C++, the ‘real’ programmers’ language?

14
Its motto is “ you get what you pay for” (but maybe don’t quote us on that one). In C++
you’re responsible for handling the memory, i.e. the creation and removal of objects.
What’s more, the way you access those objects in memory is through pointers, which
can have their own pointers, which can, in turn, have their own… you get the point( er ).
C++ is also not very beginner-friendly.

Let’s compare these with Python programming. But, like, very simple programming.
(Imagine) you’re a complete novice and want to write your first program. For every
programmer, no matter what the language, this means writing your first “ Hello, World” .

So, this is how the code looks in Java:

And here it is in C++ :

Now, let’s look at Python:

Once you’ve set up the environment and have opened a script file, writing “ hello
world” in Python requires just a simple print() function and your text. And in Python 2

15
you don’t even need the brackets! It really doesn’t get any simpler tha n that. This is the
readability factor we talked about in the beginning. And it’s also the reason why we
prefer Python to other programming languages. By the way, if you’re finding this
analysis useful, consider sharing the article with your other coder fr iends. Python’s
community is one of the reasons it’s awesome, so let’s help make it bigger.

1 .5. Is Python difficul t to learn?

The short answer: it depends. But this isn’t the answer you were hoping for, right? Don’t
worry, we’ll explain everything you need to know before you begin learning Python.
Starting with…

How long to learn Python?

For a complete novice learning how to program in Python well takes about 3 months of
relatively consistent study (based on our own estimate).

However, if you are planning to use Python for data science, i.e., data analytics or
machine learning, the timeline is actually shorter. Because data science requires very
specific use of the language, it should take between a month and two to understand
the fundamentals. Full disclosure, we’re basing this on the rate our students are
completing our own data science training. The 365 Data Science Program takes about
200 hours to complete. Among other topics, it includes the fundamentals of
mathematics, statistics, and Python. It also introduces more advanced topics, such as
using sklearn, numpy and pandas for machine learning and covers deep learning with
TensorFlow (versions 1 and 2) library for neural networks. So, if you’re truly committed
and devote five hours of your day to learning, it should take you about 1 month to learn
the main principles for data science analysis in Python.

That said, the time it will take you to become proficient in Python, or any
programming language, depends on... well, you.

Different people learn at different rates. Your ability to learn Python will also depend
on your background in programming. If you're already skilled in a programming

16
language, becoming acquainted with Python would involve mostly getting used to the
different libraries.

But what if you’ve never programmed before? Well, this might actually be an
advantage. In our opinion, it is considerably easier to learn the basics of programming
with a language like Python.

1.6. What’s the Python job outlook?

To say that the Python job outlook is positive will be an understatement. As its
popularity is rising, the demand for Python as a preferred skill by employers is soaring
sky-high.

In fact, the Institute of Electrical and Electronics Engineers ( IEEE – the world’s largest
technical professional organization for the advancement of technology) deemed
Python “ the big Kahuna” of 2019, listing it at number 1 in its annual interactive ranking
of the Top 10 Programming Languages. But Python is more than just a fan favorite – it’s
what CEOs want. According to a StackOverFlow Developer Survey (taken by 90,000
developers worldwide), it is the fastest-growing major programming language in 2019.
Python (41.7% ) even edged out Java (41.1% ) in the overall ranking and remains the most
wanted language by developers (25.7% ) for the third year in a row! The survey also
reveals that developers using Python are paid more ($60,000-$70,000) compared to
their counterparts using languages like C, C++, and Java ($50,000 - $60,000).

17
How does that translate into Python job opportunities?

Let’s dig into the numbers.

Are Python jobs high in demand?

Absolutely. Python is the language associated with the highest salaries worldwide with
a median salary of $63,000. Moreover, The Data Science Jobs Report 2019 points out
that general-purpose languages are extensively used in data science jobs. The report
is based on data from the largest job site in the U.S. – Indeed.com. They counted the
number of job postings that emphasize on certain software proficiency as a
requirement and discovered that Python is firmly at the top with 27,374 jobs, followed
by SQL with 25,877. For the record, Java and C are way down the list with jobs in the
17,000’s and 13,000’s, respectively. What about year-on-year growth? Python is, once
again, the undisputed champion with 97% growth from 2017 to present (2019).

In terms of UK prospects, the job market is pretty healthy there, too.

As reported by ITJobsWatch summary statistics, there have been 16,004 permanent


jobs citing Python for the past 6 months with a median annual salary of £61,242. And
that marks an 11.16% pay rise compared to the same period in 2017.

But what do employers say themselves? According to the Data Science Skills Study
2019, Python is the number 1 programming language in organizations that use
advanced analytics for their business and product development. The survey’s
responses came from middle management, senior management, and executive-level
management from 500 companies.

So, it seems that Python is very close to dominance in terms of what employers are
searching for. That said, it’s high time we looked into the most coveted Python job roles
out there.

18
Which are the career paths in Python you can take?

Proficiency in Python is one of the indispensable skills in the tech and data science
career fields. Here are some of the most lucrative career paths for Python specialists to
follow.

Python Developer

The most obvious choice for anyone who’s proficient in Python. Python developers use
it for all sorts of tasks, ranging from building websites and optimizing data algorithms
to finding data analytics solutions and carrying out security and data protection. Not to
mention this programming language is perfect for writing testable, reusable, and
incredibly efficient code.

Machine Learning Engineer

Expertise in Python is one of the key requirements for Machine Learning engineers.
Machine learning involves continuous data processing and Python’s great library
ecosystem is undoubtedly up for the challenge. No wonder Python libraries are
preferred by Machine Learning engineers for accessing, and transforming data, as well
as for handling basic ML algorithms like clustering, regressions, and classification.

Data Scientist

Python is hands-on the preferred language for statistical modeling. Around 68% of
data scientists state that it is their favorite programing language (in comparison to 44%
last year). And if you’ve been paying attention so far, Python is also essential when it
comes to machine learning.

19
Data Analyst

Python is one of the best languages for handling huge amounts of data, cleaning it, and
processing it for analysis, which is what the data analyst does a lot of. And Python
helps them do all that fast, compared to other more complex tools. Da ta analysts also
use Python and its packages to integrate their data analysis tasks with web apps or
incorporate a statistics code into a production database.

BI Analyst

Python is not an absolute must for BI analysts. However, it becomes more and more
recommended in the business intelligence domain. BI analysts are multitaskers to the
core. As such, they can use Python for various business intelligence tasks. They can use
it to prepare the data by importing it into database programs, cleaning, and
standardizing it. In addition, BI analysts can explore the data by creating a Pandas
DataFrame from a query, making a data quality report, generating summary statistics,
and creating charts. Finally, Python assists BI analysts with both data analysis and
analytics, so they can visualize and report their insights to drive informed business
decisions.

Data Engineer

Python’s rich libraries help data engineers access databases and storage technologies.
Furthermore, data engineers use it to code an ETL framework, as well as for API
interaction and automation. Overall, Python is a powerful and versatile tool that allows
data engineers to solve problems quickly and efficiently.

Data Architect

Data architects develop advanced Python scripting to analyze, cleanse, and transform
large data sets of data and prepare it for use in business intelligence, analytics, and
financial modeling functions.

Author’s note: Python is crucial to land a job in data science. However, it’s just one of
the skills you need to acquire if you want to make it in the field. That said if you want to

20
learn what it takes to start a data science career, check out our Ultimate Data Science
Career Guide.

What are the top industries that use Python?

Here are the top 10 Industries that use Python, according to ActiveState’s Top 10 Use
Cases:

• Insurance;

• Retail banking;

• Aerospace;

• Finance;

• Business services;

• Hardware;

• Healthcare;

• Consulting services;

• Infotech;

• Software.

If you’re looking for great career opportunities across numerous industries, you
literally can’t go wrong with Python. So, if you’re a beginner eager to make the first
steps in your chosen career, the only thing left to do is start learning!

21
2. Tips and Advice on How to Get Started with

Python

If you have already decided to begin learning Python but don’t know where to start,
this is the place for you. Getting started can be hard. Should you download Python 2.7
or, let’s say, download Python 3.6? So, in this section, we’ve compiled vast information
and practical tips that will help you find your way. We’ll give you an overview of the
differences between Python 2 and Python 3 and guide you through the installation
process. Then, we'll review the best Python libraries and IDEs and their use cases.
What’s more, here you’ll discover actionable steps to start learning Python and a list of
good free resources you can use. Finally, we’ll show you how to find help from
experienced Python users should you need it. But first things first:

2.1. Which Python version to learn?

If you’ve tried to download Python, you may have been surprised by the two,
apparently equally important versions – 2.7 and 3.7 (as of writing this article). So, now
you are probably wondering: Should I learn Python 2 or learn Python 3?

In the past, there was a bit of a debate in the coding community about which version
was the best one to learn. But that has changed and now it’s more or less a no-brainer:
Python 3 is the clear winner. We are going to explore why, but first, let’s look a bit into
the history of these versions.

Python 2.0 was first released in 2000 and its final, major version,
Python 2.7, came out in 201 0.

That was not the end of it, though, as continued support is available even to this day.
The developers, however, realized early on that they needed to make big changes to
improve the language. And so, in December 2008, Python released version 3.0. This
version was mainly developed to fix problems that existed in Python 2. But the nature

22
of these changes is such that Python 3 turned out to be incompatible with Python 2! As
a result, for any organization that was using Python 2.x version, migrating their project
to 3.x needed lots of adjustments and effort. Thus, many companies decided to keep
using version 2 and develop further libraries for it. And so, support for Python 2 was
continued.

But all things must end eventually.

So, the developers have announced that January 1 , 2020, will be the day on which
Python 2 will be retired. After this date, there will be no updates and support for this
version and everyone using it must switch to Python 3 ASAP. This is not a drill – the
clock is literally ticking.

So, Python 3 is the clear direction of the future and the version that every beginner
should choose. However, if your company has projects written in Python 2 or, maybe,
you have to work with a third-party library that is supported only by Python 2, you may
need to learn the differences between the two versions. Here are some of them (there
are a lot more from where that came from) to get you started:

23
2.2. How to install Python?
Python is available for use with Windows, Linux, Mac OS, and certain other platforms
such as IBM AS/ 400, iOS, Solaris, etc. And there are a number of ways to install it on
your machine.

A simple way to add functionality to Python out of the box, especially vital for (data)
scientist, is through the Anaconda distribution. It includes the stock Python, as well as
libraries vital for scientists and machine learning, such as NumPy, SciPy, Pandas (read
section 2.4). Not only that, but it comes equipped with two IDEs (see next section 2.3) –
Spyder and Jupyter Notebook. Plus, it’s extremely easy to install – just pick your
operating system and click download. Then all that’s left to do is finish the wizard-
based setup and you’re ready to go.

You can, of course, opt for the standard distribution of Python software at
python.org/ downloads here. Just don’t forget to check the “ Add Python 3.x to PATH”
checkbox in the setup.

24
2.3. Which are the best IDEs for Python
development?
So far, so good. You have installed Python, but now you need somewhere to write your
code and run it. That is where IDEs come in.

First, let’s clear up what an IDE means. IDE stands for integrated development
environment. It’s a coding tool that allows you to write, test, and debug your code in an
easier way, as they typically offer code completion or code insight by highlighting,
resource management, debugging tools, etc.

So, what is the best Python IDE? Well, that depends on your preferences and on your
reasons for using this programming language. With that in mind, here we’re going to
present some of the most popular ones (as of writing this article) so you can make an
informed decision.

2.4. Python IDEs for Scientific and Data Analysis Use


Spyder

Spyder is a lightweight, open-source IDE designed and constructed specifically for


scientific and data analysis use. If you’ve never worked with an IDE, it could be a
perfect first stop, as the learning curve is smooth.

25
Spyder is included in the Anaconda distribution, along with libraries essential for data
science and machine learning - NumPy, SciPy, Pandas, scikit-learn, Matplotlib and so
on. And, in terms of installation, doing it through Anaconda is the preferable way.

Spyder includes most of the common IDE features you might expect, such as a code
editor with robust syntax highlighting, code completion, and even an integrated
documentation browser.

In addition, it also features a couple of extremely helpful functionalities – a graphical


variable explorer and IPython (interactive Python) console.

The variable explorer contains all data (variables) from your program and displays it
using a table-based layout right inside your IDE. This allows you to interact and modify
it on the fly, plot histograms and time series, sort collections and more, in just a couple
of clicks.

Something else you might find interesting is that the IPython console benefits
beginners and data scientists greatly by allowing them to execute a single line of code
and visualize data. And that’s great for both educational purposes and debugging.

Essentially, Spyder is suitable for beginners and professionals alike but we realize that
some veterans may feel it’s too basic and lacks certain more advanced functionalities.

Jupyter Notebook

26
Jupyter Notebook was born out of IPython in 2014. It is a web appl ication based on the
server-client structure, and it allows you to create and manipulate notebook
documents - or just “ notebooks” .

Jupyter provides you with an easy-to-use, interactive data science environment across
many programming languages that doesn’t only work as an IDE, but also as a
presentation or education tool . It’s perfect for those who are just starting out with
data science!

The Jupyter Notebook supports markdowns, thus allowing you to add text and other
HTML components, such as images and videos between your lines of code. Thanks to
Jupyter, you can easily see and edit your code in order to create compelling
presentations. For instance, you can use data visualization libraries like Matplotlib and
Seaborn and show your graphs in the same document where your code is. Besides, you
can export your final work to PDF and HTML files, or just export it as a .py file.

2.5. General purpose Python IDEs


PyCharm

PyCharm is a complete IDE, suitable for web development, small, and big projects. It’s
an IDE for professional developers, made by the folks at JetBrains, a company known
for creating fantastic software development tools. It is perfect for you if you already

27
have experience using another of JetBrains’s IDEs because the interface and features
are similar.

Also, if you like IPython or Anaconda distribution, it’s nice for you to know that PyCharm
integrates their tools and libraries such as NumPy and Matplotlib. And that allows you
to work with array viewers and interactive plots.

Alright, in terms of install ation, there are two versions of PyCharm for you to consider:

• Community - free open-source version, lightweight, good for Python and


scientific development;

• Professional - paid version (53 EUR/ year, after 2 years), full -featured IDE with
support for Web development as well.

One downside of PyCharm is that it can be quite heavy and resource intensive.
Therefore, it may not be the best choice for computers with a small amount of RAM
(usually less than 4GB), because it will lag.

Other than that, PyCharm provides all major features that a good IDE should provide
out of the box. Plus, it’s fully customizable and has a plethora of plugins for additional
functionality.

Visual Studio Code (VSCode)

VSCode is a lightweight, yet powerful open-source editor accessible on any platform


(Windows, Mac, Linux). It has a rich ecosystem of built -in support and extensions for

28
programming languages. The editor gets monthly updates with new features and bug
fixes. This, and the active community that creates useful plug-ins for various use cases,
makes VSCode a programmers’ favorite when it comes to Python development.

So, what do you get from the extension?

• Auto-completion with IntelliSense;

• Linting;

• Code formatting;

• Script debugging;

• Unit testing;

• Automatic activation and easy switch between Python environments;

• Refactoring commands.

Apart from programming language capabilities, VSCode extensions include other


handy features, such as keymaps, UI themes, and language packs. The installation of
extensions and themes is super easy and accessible. So, yes, you should definitely put
this IDE on your radar once you start working with Python.

Atom

29
Atom is an open-source code editor (not a full-fledged IDE) developed by GitHub that
can be used for Python development. It is highly customizable, giving you the
opportunity to install packages as per your need and to change the UI however you
like.

Atom can be simple to use and easy to learn. It provides great support courtesy to
GitHub. Besides that, you can also visualize your results in Atom itself, without the
need to open any other window or pane. Additionally, you also have a plugin called
“ Markdown Preview Plus” . It provides you with built -in support for editing and
visualizing Markdown files, allows you to open a preview, render LaTeX equations, and
much more!

Honorable Mentions

• Eclipse + PyDev – Eclipse is a very popular IDE used mainly to code in Java.
However, it can be configured for Python using the plugin PyDev.

• it (Onl ine Compiler) – If you want to start writing Python code without investing
time installing Python and setting up a development environment, you can use
repl.it. The site provides online IDE for many languages, including online Python
shell. You just need internet connection and a browser to get started.

• Thonny – A recent addition to the Python IDE family, Thonny is billed as an IDE
for beginners. Written and maintained by the Institute of Computer Science at
the University of Tartu in Estonia, it is designed specifically for teaching and
learning programming (in particular, Python). By default, Thonny comes with its
own bundled version of Python, so you don’t need to install anything else. It has
a very simplistic user interface so that beginners will find it easy to work with. In
addition, it features a simple debugger that allows you to execute your program
step-by-step and provides you with the ability to see how Python internally
evaluates the written expression.
Overall, The purpose of Thonny is to give you a good understanding of how
Python works under the hood and that is exactly what it delivers.

30
2.6. Which are the top Python Libraries and

Frameworks?

The Python libraries contain various tools to help us in programming. We may


encounter a difficult problem to solve but, chances are, that others have encountered
it before us and have written code to deal with it. That code is probably somewhere, in
some library, waiting for us to use it. There are countless different libraries for Python,
but here, we’re going to list only the ones we believe you’ll probably need to use.

Python Standard Library

This is the library that comes packaged with Python itself. It is very extensive, offering a
wide range of facilities which you can check in the documentation. The library contains
built-in modules (written in C). Those provide access to system functionality, such as
file I/ O (which would otherwise be inaccessible to Python programmers). It also opens
the door to modules written in Python that provide standardized solutions for many
common programming problems. Some of these modules are explicitly designed to
encourage and enhance the portability of Python programs by abstracting away
platform-specifics into platform-neutral APIs.

Python libraries for machine learning, scientific use, and data analysis

As we have stated before, Python is widely used for data analysis and scientific
simulations. To some extent, it owes its popularity to the extensive range of libraries
you can choose from. Here's what Oguzhan Gencoglu, Co-founder and Head of AI at
Top Data Science, says: " We develop mostly in Python and scientific libraries such
as numpy, scipy, and pandas are essential. When it comes to conventional ML, we
use scikit-learn/ xgboost/ GPy. Continuing the list, nltk and gensim are essential for
our NLP projects. Naturally, for deep learning, we prototype in Keras / TensorFlow and
deploy in TensorFlow, if it is an industrial collaboration. We have also used PyTorch for

31
research collaborations."
That said, here's a list of some of the most important Python libraries:

• NumPy

NumPy is an extremely important library for numerical calculations and the


basis for many other, more advanced libraries. It provides an extensive N-
dimensional array interface and linear algebra functions that are orders of
magnitude faster and more memory efficient than normal Python lists. That is
why it is essential for simulations and machine learning.
NumPy is part of the Anaconda package.

• SciPy

The Scientific Python (SciPy) library is a library of algorithms created to perform


complex mathematical analysis. It uses NumPy arrays as its basic data structure
(thus, it is fast) and can perform tasks, such as integration, solving ordinary
differential equations, signal processing, and optimization.
SciPy is provided by the Anaconda package.

• Matplotlib

Matplotlib is a library for creating plots, graphs and other visual representations
of data. It is vital for any data scientist or data analyzer.
Matplotlib is also part of the Anaconda package.

• TensorFlow

TensorFlow is an open source, machine learning library developed by the


Google Brain Team and released to the public in 2015. It is used in almost every
Google application for machine learning. The number of applications of
TensorFlow is unlimited and that’s the beauty of it. It’s optimized for speed, it’s
very flexible and can run on both CPU and GPU. It also has great visualization
tools. TensorFlow is part of the Anaconda package, excluding the automatic

32
installation – it needs a manual install. This can be done by opening the
anaconda prompt and typing “ conda install tensorflow” .

• Scikit-learn

Scikit-learn (or, in short, sk-learn) is a Python library associated with NumPy and
SciPy. It is considered as one of the best libraries for working with complex data,
as it contains numerous algorithms for implementing standard machine learning
and data mining tasks, like reducing dimensionality, classification, regression,
clustering, and model selection.
Scikit-learn is part of the Anaconda package.

• Pandas

Pandas is a data analysis library that provides high-level data structures and a
wide variety of tools for manipulating them. One of the great features of this
library is the ability to translate complex operations with data using one or two
commands. Pandas has many built-in methods for grouping, combining data,
and filtering, as well as time-series functionality.
Pandas is part of the Anaconda package.

• PyTorch

PyTorch is another open-source machine learning library that allows developers


to perform tensor computations with acceleration of GPU, creates dynamic
computational graphs, and calculate gradients automatically. It was introduced
in 2017, and since its inception, the library is gaining popularity and attracting an
increasing number of machine learning developers. Although it is relatively
young and it doesn’t have the amazing visualization techniques of TensorFlow ,
PyTorch is in direct competition with TensorFlow.
PyTorch is part of the Anaconda package but it requires a manual installation –
open

33
• Keras

Keras provides an easier mechanism to express neural networks, as well as


some of the best utilities for compiling models, processing datasets,
visualization of graphs, and much more. It focuses on being user-friendly,
modular, and extensible but sacrifices speed.
Keras is a favorite among deep learning researchers, coming in at #2. It has also
been adopted by researchers at large scientific organizations, in pa rticular CERN
and NASA.
Keras isn’t a part of the Anaconda package.

anaconda prompt and enter “ conda install pytorch -c pytorch” .

Python GUI libraries

GUI (Graphical User Interface) libraries allow programmers to create dazzling


applications. Python is an interactive language, so getting started with programming a
GUI framework is not much of a difficult task. In fact, Python has a diverse range of
options in this sector:

• Tkinter

Tkinter is commonly bundled with Python, using Tk and is Python’s standard GUI
framework. It is popular for its simplicity and graphical user interface. It is open
source and available under the Python License. One of the advantages of
choosing Tkinter is that since it comes by default, there is an abundance of
resources, both codes and reference books.

• wxPython

WxPython is an open source wrapper for cross-platform GUI library WxWidgets


(earlier called WxWindows) and implemented as a Python extension module.
With WxPython you, as a developer, can create native applications for Windows,
Mac OS and Unix.

34
• PyQT

PyQT is one of the favored cross-platform Python bindings implementing the Qt


library for the Qt (owned by Nokia) application development framework.
Currently, PyQT is available for Unix/ Linux, Windows, Mac OS X and Sharp
Zaurus. It combines the best of Python and Qt. And it up to the programmer to
decide whether to create a program by coding or using Qt Designer to create
visual dialogs. It is available in both commercial as well as GPL license. Although
some features may not be available in the free version, if your application is
open source, then you can use it under the free license.

• PyGUI

PyGUI is a graphical application cross-platform framework for Unix, Macintosh,


and Windows. Compared to some other GUI frameworks, PyGUI is by far the
simplest and lightweight of them all, as the API is purely in sync with Python.
PyGUI inserts much less code between the GUI platform and Python application,
hence the display of the application usually displays the natural GUI of the
platform.

Python frameworks for web development

Given how dynamic web development has become, the popularity of Python
frameworks only seems to be increasing. This object -oriented, powerfully composed,
interpreted, and interactive programming language is really easy to learn. Moreover, it
effectively lessens the development time with its easy-to-read syntax and simple
compilation feature.

Python gives a wide scope of tools to developers. Listed bel ow are some popular web
frameworks:

35
• Django

Django is a free and open-source framework that enables developers to develop


complex code and applications effectively and quickly. This high-level
framework streamlines web application development by giving different
vigorous features. It has a colossal assortment of libraries and underscores
effectiveness, less need for coding, and reusability of components.

• CherryPy

CherryPy is an open-source Python web development framework that implants


its very own multi-strung server. It can keep running on any working framework
that supports Python. CherryPy features incorporate thread-pooled web server,
setup framework, and module framework. A moderate web framework enables
you to utilize any sort of technology for data access, templating, etc. Yet, it can
do everything that a web framework can, for instance, handling sessions, static,
file uploads, cookies, and so on.

36
• Pyramid

Pyramid is a framework that underpins validation and directing. It is incredible


for growing huge web applications, as CMSs, and it is valuable for prototyping
an idea and for developers chipping away at API projects. Pyramid is adaptable
and can be utilized for both easy as well as difficult projects. Pyramid is
enhanced with features without driving a specific method for completing things,
lightweight without abandoning you all alone as your app develops. It is a most
valued web framework among experienced Python developers by virtue of its
transparency and measured quality. It has been used by a moderate team and
tech giants like Mozilla, Yelp, Dropbox, and SurveyMonkey.

• Flask

Flask is a Python framework accessible under the BSD license, which is inspired
by the Sinatra Ruby framework. Its main purpose is to help develop a strong web
application base. Developers can create backend frameworks any way they

37
need, however, it was designed for applications that are open-ended. Flask has
been used by big companies, which include LinkedIn and Pinterest. As
compared to Django, Flask is best suited for small and easy projects. Thus, you
can expect a web server development, support for Google App Engine as well as
in-built unit testing.

• Bottle

Another interesting Python web framework is Bottle, which falls under the class
of small-scale frameworks. Originally, it was developed for building web APIs.
Also, Bottle tries to execute everything in a single document, which should give
you a short perspective on how small it is designed to be. The out-of-the-box
functionalities include templating, utilities, directing, and some fundamental
abstraction over the WSGI standard. Like Flask, you will be coding significantly
closer to the metal than with a full -stack framework. Regardless, Netflix has
used Bottle to create web interfaces.

3. Coding in Python: Where to start?

Disclaimer: in this section, you will learn an invaluable lesson about programming.

You probably now know which libraries you would need for your future projects. That’s
all well and good but you still need to learn how to code in Python. And, presumably, in
this section, you are expecting us to give you information on what tutorials to s tart or
which textbooks to pick.

38
We regret to inform you that this is your first disappointment (of many) on the road to
mastering Python (or, for that matter, any other programming language). It’s not that
there aren’t any good free tutorials – there are plenty of them out there and some of
them are absolutely great.

Unfortunately, however great a tutorial may be, it is inevitable that it would have left
something out, or you would get an error not described in it. What then? Well, the
solution is to check in with the most important tool you have at your disposal – the
internet. The thing is, in programming most of the learning process would probably
happen through Google. Being able to find important information online is a must for a
programmer. So, that is why we are now encouraging you to find resources about
Python on your own. Hmm… do I hear a gasp of desperation?

Alright, we won’t leave you completely to your own devices. Here are some actionable
steps you can take to get started with Python.

3.1. How to learn Python?

Textbooks

Books are a great way to gain detailed knowledge about Python programming on the
go. But which are the best Python books out there? Sure, there are plenty of Python
programming textbooks available on the market. But you should also consider the
following ebooks for beginners you can access for free :

• How to Think Like a Computer Scientist, by Allen Downey, Jeff Elkner and Chris
Meyers (access pdf here);

• Think Python by Allen B. Downey (access various formats here);

• A Byte of Python by Swaroop C.H. (access website with download links);

• Learn More Python 3 the Hard Way by Zed Shaw (you can read it or download it
here).

39
• The Hitchhiker’s Guide to Python by Kenneth Reitz and Tanya Schlusser (you can
download it in epub here).

Online courses

Free online courses to learn Python

Online courses are certainly the way to go if you like flexible learning schedules and
choosing your own learning environment. And, exploring the free learning options out
there is a sound initial choice. Especially if you’re a complete beginner and you’re not
100% sure you’re ready to commit to learning Python in depth. So, here are 10 free
online Python courses you can begin with. Sure, they aren’t as comprehensive as some
paid courses or complete programs. But they’re good enough to give you a basic
Python introduction.

• Febin George: Programming with Python: Hands-On Introduction for Beginners;

• University of Michigan: Python Functions, Files, and Dictionaries;

• University of Michigan: Programming for Everybody;

• Michael S. Russel: Learn Python 3.6. for Total Beginners;

• Georgia Institute of Technology: Computing in Python I: Fundamentals and


Procedural Programming;

• Avinash Jain: Introduction to Python Programming;

• Microsoft: Introduction to Python: Absolute Beginner;

• GW School of Engineering and Applied Science: Practical Numerical Methods


with Python;

• Rice University: An Introduction to Interactive Programming in Python (Part 1);

• IBM: Python for Data Science and AI.

40
Complete programs

Why go for a complete program when you only want to learn Python?

Well, here’s the thing - learning Python is not an end in itself. A course here and there
will give you some practical shortcuts but won’t provide you with a richer context
where you can develop and apply your Python skills. Neither will it help you build up
your expertise in a gradual and consistent manner. And those are both key aspects of
the learning process if you want to become a confident professional with solid Python
programming competence.

• DataCamp

DataCamp provides a wide range of bite-sized lessons that are convenient for learners
who want to polish their skills on the go. The platform organizes its courses by skill
tracks and career tracks, so you can focus on a narrower area, depending on your
interests.

• Dataquest

Dataquest has categorized its courses as sequences in four career paths. Each of them
corresponds to a different level – beginner, intermediate, or advanced. This is a really
useful approach if you’re looking for a very specific preparation for a particular
position.

• Springboard

Springboard offers courses in data science, analytics, and design. In addition, their
tracks include 1:1 mentorship and career coaching through scheduled calls. Some of
the courses have prerequisites to enroll, such as coding experience or working
experience with design or programming tools.

41
• 365 Data Science

The 365 Data Science Program provides the closest online alternative to an all -around
university data science education. What sets it apart from the rest is the step-by-step,
structured curriculum with the right balance of theory and practice. It allows you to
build up your expertise in a gradual and consistent manner from the fundamentals,
through programming to the more complex topics of Machine Learning and Deep
Learning. Then, you can step up your data science game even further with the
advanced specialization courses in Time Series Analysis and Credit Risk Modeling.

Our self-paced training combines video lectures, real -world practical examples and
larger projects you can add to your portfolio. Once you complete the program, you’ll
receive a verifiable certificate to demonstrate your expertise to future employers. And,
if you need any help throughout the learning process, you can always rely on the 365
instructors for timely clarifications, portfolio advice and resume feedback. So, you’re
welcome to check our program out, explore the learning possibilities it offers and see
if fits your educational and career goals.

42
YouTube videos

YouTube is full to the brim with Python video tutorials. But, in case you’re wondering
where to begin, here are a few channels worth checking out.

Data science

• Data School (Kevin Markham) – in-depth data science and Python tutorials you
can understand regardless of your background;

• Giles McMullen-Klein (Python programmer) - helpful and fun Python tutorials


that will easily get you in the mood for coding;

• 365 Data Science – from Python tutorials for absolute beginners, through Python
Programming Bootcamp, to indispensable data science career advice – we have
it all covered in our channel (please excuse the absence of modesty, but we
really do);

WebDev

• Chris Hawkes – Python, web design, web scraping, games and more;

• Michael Kennedy – in this channel, you’ll find plenty of demos and


programming lectures, mostly focused on Python and web topics;

• FreeCodeCamp – a large collection of videos on various subjects, including


Python and programming tutorials, web development and game development
topics, as well as live coding sessions;

DevOps

• Corey Shafer – a channel for software developers, programmers, and engineers


with a wide range of videos on topics, such as Python, development
environments, computer science fundamentals, and more.

43
• Edureka – videos and lectures on Python, DevOps, Blockchain and more;

General

• Clever Programmer – here you can learn how to code smarter with Python
tutorials, programming tips and tricks;

• Dan Bader (Real Python) – this channel gives you tutorials, and training videos
for functional programming in Python, along with some useful programmer’s
career advice.

Of course, there are literally hundreds of other tutorials that can stir up your
enthusiasm, so search away!

As you can see, there isn’t a single “ best way to learn Python” . In fact, are many
different directions you can take for different skill -levels assumed. Therefore, it’s best
to try some (or all) of them and see what works for you.

3.2. Find help when learning Python: online

communities

As you progress and start writing more complicated code, it’s normal to experience
some difficulties or encounter errors. It may feel frustrating at times, but remember, it
is part of the learning curve and programming in general.

So, don’t worry. After all, there is a great community online that you can ask for
directions when you feel stuck. Or you can help other programmers by sharing your
insights with them. Nevertheless, we’ll give you some essential resources, just in case
you don’t know where to start.

44
Stack Overflow

A great place to visit is Stack Overflow – an online community for developers, where
you can learn and share programming knowledge to help build your career. It’s not just
for Python, but all different programming languages. However, its Python content has
been growing steadily in the last 5 years. And in both 2017 and 2018, the question views
for Python surpassed those for JavaScript and Java.

Python.org

Another way to get support is to take part in the online community. If you go to the
community page, you’ll find info about pyslackers – a community of enthusiasts
centered around an open slack team. You can also subscribe to a Python weekly
newsletter and receive news and information about new releases, as well as job
opportunities.

Python documentation

If blogging with the community isn’t your thing and you prefer learning on your own,
from the source as it were, you have plenty of resources to refer to. You can read about
the different libraries and functions available in Python, all of them have extensive
documentation online. For a lot of the libraries, there is even example code, where you
can see the functions implemented. So, there are various ways to help you learn and
advance your Python programming skills.

3.3. Learning Python: Resources for Practice and

Exercises

The only way to truly learn something is through practice. Tons of it. And programing is
no exception. In this section, we’ll provide you with some resources for practice and
exercise (that could also inspire you to come up with some great Python project ideas).

45
Project Euler

Project Euler is a series of challenging mathematical/ computer programming


problems that will require more than just mathematical insights to solve. Although
mathematics will help you arrive at elegant and efficient methods, you'll need
computer and programming skills to solve most problems.

These are not Python practice problems specifically; they are exercises for you to learn
programming in general. The difficulty of the questions increases with each one you
solve, and some solutions may give you insight for some of the next questions or your
future Python projects. However, they do not cover the basic concepts and syntax
specific uses of Python. Thus, you may want to jump in some easier exercises first.

There are no official code solutions but the community posts implementations in
different languages in the forum section of each question.

Python Specific

Great resources can be found at w3resource and pynative here. They offer Python
specific exercises for basic to intermediate level of students. Some of the exercises in
pynative assume prior basic knowledge of Python syntax but overall the logic starts to
build from the ground up.

A helpful feature of these websites is that they offer solutions to each exercise, some
even contain graphical explanations and line by line execution of the code.

If these sound too advanced, you can also check practicepython.org here. It gives you
over 30 beginner exercises, along with brief discussions of a topic, and, of course, a link
to a solution.

And don’t skip CodingBat and GitHub – you can find plenty of basic, intermediate and
complex Python problems to exercise your skills.

46
Last but certainly not least, make sure you check out our own tutorials and exercises.
They’re super practical and detailed in explanat ion. Plus, if you encounter any
difficulties, you can leave us a comment and we’ll get back to you to help you out.

In Conclusion

I wish I could tell you that once you’ve read this article, you’ll become proficient in
Python overnight. But the reality is, you won’t. There’ll be a lot of trial and error… and
then some more.

I think often as learners we feel the need to prove we can do things super -fast and
mistake-free, and this comes almost entirely from our inner pressure to be perfect. So,
if there’s one final piece of advice worth taking, it would be – keep practicing. Put in
the necessary work, and don’t get discouraged by the difficulties in the process. Or, to
quote Patrick McKenzie,

Every great developer you know got there by solving problems they wer e unqual ified
to solve until they actually did it.

And this is what this article is ultimately about. We hope this overview will be a
trustworthy companion in your learning adventure. And, in the spirit of the open -source
programming language, if you liked it and you found it helpful, take a second and
share it, so that others can learn and progress, too! Ready to start learning Python
programming? Enroll in our Python for Beginners course for free.

Try Python course for free!

47

You might also like