The first time you hear about Python Programming you kind of want to explore and understand the capabilities of the language. This is exactly what happened to me when one of my university professors told me about Python and I was just a QA engineer at that time. The first question that came to my mind was: “What Is Python Programming In Short?”. Let me explain…
What Is Python Programming In Short?
As a Python developer who has been using Python for several years now, I can confidently say that it is an incredibly powerful and versatile programming language.
Python is a high-level, interpreted language, which means that it is easy to read and write, and you don’t need to worry about low-level details like memory management and compiling code.
Python is great for beginners who never coded anything before.
I used to be one years ago and all I wanted to do was to just start building a script or a small project, just to start understanding programming from a practical standpoint, not just in theory.
Low-level programming languages, such as assembly, require developers to have a strong understanding of the hardware and operating system on which the program will be running.
This can be difficult for beginners because it requires a deeper understanding of how computers work at a fundamental level.
In contrast, high-level programming languages, such as Python, abstract away much of this complexity and allow the programmer to focus on the logic of the program rather than the low-level details.
This can make it easy for beginners to learn Python, build their first portfolio projects and get a job in the industry and only then shift their focus to understanding low-level details of programming languages.
What Type Of Language Is Python?
Python is a high-level, interpreted language.
This means that it is a language that is more abstracted from the hardware and operating system, and it is designed to be easy for humans to read and write.
Python code is generally not compiled directly into machine code, the way that languages like C and C++ are.
Instead, it is interpreted by a software program called a Python interpreter, which reads the code and executes it on the fly.
Interpreting code on the fly can sometimes lead to unexpected errors.
Because the code is not compiled before it is executed, the Python interpreter can’t catch syntax errors or other issues until it actually runs the code.
This means that you may not find out about an error until the code is running or already deployed in production. Still, this is a small downside to the benefits that Python provides.
Here’s an example of a real production error:
Traceback: File "/var/wsgi/app/.venv/lib/python3.8/site-packages/django/core/handlers/exception.py" in inner 34. response = get_response(request) File "/var/wsgi/app/.venv/lib/python3.8/site-packages/django/core/handlers/base.py" in _get_response 115. response = self.process_exception_by_middleware(e, request) File "/var/wsgi/app/.venv/lib/python3.8/site-packages/django/core/handlers/base.py" in _get_response 113. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/var/wsgi/app/.venv/lib/python3.8/site-packages/django/views/decorators/http.py" in inner 40. return func(request, *args, **kwargs) File "/var/wsgi/app/.venv/lib/python3.8/site-packages/django/views/decorators/cache.py" in _wrapped_view_func 44. response = view_func(request, *args, **kwargs) File "/usr/lib/python3.8/contextlib.py" in inner 75. return func(*args, **kwds) File "/var/wsgi/app/spell/billing/views.py" in psd2_auth_code 5782. backend File "/var/wsgi/app/spell/billing/services/payment_backends/bank_transfer/pis/base.py" in payment_authorization 3110. return self.render_code_page( File "/var/wsgi/app/spell/billing/services/payment_backends/bank_transfer/pis/base.py" in render_code_page 2866. ctx = self.get_code_page_ctx(attempt) File "/var/wsgi/app/spell/billing/services/payment_backends/bank_transfer/pis/base.py" in get_code_page_ctx 2764. 'code': attempt.extra['smart_id_code'], Exception Type: KeyError at /pm/psd2/auth_code/a92760f9-2c8e-4d4b-ac84-4b035c1b1d91/e5cc41ab-db3d-4511-bf03-4b47771ce468/ Exception Value: 'smart_id_code'
Such situations can be avoided with discipline and proper test coverage.
Also, keep in mind – Python interpreter is very good at giving helpful error messages that can point you in the right direction. Debugging tools like
print() statements can also help you find and fix errors in your code.
While interpreting code can sometimes lead to unexpected errors, it also has some significant benefits, such as making it easier to write and test Python code quickly and making it easier to write code that is portable across different platforms.
I’d say that’s one of the main reasons why Python is so popular.
It makes Python a good choice for prototyping and rapid development, as you can write and test code quickly without having to go through the compile-link-execute cycle.
What Problems Can Python Be Used To Solve?
Python is a highly versatile programming language that can be applied to solve a diverse range of problems.
It is commonly used in areas such as web development, data analysis and scientific computing, machine learning, automation, game development, and desktop applications.
Here are more details about each area:
- Web development: Python has a number of powerful libraries and frameworks, such as Django, that make it easy to build and deploy web applications. (My personal fav)
- Data analysis and scientific computing: Python has a number of libraries, such as NumPy and pandas, that are designed specifically for working with large datasets and performing statistical analysis.
- Machine learning: Python has a number of powerful libraries, such as scikit-learn and TensorFlow, that make it easy to build and train machine learning models.
- Automation: Python’s simplicity and power make it a great choice for writing scripts to automate repetitive tasks. Or you can become a test automation engineer that specializes in automation with Python.
- Game development: Python is often used to build games and game engines, thanks to libraries like Pygame and Pyglet. But I wouldn’t recommend learning Python for game development. There are better programming languages for game development, for example, C++.
- Desktop applications: Python can be used to build cross-platform desktop applications, using libraries like PyQt and Kivy. Again, it’s possible to build a desktop application with Python, but I would recommend C++ or C# instead. Python has its strengths, but it’s not desktop applications or game development.
How Can Python Be Used In Daily Life?
While Python is a popular programming language that is often used by developers who already work in the industry as professional software developers, it can also be useful for professionals in software development-related fields who may not strictly develop software as part of their day-to-day job, but still write some code.
For example, if you work in quality assurance (QA), you may use Python to automate tasks like testing software or automating part of the manual tests you do.
I was a QA engineer for almost a year. This was a job I had when I was still in university and just learning about the industry.
I started in the lowest position as a manual quality assurance engineer and worked my way up to becoming a Python developer.
The way I forced myself to learn more about Python was just by automating my daily tasks.
One of the first blog posts ever written by me was about log file parsing. I was working on a project where I had to manually check log files of Skype for Business software.
I got tired of doing that and wrote a log file parser that finds would give me a summary of the results I was looking for in a log file.
You can use the same approach and expand on top of that.
To give you more ideas of what’s possible:
- Here’s another log file parsing example (with a focus on learning regex in Python). A real problem was sent to me by a blog reader and this post explains how we solved it with Python and regular expressions.
- If you’re looking for ways to automate browser actions, this post could be useful. This was my attempt to automate the process of scraping products from Amazon with Python and Selenium framework.
- Reading excel files also can be useful. Here’s a post I wrote about collecting information from dozens of CSV files, reading them with Python, and making decisions based on the collected information.
These are just some ideas of what you could do. Literally, think about what tasks you’re doing on a daily basis and it’s very likely you’d be able to automate them with Python.
What Is Python Mainly Used For In The Real World Today?
As a Python developer who has been working in the FinTech industry for the past three years, I have had the opportunity to see firsthand the many real-world use cases for Python in this field.
One of the ways in which I have used Python in my work includes building and deploying a web-based financial application.
This application, of course, consists of dozens of services, but one of the main ones, holding together the whole backend of a payment gateway platform we’re building is written in Python and Django.
On top of that, we’re also performing data analysis and statistical analysis on financial data within the Django project we have.
Also, another part of the platform we’re building is a ticket system, to let our clients handle their customer support cases.
There’s a sequence of each support ticket type that should be solved and which tickets should be prioritized.
But the trick is, it varies depending on our client’s needs.
For this purpose, we also have Python developers working on building machine-learning models.
There are many ways Python can be useful in the real world and you won’t even have the time to try them all. If you’re a challenge-seeking person like me, I know for sure, you won’t be bored with the FinTech industry.
Just to list some of the real-world uses cases in FinTech:
- Building and deploying web-based financial applications
- Performing data analysis and statistical analysis on financial data
- Building machine learning models for tasks like fraud detection and credit risk analysis
- Automating tasks like data entry and report generation
- Scraping websites for financial data and news (imagine a project that would aggregate such data)
- Building and integrating with APIs for financial services (this is a huge part of what I’m doing at my company, almost everything is integration with another bank API or financial service API on top of having our core produce)
- Developing and testing financial software
- Building and maintaining financial databases
- Creating visualizations of financial data (e.g. charts and graphs)
- Building and deploying financial mobile applications (e.g. budget tracking apps)
Is Knowing Python A Valuable Skill?
Yes, knowing Python can be a valuable skill for many different types of jobs.
As I’ve already mentioned, Python is a popular programming language that is widely used in a variety of industries, including finance, data science, web development, and more.
Just to see how valuable the Python skill is you could search for Python-related jobs on Linkedin and see the salary. Also, you’ll notice, many web development and data science-related jobs require Python.
Python is known for its simplicity and ease of use, which makes it a good choice for beginners who are just learning to program.
Here’s a screenshot from StackOverflow survey:
Python is a very powerful language with a large and active community, which means that it is constantly being developed and improved and there is a wealth of resources and libraries available for use.
Literally, when I first started to learn Python it was easy to find StackOverflow solutions where people had already figured out how to solve a particular problem in Python.
While if you’d try to do the same with other programming languages, you would not be able to find anything.
Here’s another screenshot from the StackOverflow survey, Python is one of the most valuable skills you could learn:
If you’re willing to do the research, there are a few ways to determine whether knowing Python is a valuable skill:
- Look at job listings: If you are considering a career in a field where Python is commonly used, such as data science or web development, you can look at job listings to see if Python is listed as a required or preferred skill.
- Check salary data: Websites like Glassdoor and LinkedIn can provide information on salaries for different jobs in different industries, and you can use this data to see if Python is a highly paid skill in your field.
- Check industry trends: Keep an eye on industry trends and see if Python is mentioned as a language that is in demand or on the rise. Check Google Trends for example.
- Talk to professionals in the field: Reach out to professionals in your field and ask them about the importance of Python. They may be able to provide firsthand insights into the value of knowing Python in their field.
To summarize, you could do your own research to see for yourself how valuable Python is and then just talk to someone who has been using Python for a while already.
🚨 If you do not have anyone in your social circle who’s already working professionally as a Python developer, feel free to reach out to me, you should be able to find my contact details below this post. I’m willing to discuss your situation and see if there’s any way I can help you.
Another way of understanding how valuable Python could be is by just looking at other people’s experiences.
One of my students, Yuliia got hired as a Python developer, and just seeing how many job opportunities she got in a relatively short period of time makes you think companies are desperate to hire Python developers, here’s the whole story:
Can You Be A Developer With Only Python?
Yes, it is possible to be a developer with only Python. While it is always helpful to have a diverse set of skills and be proficient in multiple programming languages, Python is a language that is used in many different areas of software development, and knowing Python can be a valuable asset for a developer.
That said, it is also worth noting that being proficient in other languages and technologies can be helpful for a developer, as it can broaden their skill set and make them more versatile.
Ultimately, whether you can be a successful developer with only Python will depend on your goals, your expertise, and the needs of the projects you are working on.
Personally, my main focus always was to learn Python and make it my primary tool as a developer.
I never wanted to learn any other programming languages, but as much as you’d like to stick with just Python, along the way you’ll pick up other skills, it’s inevitable.
If you’d want to follow my path, even if you start with just Python, you’ll pick up the following skills along the way:
- HTML and CSS: As a web developer, you will need to know how to create and style web pages using HTML and CSS.
- SQL: Django uses a database to store application data, and you will need to know how to use SQL to manage and manipulate that data. Although Django also has ORM, if you learn it, you can avoid SQL for some time. Eventually, you’ll learn to understand SQL through ORM.
- Git: Git is a version control system that is commonly used in web development, and knowing how to use it will be important for managing your code and collaborating with others. This is a must, everyone uses Git, it can be a bit confusing at first, but once you get a grasp of it, it’s easy.
- Django: In order to be a Django web developer, you will need to be proficient in using the Django web framework. This includes understanding how to build and deploy Django applications, create and use Django models, and work with Django’s templates and views.
In addition to these skills, it can also be helpful to have a strong understanding of web development concepts like HTTP, server architecture, and security.
All of the above is what I discuss with my students on weekly basis.
My Python Mentoring students are able to have a Zoom call with me personally every week and ask any burning questions they have.
It’s often that we discuss Python code students have worked on during the week.
We do live code debugging over screen sharing, I share my mindset and how I think about solving problems.
But in the end, the goal of mentorship is to get students to the point where they’re able to build their own features, get interviews, and get hired as Python developers.
THIS IS HOW YOU ACTUALLY LEARN! 🔥
You have to listen to someone who’s ahead of you.
You might think you can figure things out on your own, but there are things you DON’T KNOW YOU DON’T EVEN KNOW!
How can you figure out something you have never heard about and don’t even know exist?
Maybe your current sticking point, bottleneck is the thing you never heard about?
This is what MENTORS are for, I have mentors, my students have me, you should have a mentor too! If you don’t have one, it’s hardly unlikely you’ll become a successful Python developer by yourself.
⚠️ If you’re interested to work with me, find my contact details below. I’m willing to listen to your story and if I’ll see potential in you, we might even work together to reach your goals!
I'll help you become a Python developer!
If you're interested in learning Python and getting a job as a Python developer, send me an email to firstname.lastname@example.org and I'll see if I can help you.
I help engineers to become backend Python/Django developers so they can increase their income