Python is a high-level, general-purpose programming language designed by Guido van Rossum and released in 1991. Today, it's one of the most popular programming languages in the world. The main reasons for its popularity are Python's intuitive syntax and a rich ecosystem of libraries that make it a good fit for both beginners and professional developers.
Python excels at task automation, data science, and web development. But it can be used in almost any domain. As the saying goes, "Python is the second best language for everything".
Python follows a traditional lineage of C-like languages. It stands out in that it reads more like English: whitespace indentation is used instead of curly brackets to delimit blocks and the number of syntactic elements is kept at minimum. It's an interpreted, dynamically-typed language with automatic garbage collection like other scripting languages such as JavaScript, Ruby, and PHP. It supports multiple programming paradigms with full-fledged OOP and basic functional programming capabilities.
CPython is the Python reference implementation, the interpreter that you download from python.org. While there are other implementations like MicroPython and PyPy, CPython runs most of the Python code out there. Python has no specification – the language is defined by what CPython does. That's why CPython is called a reference implementation.
Links: python.org, CPython on GitHub, Python (Wikipedia), r/Python, r/learnpython, Awesome Python.
Related topics: Django.
Here's 9 amazing resources to learn Python:
-
Python documentation (docs.python.org)
free • resource • 2023
The Tutorial lets you pick up Python quickly if you've been programming in other languages. The Language Reference describes Python in more structured and complete way. The Library Reference not only describes standard library modules but also builtins such as functions and data types.
-
Think Python, 2nd edition (greenteapress.com)
free • book • by Allen B. Downey • 2016
This book is a great, concise introduction to Python and programming in general. In less than 300 pages, it covers enough of Python's constructs and concepts to start writing useful programs. Most importantly, it teaches you problem-solving skills and how to think like a computer scientist. The book features good exercises and guidance to make learning fun and knowledge lasting. Additionally, the author, Allen B. Downey, wrote an entire collection of excellent free books, including Think Java.
-
Automate the Boring Stuff with Python (automatetheboringstuff.com)
free • book • by Al Sweigart • 2019
This is an excellent practice-oriented Python book suitable for both absolute beginners and more experienced programmers. Besides teaching the basics of programming, it shows you how to apply them in practice: write text-based games, scrape websites, work with spreadsheets, PDFs, docs, and more. If you want to learn how to write useful Python programs as soon as possible, this is the book for you.
-
Python Distilled (www.dabeaz.com)
paid • book • by David Beazley • 2021
This book is the best way to pick up Python for experienced programmers coming from other languages. It'll save your time like nothing else. David Beazley masterly distils the core of Python that you need to know to become productive in the language quickly and write good Pythonic code.
-
Fluent Python, 2nd Edition (www.oreilly.com)
paid • book • by Luciano Ramalho • 2022
This is the book for practicing Python programmers who want to master the language. You'll see that there is much more to Python than covered in introductory materials. And you'll learn how to use Python's advanced features to make your code more clear, concise, and efficient.
-
Python behind the scenes (tenthousandmeters.com)
free • article • series • by Victor Skvortsov • 2021
This series of blog posts explores how Python is implemented. You'll learn about the CPython compiler, the CPython VM, the implementation of built-in types, async/await, the GIL, and much more.
-
CPython Internals: Your Guide to the Python 3 Interpreter (realpython.com)
paid • book • by Anthony Shaw • 2021
This book will familiarize you with the CPython source code to the point where you'll be able to modify and extend the language. If you want to start contributing to CPython, this is a great place to start.
-
Full Stack Python (www.fullstackpython.com)
free • book • by Matt Makai • 2023
This book covers everything you need to know to create, deploy, and operate Python-powered web applications: Python itself, relational and NoSQL databases, frameworks, frontend development, web servers, monitoring tools, and so on. It does not delve into every topic in depth, but instead provides a list of excellent resources to further explore each topic.
-
Awesome Python (github.com)
free • resource • by Vinta Chen • 2023
A curated list of awesome Python frameworks, libraries, software, and resources.