Opens in a new tab
13 min 59 sec
Available in:English

Python Crash Course: A Hands-On, Project-Based Introduction to Programming

A route into programming for beginners. It teaches Python's core building blocks in order, then uses them to build data visualizations, interactive maps and a Django web app you can publish online.

Table of Content

If code feels like a locked room other people work in, Python is one of the easiest doors to open. In Python Crash Course, former high school science and math teacher Eric Matthes shows that a complete beginner can go from storing one line of text to running a live website, as long as each building block arrives in the right order. The language owes its popularity to simplicity and reach. The same Python runs web development, games, data analysis and scientific computing.

Matthes’s method is practical. Learn a small set of tools well: storing data, repeating and deciding, packaging code, catching errors. Then put them straight to work on charts, maps and a web app, so every concept proves its use. What follows is that route in the order its pieces build on each other. Along the way you’ll see which projects each skill makes possible, and the first step to take the next time you open a code editor.

Getting a program to run is not the first standard Python sets for beginners. A short list of principles behind the language asks for something else, and it shapes even the smallest details of how you write numbers.

One value is easy to handle. Hundreds are not. Python gives you two very different ways to hold many things at once, and choosing the wrong one makes every later step harder.

A program that only stores data does nothing useful. Three ideas let it act, choose and respond to a person typing. One of them can also run forever if you forget a single detail.

Every program reaches a size where nobody wants to touch it, not even the person who wrote it. Two ideas keep large programs in order, and the second changes how you think about code entirely.

A missing file or a stray zero can bring down a program that worked perfectly yesterday. Matthes treats failure as normal and shows a habit that checks your code before you even finish writing it.

Numbers in a spreadsheet hide their story until someone draws them. From random walks to live data pulled off the internet, Matthes shows how the beginner’s toolkit turns messy files into interactive maps.

Building a website with user accounts, forms and a database sounds like a job for a whole team. Matthes walks one learner through it, and the hardest parts turn out to be ideas you already know.

Python Crash Course makes one promise and keeps it: the distance between a first line of code and a working website is shorter than it looks, as long as you cover it in order. A string method, a list, a loop and a function are not exercises to finish and forget. They come back inside every later project. The dictionary reappears when an API answers. The try-except block returns when a CSV file has gaps. A Django decorator turns out to be a function wrapped around another function.

That is why the projects matter as much as the lessons. Charts, maps, games and a web app are where the basics stop being abstract and become something you can actually use.

The way in is modest. Write one small program that stores a list, loops through it and makes a decision, with comments clear enough for a stranger to follow. Before you change it, write a test that says what it should do. Then use Matthes’s visualization tools on a file you already care about and draw it. His closing advice is simple: keep experimenting and keep building things.

The first variable you name tonight is already a small part of the website you will one day put online.

About this book

What is this book about?

Many people want to learn to code but don't know where to start, or they stall after a few tutorials that never become anything real. Eric Matthes, a former high school science and math teacher, takes a hands-on approach. He teaches Python one building block at a time and then puts those blocks to work in actual projects. The first half covers the foundations: variables and strings, lists and dictionaries, loops and conditions, functions and classes, plus the habits that keep code reliable, namely handling errors and writing tests. Throughout, he leans on the Zen of Python, the language's guiding principles of readability and simplicity. The second half is about building. Readers plot line graphs and random walks with Matplotlib, clean up CSV files, map geographic data and pull live data from APIs into interactive Plotly charts. Then they build a full web application with Django, with user accounts, forms, styling and deployment. The promise is concrete. A reader who has never programmed comes out with a working toolkit and a clear picture of how every later project draws on the basics learned at the start.

Book Information

Rating:

Genre:

Technology & the Future

Topics:

Data & Analytics, Skill Building

Publisher:

No Starch Press

Language:

English

Narrator:

Emily

First published:

February 25, 2015

Pages:

552

Length:

13 min 59 sec

Get the book:

Amazon

Who it's for

  • New to programming

    Complete beginners who want to learn to program by building real things.

  • Analysts and office staff

    Analysts and office workers who want to clean up data files and turn them into charts and maps.

  • Aiming for web development

    Career switchers aiming at web development who want to take a Django app from first command to live site.

Listen to Preview

About the Author

Eric Matthes

Eric Matthes taught science and math at the high school level, and he has been interested in programming since he was young. He brings both sides to his work. He combines his classroom experience with his technical skills to build educational software that is easy to use. He also turns to open-source tools to fix inefficiencies in education.

