Why Learn Python? Here Are 8 Data-Driven Reasons
Is Python worth learning? We’ve interviewed experts and surveyed the job market to identify the key reasons why you should learn Python today.
Python had a great year in 2016. The latest Stack Overflow Developer Survey ranked Python as the 6th most popular and the 4th most wanted technology of the year.
Python is also one of the hottest skills to have according to research by Dice, and the 2nd most popular programming language in the world based on the PYPL Popularity of Programming Language Index.
So why the hype? What makes Python so popular? Should you stop what you’re doing and start learning Python right now? I’ve searched far and wide to find out why Python is one of the world’s most loved and most used technologies. Without further ado, here’s why Python is worth learning in 2017 and the years ahead:
1. You Can Use Python for Pretty Much Anything
One significant advantage of learning Python is that it’s a general-purpose language that can be applied in a large variety of projects. Below are just some of the most common fields where Python has found its use:
- Data science
- Scientific and mathematical computing
- Web development
- Finance and trading
- System automation and administration
- Computer graphics
- Basic game development
- Security and penetration testing
- General and application-specific scripting
- Mapping and geography (GIS software)
In preparation for this post, I posted the question “Is Python worth learning?” on Google+, Quora, and LinkedIn in order to collect some professional opinions on the matter. Here’s one of the responses I got that supports my point:
“I had the opportunity to start learning Python 6 years ago. Since that time, I’ve used Python for everything from work related stuff to home automation tasks, and I have never stumbled upon a problem that can’t be solved with Python.”
— Anass Bensrhir, Senior Data Scientist and Managing Director at Bold Data
2. Python Is Widely Used in Data Science
(Source)
Python’s application in data science and data engineering is what’s really fuelling its popularity today. Pandas, NumPy, SciPy, and other tools combined with the ability to prototype quickly and then “glue” systems together enable data engineers to maintain high efficiency when using Python.
Justin McGrath, a researcher at the University of Illinois, Champaign-Urbana agrees:
“Python is probably going to become the de facto standard for scientific and statistical analyses. If you’re going into those fields, it’s certainly worth learning.”
3. Python Pays Well
It’s all well and good, but what about the pay, I hear you ask? It turns out Python engineers have some of the highest salaries in the industry, at least in the US.
At nearly $103,500 per year, Python is the second best-paying programming language in the country (beating out Java, C++, and JavaScript) according to Gooroo, a skill and salary analytics platform.
Indeed’s salary calculator gives an even larger figure—a whopping $116,000 per year. Of course, tech salaries differ greatly from one state to another. So to add some context, here’s a breakdown of how much Python engineers make in the states featured on Indeed:
(Click to view a larger version of the above image.)
(Click to view a larger version of the above image.)
4. Demand for Python Developers Is High (And Growing)
Based on Indeed’s job trends, it looks like having Python under your belt can help you land a job in very short terms. The graph below displays a steady growth in the number of job postings featuring Python since 2012, and there has been a strong spike in popularity over the last six months.
What’s more, the demand for Python skills clearly outstrips jobseeker interest. The job market outlook for Python developers is excellent at the moment.
5. Python Saves Time
I’m pretty sure that the majority of the developers who’ve used Python would agree that making anything with this language takes a lot less time and code than most other technologies.
Even the classic “Hello, world” program illustrates this point:
print("Hello, world")
For comparison, this is what the same program looks like in Java:
publicclassHelloWorld{publicstaticvoidmain(String[]args){System.out.println("Hello, world");}}
6. Python Is Beginner Friendly
Following up from the previous point, Python’s famously clean and readable syntax makes it newbie-friendly. A well-written Python program can look like it came straight out of an algorithms text book. There’s little superfluous boilerplate, allowing beginners and experts alike to focus on the job at hand—instead of the code.
Python’s efficiency and readability have also made it the number one most commonly taught introductory language at top US universities. This will have ramifications on the future job market and likely make Python an even more popular technology choice.
7. All the Big Names Use Python
Ever wanted to work for a tech giant like Google or Facebook? Python could be your way in, as these companies, as well as YouTube, IBM, Yahoo, Dropbox, Quora, Mozilla, Instagram, and many others all use Python for a wide array of purposes, and are constantly hiring Python developers.
(Source)
Dropbox’s code base, for instance, uses Python for almost everything, including analytics, the server backend, the API backend, and the desktop clients.
8. Python Has an Amazing Ecosystem
Last but not least, there’s a huge number of resources developed for Python that keep getting updated, including an impressive standard library with built-in functionality, a built-in unit testing framework, and more than enough frameworks and environments that allow you to focus on writing the website or app at hand.
Django is the most commonly used Python web framework, but there’s also Flask, Pyramid, web2py, Zope 2, and a few more.
What Do Python Community Leaders Think?
I thought it would also be a good idea to top things up with a few expert opinions on the advantages of Python as well as its future. It’s always a good idea to get a second (or third) opinion. So I reached out to several influencers and leaders in the Python space.
I asked each of these experts three questions:
- What advantages does Python have over other programming languages?
- What future do you see for Python in 3–5 years?
- What will the job market look like for a Python developer in the coming years?
Here’s what I was able to learn:
“You start easy but you rarely outgrow Python like you do other easy to learn languages.”
What advantages does Python have over other programming languages?
I often think of programming languages as falling into two buckets.
The first group would be the “With great power comes great responsibility” type of languages. This would be C, C++, and to a lesser degree C# and Java. The others are “I just need to ship something, don’t waste my time with minutia” languages. Visual Basic (pre-VB.NET) and JavaScript seem solidly in this camp, although JavaScript appears to be trying to escape with the massive decoupling seen in typical Node.js code and TypeScript.
You choose C++ or C# if you need to really control the system and build large professional software. Is it mission critical enterprise software running the company with 100k lines of code? You might choose these. If you need a quick app to get the job done, like writing that “forms over data” app for something internal, VB 6 used to be a great answer for finishing that in a week, but coding yourself into a box if it grows too big or needs low level capabilities.
Python is one of the few languages that is:
- Easy to learn
- Solves that “Don’t waste my time” set of problems well
- Yet, is also well designed with OOP and solid modern language features
- Can grow in power to match the powerful languages in capabilities
In short, it’s one of the few languages that spans the spectrum of these capabilities. You start easy but you rarely outgrow Python like you do other easy to learn languages.
We could also go into things like data science, scientific computing, web development, microcontrollers, things like Raspberry Pi, and how Python spans more technologies and areas of focus than most programming languages do.
But the full spectrum aspect is the most powerful to me.
What future do you see for Python in 3–5 years?
In terms of predictions, I’m willing to make a few:
- Python will continue to expand into new areas of computing. It will be the primary IoT programming language.
- We will see Python interpreters/runtimes evolve and innovate. The YouTube team just released a project running Python on the Go runtime for example.
- The Python 3 vs Python 2 schism that has turned off countless new developers and generally been a cloud over community will be closed, and Python 3 will be just “Python”.
What will the job market look like for a Python developer in the coming years?
Given the growth numbers as well as the wide areas of computing that Python occupies, I think the job perspectives for Python developers are very solid.
Some folks may feel Python is kind of a niche language or a small time scripting language. But very major applications are written in Python, including Dropbox and Youtube.
Other areas outside web development where Python shines are places like the Large Hadron Collider where the team that found the Higgs Boson and won the Nobel Prize made heavy use of Python. Netflix uses Python to manage their AWS servers which cumulatively handle up to 35% of the bandwidth of the United States during the evenings.
You’ll find that some locations in the world are more Python-centric than others. But there are many opportunities for Python developers.
Michael Kennedy is a Python coach and host of the popular Talk Python and Python Bytes podcasts.
“There is a demand-supply mismatch for Python developers with 2 to 6 years of experience”
What advantages does Python have over other programming languages?
Python is an easier language to learn compared to, say, C++, C, C#, or Java, but that’s not it. We often tend to credit syntax, core team, feature roadmap, etc for the success of a certain language.
They’re beyond doubt important, but when it comes to Python, it’s the global, diverse, and vibrant community that make it so widely adopted. Initiatives like Django Girls and the scale at which they operate are unique. There are at least three dozen free books on Python, thousands of free videos to learn from, as well as the PyCon events all around the world.
Active local and online regional Python communities are the biggest advantage that Python has over other languages. It’s the people behind the language that make it special.
What future do you see for Python in 3–5 years?
10 years ago, mentioning Python was guaranteed to invite blank stares. But today, Python is a pretty mainstream language. I think Python is here to stay.
In 3–5 years I foresee:
- 2.x codebase becoming a minority
- Python developers being available in abundance thanks to schools and colleges that teach Python as an introductory language
- People using different Python runtime interpreters instead of just CPython
What will the job market look like for a Python developer in the coming years?
Back in 2007–2008, I’d get no more than 3–4 calls a month concerning Python job openings, and most of those calls had to do with Python scripting for test automation (India). But if I were to look for a job today, I’m sure my phone would ring multiple times per day.
There is a demand-supply mismatch for Python developers with 2 to 6 years of experience because of all these companies wanting to use Python for data science, data processing, machine learning, web application development, and so on.
This situation will be gradually improving over the next couple of years, which means today is definitely the best time to be a Python developer.
Ankur Gupta is the curator of the weekly newsletter over at ImportPython.com, which keeps you updated on everything happening in the world of Python programming.
“The community around Python is the most welcoming and inclusive one out of all those that I’ve experienced”
What advantages does Python have over other programming languages?
- Community. The community around Python is the most welcoming and inclusive one out of all those that I’ve experienced. Many times I’ve been inspired by the progressive effort at meetups and conferences to be inclusive to newcomers, underrepresented groups and minorities.
- Readability. A lot of effort has gone into developing Python as a language that has readability as one of its main features, rather than considering it as an afterthought. As Robert C. Martin wrote in Clean Code, “the ratio of time spent reading versus writing is well over 10 to 1.”
- Consistency. One of the things that I’ve always loved about Python is the fact that it uses whitespace to determine blocks instead of using various types of brackets. Although this is a little unintuitive when starting out, in my opinion, the advantage is that it ensures that Python code is relatively similar across different projects. It improves consistency and readability.
What future do you see for Python in 3–5 years?
In my opinion, the use of Python and the number of developers working with it will grow significantly in scientific fields. The number of science-related topics at Python conferences (and beyond) and releases of new tools to help the scientific community will make it easier to adopt the language. This will give the scientific community access to a very inclusive and welcoming developer community that will help improve the quality of development and simplify the tooling for scientific and research-related applications.
The mobile space is going to be very interesting in about 3–5 years. As Russell Keith-Magee pointed out in his presentation “Python on the Move: the State of Mobile Python” at PyCon AU 2015, the future of Python as a language will most likely depend in part on how the community moves into the mobile development space. Although the Python community is very diverse and the language is used in a lot of different fields, we currently don’t have any decent support for mobile platforms. Looking at Russell’s efforts to bridge this gap with his project under the BeeWare umbrella, I’m confident that this gap will be closed within the next few years, and we’ll be able to maintain a strong position even in these new areas.
Over the last several years, there’s been a lot of disagreement over Python 3 and whether it’s a step in the right direction. I do understand some of the critical arguments made against Python 3. Several highly qualified Pythonistas with vastly more experience than myself have raised valid concerns and pointed out flaws. Regardless of these concerns, I’m convinced that the adoption of Python 3 will pick up steam over the next two or three years, moving faster towards it being the mainstream version. This is indicated by projects like Django dropping support for Python 2.7 within 2017 with their release of Django 2.0 and the broader adoption of asyncio and coroutine-based frameworks and libraries.
Making the Python community a more inclusive space for individuals of underrepresented groups such as women and other minorities will help us build a community made up of all different types of people. I’m sure that over the next 5 years, we’ll see the first major benefits of these initiatives contributing to a much stronger community. Making everyone welcome and embracing the differences in perspectives and experiences will serve as a model for companies, proving that such an environment results in better software and happier employees. I also think that individuals from within the Python community who’ve experienced this atmosphere will impact their employers by demanding a similar environment in their professional lives, drawing from the support of the community.
What will the job market look like for a Python developer in the coming years?
The next few years will most likely see a much more diverse landscape of Python jobs. With the increased application of Python in scientific fields, more research positions will become available. In addition, I think the growing need of programming skills within the scientific community will lead to having a combination of researchers and programmers to produce a skilled workforce that is capable in the scientific aspect as well as development best practises and tooling.
The position of Data Scientist is going to become more and more important in the tech industry and will therefore increase the demand within the Python community specifically. We already have a large number of scientists use Python as their main language for their research in our community. Their skills in statistics and the use of the language will make them prime candidates for positions that are related to data-driven systems. With the demand for such systems growing fast, there will be a high demand for these individuals, and anybody within the Python community willing to level up on either the development aspects or the scientific skills.
The Python community is strongly committed to improving its inclusiveness and diversity. Mandating and enforcing codes of conduct at conferences and meetups as well as openly stating the inclusive nature of communities around projects like the Django framework are helping to improve the representation of underprivileged individuals within the community. I hope and believe that this will, over the next few years, help make the community a place that will thrive, because individuals from these underrepresented groups will feel safe and welcome. This will make the Python community an exceptional pool to tap into for companies that are making an effort to improve the diversity of their development and science teams.
Sebastian Vetter is a Senior Python Engineer at Eventbase, PyCon speaker and Python meet-up host.