Python is everywhere.
According to the 2019’s StackOverflow’s Developer Survey, it is the 2nd most loved programming language in the world.
Over the past 4 years, Python has constantly been the 3rd most popular language among GitHub contributors.
Even here at CV Compiler, we use Python as a core language for our resume-processing engine.
Our love for Python made us go even further — with the use of NLTK and spaCy, we have created own text analytics tool. (Without it, you won’t be reading this data-proven list of skills a modern Pythonista should have.)
Actually, here is the result of our efforts — the comprehensive set of skills you as a Python dev need to stay marketable in 2019.
What skills do I need to succeed as a Python dev in 2019?
Jointly with our team, we took 300 job specs for Python developers, scrapped from StackOverflow, AngelList, LinkedIn, and the websites of some fast-growing tech companies worldwide. From all these descriptions, we extracted the skills which were mentioned the most frequently, and here they are. (The numbers refer to the number of mentions.)
Among the other frequently-mentioned skills not highlighted in this chart were Unit Testing (32), Continuous Deployment (30), MongoDB (30), and OOP (30). If talking about the Machine Learning skills, the most commonly-mentioned ones were Pandas (29), NumPy (24), SciPy (15), and Scikit-Learn (11).
Surely, the necessity of these skills depends on how you use Python. If you’re a Machine Learning Engineer, you don’t need to know Django perfectly, and so on.
Please note: This research shows the overall tendencies in the employment market, not the preferences of Python developers themselves. This rating may differ from the list of technologies most devs prefer to use in their work. For some Python insights, turn to Python Developers Survey by Python Software Foundation, or Octoverse by GitHub.
What is the experts’ opinion about current Python trends?
Nowadays, it’s absolutely standard for developers to be familiar with Git, GitHub, and Travis for CI. Testing, preferably with pytest and (judicious) use of unittest.mock, is also vital for a well-run project. Container and virtualization technologies, from docker to lxc to AWS to Azure to Kubernetes and OpenStack, are very “normal” for both development and deployment. Being able to create build artifacts, then deploy a staging version of your infrastructure, then run tests against it, then deploy to production and if necessary rollback to a previous version, should all be push-button operations.
Django is still as popular as ever and a useful skill to have. Flask and SQLAlchemy is just as potent a combination, but not quite as highly in demand. As for Data Science, it is a rising star of the Python world. Pandas, Numpy and SciPy are all tools that are highly in demand, along with Jupyter notebooks. Database knowledge is also essential here.
This research shows pretty clearly the direction where the development world is evolving. AWS, Docker, Clouds, and Kubernetes are pretty new, but they have already become a part of the programmers’ everyday routine. It doesn’t mean that you as a Python dev need to know all the nuances of these technologies, but you will be facing them on a daily basis.
Machine Learning requires Python in 9 cases out of 10, but it’s a completely different field. If you’re a Python dev, you don’t need ML skills. If you choose Machine Learning or AI, you will definitely need Python.
The word ‘microservices’ is very close to Go, REST, and API on the graph. However, this tiny word silently changes the whole market. I recommend starting to invest time in understanding what it brings to the surface.
For Python devs in general, I don’t think there is one thing they need to learn/know to excel. Data science, DevOps, Web Development, and Automation are totally different fields but all fall under “Python devs”. However, I get asked about Data Science tools more than I used to from my clients. Mostly it’s Pandas, followed by Jupyter notebooks.
I have done a few interviews over the past year or two and there are definitely a lot of employers that want AWS or cloud experience. In addition to that, I see a lot of growth in Data Science / Machine Learning. And much like this research is already showing, if you can do Web Development, that would be good as well.
To polish my skills, what resources should I use?
To help you out, I’ve gathered some resources respected by both our team and experienced devs from Python communities worldwide.
Python-related resources (web development included):
- RealPython is a comprehensive set of Python tutorials. (They also have an inspiring YouTube channel, created by Dan Bader.)
- Python Weekly — a curated weekly newsletter featuring articles, releases, and jobs.
- This website is full of Python resources for experienced devs, engineers, and scientists. (Created by Kenneth Reitz.)
- Sentdex YouTube channel has huge playlists about Django, ML, Python&Finance, and so on. (Put together by Harrison Kinsley.)
- In his blog, Miguel Grinberg offers about 80 articles, dedicated to Flask.
Data Science, Machine Learning & AI:
- Technical notes on implementing Data Science & AI. The topics covered also include AWS and Linux. (Made by Chris Albon.)
- While Keras is one of the most popular deep learning libraries for Python, it also has a useful thematical blog.
- A set of Scikit-learn tutorials for those who want to master scientific Python.
- Computer Vision and Deep Learning resource guide, by Adrian Rosebrock.
Who should I follow online to keep a finger on the pulse?
Here is a list of Pythonistas I gladly follow myself on Twitter:
- @kennethreitz — creator of Pipenv & Requests.
- @dabeaz — author of Python Cookbook.
- @raymondh — Python core developer.
- @1st1 — Python core developer, founder of EdgeDB.
- @adrianholovaty — co-creator of Django.
- @jacobian — co-creator of Django.
- @pydanny — co-author of ‘Two Scoops of Django’ book, open source programmer.
- @ixek — Cloud Developer Advocate at Microsoft.
- @karpathy — director of AI at Tesla.
- @AndrewYNG — co-founder of Coursera.
Practice makes perfect, so, create a list of skills you want to learn or improve, and start your way to the new heights. I hope this material will help you in boosting your IT career!
This article was prepared jointly with the team at CV Compiler, an ML-powered resume enhancement tool for tech professionals, (Python devs in particular). If you need a flawless resume, tap here. You can check your resume score for free!