Ratings & Reviews

Ratings at a glance

3.5

Overall score based on 70 ratings.

What people think

Listeners find this Python guide offers a robust entry into basic programming, featuring setup instructions and thorough explanations that are both accurate and concise. The material is user-friendly for novices, instructing them effectively through various hands-on projects and exercises. Listeners also value the clear writing and engaging style, with one listener specifically noting how it covers scripting comprehensively.

Top reviews

Ping

This book is essentially the gold standard for anyone who wants to dive head-first into the world of programming without drowning. It works for almost every type of learner. Matthes has an incredible knack for breaking down complex syntax into digestible chunks that don't feel condescending, which is vital when you are struggling with your first script. Truth be told, I was terrified of loops and dictionaries until I sat down with this guide. The first half builds your confidence through clear setup instructions and foundational concepts that actually stick in your brain. By the time you reach the projects, you feel ready for the alien invasion game. It’s not just a textbook; it’s more like a mentor guiding you through the initial fog of learning to code in a way that feels natural and steady. While some parts of the Pygame section felt a bit rushed, the overall structure is impeccable for a newcomer.

Show more
Nitaya

The chapter on data visualization using Matplotlib was exactly what I needed to kickstart my research project involving mapping historical locations. I had struggled with documentation for weeks before finding this book's concise explanations and well-organized examples. It’s amazing how quickly you can go from 'Hello World' to plotting complex datasets or even working with APIs to fetch live data from the web. Look, the real strength here is that you aren't just memorizing commands; you're learning how a developer thinks about a project from start to finish. I particularly appreciated the instructions on setting up your environment, which is usually the biggest hurdle for newbies. There were a few moments in the Django section where I felt I was just copying code without a full grasp of the 'why,' but it still provided a solid foundation. This book is a fantastic starting point.

Show more
Chloe

Picked this up after getting frustrated with online tutorials that skip over the essential basics of Python syntax. Matthes does a fantastic job of walking you through everything. He ensures you don't get lost in the weeds while setting up your environment or writing your first few scripts. However, the exercises in the back half of the book are where things started to feel a bit thin for me because they don't really challenge your logical thinking. Often, the author introduces a third-party package and asks you to implement it without explaining what each line of the library is actually doing. It’s a bit like being given a recipe where half the ingredients are pre-mixed. You get the result, but you don't necessarily learn the flavor profile. Still, for a total beginner, it's a solid experience because it keeps the momentum going through the difficult parts.

Show more
Pichaya

Wow, what a difference a well-structured book makes compared to scouring random YouTube videos and outdated blog posts. This guide is incredibly readable and clear. It makes the daunting task of learning a new language feel like a series of manageable victories for once. I loved the Space Invaders project specifically because it turned abstract logic into something visual and interactive immediately. To be fair, if you already have a computer science background, you might find the pace a little sluggish in the first hundred pages. But for the rest of us, the hand-holding is exactly what’s required to build a lasting foundation in programming. The way it covers everything from basic lists to complex web apps is truly impressive for a 'crash course' that actually delivers on its name. I am finally starting to feel like a real programmer.

Show more
Hang

After hearing so much buzz about this versus Head First Python, I decided to give Matthes a shot for my first foray into scripting. It’s a clear winner in terms of organization and the logical flow of topics, making it nearly impossible for a newcomer to get lost. The hands-on projects are the real meat of the book. They allow you to see how different libraries interact in a real-world scenario. In my experience, the Pygame section was the highlight, even if I don't plan on becoming a game developer. It just helps you understand object-oriented programming in a way that dry exercises never could. My only gripe is that the problem sets can feel a bit 'paint-by-numbers' rather than requiring true creative problem-solving or deep thinking. It’s a minor flaw in an otherwise stellar guide that I would recommend to anyone.

Show more
Watchara

Finally got around to finishing this, and I can say it's probably the most enjoyable technical book I've ever owned. The author has a way of explaining the standard library that makes it feel like you're discovering secret powers rather than studying for a boring exam. I particularly enjoyed the section on web applications because it demystifies how the backend of a professional site actually functions. Frankly, the balance between theory and practice is nearly perfect, though I do agree with others that the exercises could be a bit more challenging. It’s a great book for absolute beginners who need their hands held through the initial setup and basic scripting. If you are looking for a way to jumpstart your coding journey, this is the one. You will definitely feel a sense of accomplishment by the end.

Show more
Suthinee

