Python is literally eating the programming world. It is growing in popularity and usage in ways that are pretty much unprecedented in the history of computers.
There is a huge variety of scenarios that Python excels in. Shell scripting, task automation, Web development are just some basic examples.
Python is the language of choice for data analysis and machine learning, but it can also adapt to create games and work with embedded devices.
Most importantly, it's the language of choice for introductory computer science courses in universities all around the world.
Many students learn Python as their first programming language. Many are learning it right now, many will learn it in the future. And for many of them, Python will be the only programming language they need.
Thanks to this unique position, Python is likely going to grow even more in the future.
The language is simple, expressive, and it's quite straightforward.
The ecosystem is huge. There seems to be a library for everything you can imagine.
Python is a high-level programming language suitable for beginners thanks to its intuitive syntax, its huge community and vibrant ecosystem.
It is also appreciated by professionals across many different fields.
Technically speaking it is an interpreted language that does not have an intermediate compilation phase like a compiled language, for example C or Java.
And like many interpreted languages, it is dynamically typed, which means that you do not have to indicate the types of the variables you use, and variables are not tied to a specific type.
This has pros and cons. In particular we can mention that you write programs faster, but on the other hand you have less help from the tools to prevent possible bugs and you will find out about some kinds of issues only by executing the program at runtime.
Python supports a wide variety of different programming paradigms, including procedural programming, object oriented programming and functional programming. It's flexible enough to adapt to a lot of different needs.
Created in 1991 by Guido van Rossum, it's been rising in popularity - especially in the past 5 years, as this Google Trends infographic shows:
Starting with Python is very easy. All you need is to install the official package from python.org, for Windows, macOS or Linux, and you're ready to go.
If you are new to programming, in the following posts I will guide you to go from zero to becoming a Python programmer.
And even if you are currently a programmer specialized into another language, Python is a language worth knowing because I think we're just at the start.
Lower level languages like C++ and Rust might be great for expert programmers, but daunting to begin, and they take a long time to master. Python, on the other hand, is a programming language for programmers, of course, but also for the non-programmers. The students, the people doing their day job with Excel, the scientists.
The language everyone interested in coding should learn first.
Starting with this post, I want to make a new series dedicated to the Python programming language.
- [x] Installing Python on macOS
- [x] Running Python programs
- [x] Python 2 vs Python 3
- [x] The basics of working with Python
- [x] Data Types
- [x] Operators
- [x] Strings
- [x] Booleans
- [x] Working with Numbers
- [x] Accepting Input
- [x] Control statements
- [x] Lists
- [x] Tuples
- [x] Dictionaries
- [x] Sets
- [x] Functions
- [x] Objects
- [x] Loops
- [x] Defining new objects using classes
- [x] Modules
- [x] The Standard Library
- [x] Debugging
- [x] Variables scope
- [x] Accept arguments from command line
- [x] Lambda functions
- [x] Recursion
- [x] Nested functions
- [x] Closures
- [x] Decorators
- [x] Docstrings
- [x] Introspection
- [x] Annotations
- [x] List files in a directory
- [x] Get the details of a file
- [x] Exceptions
- [x] Check if a file or directory exists
- [x] Create an empty file
- [x] Create a directory
- [x] Write to a file
- [x] Read the content of a file
- [x] The
- [x] Create a network request
- [x] Create a Web (HTTP) server
- [x] Create a TCP server
- [x] Installing 3rd party packages
- [x] Regular Expressions
- [x] List comprehensions
- [x] GUI programming with Tkinter
- [x] Polymorphism
- [x] Operator overloading
- [x] Intro to multithreading
- [x] map
- [x] reduce
- [x] filter
- ...and more coming soon!