If you want to learn a programming language then you could do a lot worse than Python.
The versatile language is not only used in a wide range of roles–ranging from web developers to sysadmins/devops–but also in highly-paid data science jobs.
Programming Q&A hub Stack Overflow declared Python was the fastest-growing programming language, based on the sharp rise in interest in Python-related questions.
But where to get started if you want to learn Python? Thankfully there’s a wealth of free resources out there, including books, sites, videos, and even courses.
SEE: Python is eating the world: How one developer’s side project became the hottest programming language on the planet (cover story PDF) (TechRepublic)
Books
Think Python – This book breaks uses everyday English to break the fundamentals of the language into easy-to-digest chunks.
A Byte of Python – This clear guide makes learning the basics of Python a breeze.
Automate the Boring Stuff with Python – Easy to read, this guide for beginners takes a lot of the pain out of learning a new language.
Invent With Python – Walks you through building various apps with Python, assuming no knowledge. While the layout could be better, the content seems good.
Python Practice Book – Another concise guide walkthrough of the fundamentals of Python with plenty of code examples.
How to think like a computer scientist: Learning with Python – Once you’re familiar with the basics, this book will walk you through the more advanced concepts and the language’s theoretical underpinnings.
The Hitchhiker’s Guide to Python: Suited to both new and experienced Python developers, this book will walk you through setting up the language on a computer, the fundamentals, and popular software libraries and tools.
The Django Book – Aimed at those with a working knowledge of Python, this book will teach you everything you need to know about the web framework Django, and has recently been updated to a second edition.
A Python Book: Beginning Python, Advanced Python, and Python Exercises – This overview of Python, with examples, could be useful as a reference book.
Python Programming – A Wikibook that provides an outline of the language.
Non-Programmer’s Tutorial for Python – Another Wikibook that walks you through the basics of the language alongside sample programs.
Whirlwind Tour of Python: Aimed at existing developers unfamiliar with Python who want to use the language for data science and scientific programming, this book and code examples cover Python fundamentals.
Courses / tutorials
LearnPython.org’s interactive tutorials – A series of simple tutorials to provide a gentle introduction to the language.
The Python Tutorial – The official introduction to the language offers more detailed walkthroughs of a wider range of Python fundamentals.
Introduction to Computer Science and Programming Using Python – This series of MIT lectures offered by edX is designed to ease in those unfamiliar with programming.
Learn x in y minutes: If you like to learn by example, this could be what you’re looking for. Packed with code, Learn x in y minutes demonstrates actual Python code for everything from common math operations to manipulating dictionaries.
Introduction to Computer Science – This free introductory course from Udacity teaches you by having you build web apps.
Google’s Python Class – Google’s free class aimed at people with minimal programming experience.
Pygame official tutorials – Making games is a fun way to learn, as demonstrated by these tutorials for the pygame software library.
Codeacademy – Various free lessons that teaches the basics of Python via interactive questions, with optional paid extras.
Solo Learn Python 3 tutorial: Aimed at beginners, this allows you to work through a series of practice questions, tests and quizzes.
Code Challenges for Python: Once you’ve got the fundamentals of Python under your belt, you might fancy a more robust challenge — such as these exercises that task you with everything from building a URL shortener to creating a pomodoro timer.
Practical Deep Learning for Coders, v3: For those who fancy using their Python skills to specialize in the growing field of machine learning, check out fast.ai’s well-regarded Practical Deep Learning for Coders v3 course, which is aimed at those who have been coding in Python for at least one year.
SEE: Job description: Java developer (Tech Pro Research)
Videos
Learn Python in One Video – The title may be a bit optimistic but YouTuber Derek Banas takes his time to explain concepts clearly by walking through a range of simple programs.
Python tutorials on thenewboston – Approachable and easy-to-understand YouTube series walking through the language basics.
Intermediate Python Programming – YouTuber sentdex talks you through how to do more with Python.
SEE: Want to learn programming? This startup pays you cryptocurrency to study Python (ZDNet)
Websites
Stack Overflow – As with every language, the crowd-sourced Q&A site Stack Overflow provides a wealth of answers and code examples for Python.
Programiz.com – Learn Python Programming – An easily digestible guide to how to get started with Python, with plenty of code examples.
Instant Python – A bare-bones, crash-course introduction to Python.
Learn Python in 10 minutes – Not really, but it will give you a whistle-stop tour of the language with code examples.
Python Tutorials – This guide walks you through the basics of the language, as well as demonstrating some of its uses.
Full Stack Python – This curated list of guides and tutorials aims to answer any Python-related web development question you might have.
Python on TutorialsPoint – Clearly written overview of the language with code examples and diagrams.

Image: scyther5, Getty Images/iStockphoto