As a seasoned professional in another field looking to automate some tasks, I found the project-based approach here refreshing and effective. Most coding books focus entirely on dry theory. This one bridges the gap by showing you how to build something functional almost immediately. The web application portion using Django was eye-opening, especially in terms of how it structures a professional-looking site. Personally, I think the exercises in the earlier chapters could have been more demanding to really test our logic. They felt quite repetitive at times. You're mostly just swapping out list values rather than making you think through a new problem. Regardless, the clarity of the writing and the accuracy of the code examples make it a top-tier resource for self-taught learners who need to see results quickly to stay motivated.

Show more
Lucas

Ever wonder if those 'beginner-friendly' coding books actually live up to the hype? This one definitely does, providing a solid introduction that feels both professional and accessible at the same time. I spent my weekends working through the API section, and I was genuinely surprised at how quickly I could visualize data from various platforms. The writing style is clean and avoids unnecessary jargon, which kept me engaged through some of the more technical chapters. Gotta say, I wish there was more depth in the Django section, as it feels like you're only scratching the surface of web development. Nevertheless, it served as a perfect springboard for my current career transition into data analysis and scripting. It’s a must-have for your technical library if you are starting from zero. You will learn the basics very effectively here.

Show more
June

Looking at the landscape of Python resources, this book stands out for its clarity and the high quality of its project-based curriculum. I am currently training to be an instructor. I found the progression of topics to be incredibly logical for a student's learning curve because it doesn't overwhelm them with technical jargon before they understand the basics. The emphasis on real-world practice through Django and Matplotlib ensures that the reader stays motivated and sees the value in what they are learning. To be honest, some of the code for the projects felt a little dated or overly simplified, but that’s the trade-off for making it accessible to everyone. It is an all-round excellent introduction that I will certainly be recommending to my own students in the future. It’s engaging, informative, and provides the exact springboard needed for a career. You won't regret buying this guide.

Show more
Noo

Not what I expected given the glowing reviews, and frankly, I found the second half of the book to be quite disappointing for a serious student. My biggest issue is that while it claims to be a 'crash course,' it often feels like you are just transcribing code from the page. It is a chore. Not gonna lie, I finished the data visualization project and realized I couldn't recreate any of it without looking back at the text for every single line. The reliance on third-party packages without deep explanation means you're learning how to use those specific tools rather than learning the logic of Python itself. It’s fine for a quick introduction, but it lacks the intellectual rigor I was hoping for in a technical manual. If you want to feel like a coder quickly, buy it, but don't expect to actually understand the language deeply. I honestly expected better.

Show more
Show all reviews

Questions about this book

Eric Matthes teaches Python from the beginning and then applies it to real projects. The first part covers variables, strings, lists, dictionaries, loops, conditions, functions, classes, error handling and testing. The second part uses those tools to build data visualizations with Matplotlib and Plotly, to process CSV and GeoJSON files, to pull data from APIs, and to create a full web application with Django that can be deployed online.

Yes. It assumes no prior programming. Matthes starts with how to store text and numbers and introduces each new concept only once the earlier ones are in place. His teaching background shows in the pacing. He also leans on the Zen of Python, the language’s principles of readability and simplicity, so beginners learn from the start to write code that others can follow.

Readers create line graphs and scatter plots with Matplotlib, simulate and plot random walks, process CSV files, draw interactive maps from GeoJSON data with Plotly Express, and chart live data fetched from APIs. The largest project is a Django web application with a database, an admin site, forms, user accounts with restricted pages, Bootstrap styling, and deployment through a hosting service such as Platform.sh. The book also touches on game development.

Matthes introduces test-driven development, an approach in which the test comes first and the code it checks comes after. With the unittest module in Python, you can write test cases for functions and classes and run them. Assertions confirm that the code produces the expected results, and fixtures keep groups of tests organized and quick to run. He presents testing as a time saver, because bugs caught early take far less effort to fix.

Start small. Write a short program that stores a list, loops through it and makes a decision with an if statement, and add comments explaining each step. Then write one test for a function before you change it. After that, take a CSV file from your own work and plot it with Matplotlib, using try-except blocks to handle missing or incorrect values.

AUDIO SUMMARY AVAILABLE

Listen to Python Crash Course in 15 minutes

Get the key ideas from Python Crash Course by Eric Matthes, plus 5,000+ more nonfiction titles.

  • 5,000+ titles
  • Listen as much as you want
  • 7-day free trial
  • Cancel anytime

Python Crash Course

Preview · Full summary 13 min 59 sec
Home

Discover

Open app

Log in