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