- Why did I learn Python?
- What can you expect from this article?
- Why should you learn Python?
- Proof of the Pudding
- What can you do with Python?
- What are the disadvantages of Python?
- Final Call
Why did I learn Python?
My first encounter with Python happened because of a small lie.
During my application to an internship that required me to build the control system of robots using Python, I lied to my recruiter about already possessing beginner-level programming skills in python.
Thankfully, he didn't ask me anything else and accepted me for the internship program. But since that day, I have religiously practiced Python every day in my life, so that I wouldn't have to lie to anyone else!
In my beginner days, I did the whole dance to learn Python.
- I did a lot of free courses on the internet.
- I solved every problem I could find on any Python topic again and again. And then again!
Initially, I only did it to do excel at my thesis. But eventually, I fell in love with this simple language.
So much so that I started applying for Python programming jobs even before my Masters in Transportation Engineering got over and happily accepted the job offer when I got one.
What can you expect from this article?
If you are reading this, there is a good chance you already know what Python is and why it is a popular choice for learning in today’s generation. But maybe you have your own doubts!
- Maybe you are considering Python as your first language for learning programming, but not sure if it is right for you!
- Maybe you are a software engineer, interested in making a transition into Machine Learning or Data Science, and the hype around you is that you need to know Python for this.
- Maybe you are just curious and missing a hobby in your present life. So you decide to embark upon a journey of learning a new language. And you are choosing Python!
- Maybe you are here just to find dirt about Python! What are the disadvantages of Python?
- Maybe you are wondering if Python can replace Java!
For whatever reason you are here, I am not going to leave you disappointed!
I am going to list out various reasons, why choosing Python is a great choice for programming. I am going to layout the various advantages of working with Python.
But then, I am not going to be a blind promoter. I am also going to explain to you, what you shouldn’t expect from Python and areas where it could let you down.
Why should you learn Python?
Python is a high-level, interpreted, and general-purpose programming language developed by Guido van Rossum in 1991. Over the years, Python has become famous for its versatility of being able to blend object-oriented, procedural, and functional programming into itself very elegantly.
It is not just a scripting language anymore.
There are a lot of reasons that make Python special.
In this blog, I am going to discuss 5 reasons that are the most important reasons according to me and should be sufficient for you to choose Python as your first or next programming language.
Reason 1: Simplicity and Readability
Python’s most distinctive quality is its simple syntax and readability. This is what sets it apart from a lot of other programming languages and therefore makes it a great first choice for beginners.
Python is an interpreted language.
What is an interpreted language?
An interpreted language is a programming language where the code is executed at run time and does not need to be compiled like other languages (C++ or C). Therefore it comes with some subtle advantages like dynamic typing, automatic memory management, and scoping.
Reason 2: Developer Productivity
Python allows developers to become highly productive by getting their job done with lesser lines of code compared to other languages. Lesser lines of code imply lesser lines to debug and maintain.
Since Python is an interpreted language, it skips the lengthy compilation steps required by some other programming languages and therefore, improves the development speed of software developers to a great extent.
These qualities make Python a pleasurable language to work with.
Reason 3: Awesome libraries and frameworks
Python comes with a pre-built standard library that provides awesome support for software development. There is also a vast amount of open-source third-party libraries that help developing applications really easily.
Be it web development, machine learning, image recognition, data analysis, visualization, or making HTTP requests, Python libraries have proved to be super useful for all such tasks and even more.
Here is a list of a few awesome Python libraries.
- For Machine Learning - Tensor Flow, Pytorch, Keras
- For mathematical and scientific computations - Scipy, Numpy, Theano,
- For plotting and graphing - Matplotlib, Seaborn
- Data Wrangling - Pandas, CSV
- SQL Connectors - Sqlite3, Pgsql2
- Image Processing - Pillow
Reason 4: Great career options
With so many companies adopting Python into their stack, there is a huge amount of job opportunities available for all levels of Python developers.
Surveys in the United States have shown that the average salary of a Python developer in 2019 is touted to be between $100,000 and $130,000.
Of course, this number varies from country to country. However, it does give an idea about the demand and importance of Python developers in the current generation.
Reason 5: Huge online Python community
Stack Overflow, Facebook, Reddit, Youtube, Twitter, you name it. There is a huge developer community online to support you with understanding the nitty-gritty details about this language. This is very helpful as you can easily clarify your doubts online and therefore your learning never really slows down.
Honestly, this is one of the most important factors to consider while choosing a new programming language. Lack of a support community can become a real deal-breaker for you as you might be stuck with your problems, eventually losing interest in the field.
Proof of the Pudding
As you are reading this blog, Python has passed SQL to become the third most popular technology, according to Stack Overflow Developer Survey Report 2021.
Here are the top 5 popular programming languages according to that survey.
What can you do with Python?
So what can you do with Python? Where are the areas of software development where you can expect to pursue a sustainable career?
Here are some major areas where Python is intensively used.
Graphical user Interfaces
Some GUI-based applications like Inkscape, Paint Shop Pro, and Scribus have been built using Python.
Python is also used in building games. Civilization IV and Eve of Tanks are incredible examples.
Thanks to frameworks like Django, Pyramid, Flask, and Web2Py, a lot of famous companies around the world use Python in their stack for web applications. Some famous ones are Google, Facebook, Reddit, and Instagram.
Data Extraction, Analysis, and Visualization
Libraries like Requests, Pyspark, Pandas, and Matplotlib make it really easy for data engineers to build ETL(Extract, Transform and Load) pipelines, add transformations and build insightful visualization on the data procured.
Companies like Stitch have their entire stack built on Python for Extracting and Loading data from various sources to relevant destinations.
A new tool in the market is Dagster which allows developers to build DAG (Directed Acyclic Graphs) based on entire ETL pipelines using Python.
Data Science and Machine Learning
Probably the most intensive use of Python is being made in the field of Machine Learning by data scientists. There has been a huge growth in the demand for Machine Learning since 2013. Check out this report from Google trends to see how Machine Learning has peaked over the last few years(graph below).
Python makes it really easy for machine learning enthusiasts to build and train their models with the help of amazing libraries like Keras, Scikit-Learn, Tensor Flow, OpenCV, and a lot more.
What are the disadvantages of Python?
Now everything is not a bed of roses here. Python also comes with some disadvantages.
Slower execution time
Since Python is an interpreted language, it is slower than other compiled and lower-level languages like C and C++.
High memory consumption
Due to its various flexibility, Python uses a lot of memory. Therefore, it is not much suitable for memory-intensive tasks.
Very little impact on mobile app development
In spite of its popularity, Python is not the first language of choice for building mobile apps. Sure frameworks like Kivy do exist that support building mobile applications. However companies and developers still prefer Android, Swift, React Native or Flutter over Python.
I am sure the above disadvantages are crucial. But are they crucial enough to not learn this beautiful language? Not all of them.
Python is not for you if you aspire to become a mobile app developer. Go with something that is being heavily used in the current market for building mobile apps - React Native or Android and Swift.
Slower execution times are an issue, but with today’s electronics capabilities where computation and storage have become so cheap, execution speed and memory consumption should not be the first thing you should worry about(definitely not, if you are a beginner). Sure it is important to be aware of these issues so that you can take the right course of action during your application development process. But they are very small trade-offs to experience the huge amount of advantages and opportunities that Python brings your way.
So it’s your choice. If Python is for you, I am here to help you along the way.
It is time for you to install Python on your machine and begin your programming journey. Check out this guide to install Python on Windows 10 and Mac OS.
Check out my Youtube channel that is full of useful Python videos for all levels of programmers. Don't forget to subscribe!
And No, Python can never replace Java!