Created by Guido van Rossum Python was first released in 1991. Guido worked at Google, where he spent half of his time developing the Python language.
An interpreted high-level programming language for general-purpose programming:
- Interpreted is a type of programming language for which most of its implementations execute instructions directly and freely, without previously compiling a program into machine-language instructions.
- High-level programming language is a programming language with strong abstraction from the details of the computer. In comparison to low-level programming languages, it may use natural language elements, be easier to use, or may automate or even hide entirely significant areas of computing systems such as memory management. Making the process of developing a program simple.
- General-purpose means broadly applicable across domains. Such programming languages dosn’t have specialized features for a particular domain. This is in contrast to a domain-specific language (DSL), for example R, which is specialized to Statistics and Research domain.
Python has a design philosophy that emphasizes code readability - the ease with which a human reader can comprehend the purpose and operation of source code.
A dynamic type system and automatic memory management. It supports multiple programming paradigms, including object-oriented, imperative, functional and procedural, and has a large and comprehensive standard library:
- Dynamic type checking is the process of verifying the type safety of a program at runtime. Implementations of dynamically type-checked languages generally associate each runtime object with a type tag (a reference to a type) containing its type information.
- Object-oriented programming (OOP) is a programming paradigm based on the concept of objects, which may contain data, in the form of fields, often known as attributes; and code, in the form of procedures, often known as methods.
- Functional programming is a programming paradigm of building the structure and elements of computer programs that treats computation as the evaluation of functions and avoids changing-state (side-effects) and mutable data.
- Imperative programming focuses on describing how a program operates. The term is often used in contrast to declarative programming, which focuses on what the program should accomplish without specifying how the program should achieve the result.
Resources below were personal tested and a few of them are still in my continious learning collection. Enjoy!
- Bite of Python is the best beginner’s tutorial for the Python language I have seen.
- How to Think like a Computer Scientist is simply must read.
- Python for You and Me is an approachable book with sections for Python syntax and the major language constructs.
Articles and newsletters
- Python Crash Course is an overview of the history of Python, what drives the programming community and dives into example code.
- Python Tips, Tricks and Hacks is a collection of tricks from Quora users.
- Python Tricks Newsletter is a great newsletter, worth subscribing to.
- Quality Python code is a good read to begin learning about development environments, application dependencies and project structure.
- Python Patterns explains intuition behind design patterns and provides examples in Python.
- Collection of good reads is a great collection of advice for developers coming to Python from another programming language ecosystem such as Java.