Think Python: A book that helped me build strong fundamentals of Python
Tags: python, programming, beginners
Published: 2023-03-09 18:05:56

If you are a complete beginner aiming to learn Python, or you have some programming experience in Python and/or other programming languages but want to master the fundamentals deeply, then give this book a try.

In this post, I am going to share how the book really helped me to understand the fundamentals of Python and programming concepts in general from scratch.

## Why Think Python?

In programming, it is well known that understanding the fundamentals of the language you want to learn is the crucial first step of the career. Once you master and practice the fundamentals very well, you can do the following at ease.

- learning advanced concepts
- learning frameworks and tools of the language
- understanding other people’s code (especially from Stack Overflow 😅)
- working on more complex projects
- debugging your program
- even switching to other languages

## Here is why I find this book to be really important (at least for me)

The author explains fundamental programming concepts easily with interesting real-world examples. The book is organized in a way enabling you to comprehend advanced concepts at each step slowly by mastering the simpler ones.


As it says in the title, it makes you think like a computer scientist by changing your way of thinking about programming. The book is full of programming concepts explained in beginner-friendly and interesting ways. It doesn’t merely teach you about Python syntax, but about Python programming and how to use it in solving real-world problems.


The book has a section called Debugging at the end of each chapter where you will learn how to acquire debugging skills and easily debug your programs. Bugs are inevitable in programming, so unless you learn how to easily fix them, you may find it difficult to go further in programming, and even start to hate coding. Debugging is a must-have skill and the book teaches you this crucial skill practically step by step.


Last but not least, the book has excellent exercises at the end of each chapter that asks you to practice what you learned in that chapter and previous chapters. They challenge you to think creatively like a programmer and help you sharpen your programming as well as problem-solving skills.
How to read it?


There is a famous quote saying (I don’t exactly remember the author)

> I hear and I forget. I see and I remember. I do and I understand.

Everyone agrees the quote applies to programming very well. The best way of learning programming is by doing it. So it is really important to do (or at least try) the exercises at the end of each chapter on your own. 

Once you have done or tried, you can take a look at the solutions of the author. When you take a look at the solutions, study how the author approaches the problem and how he expresses the solution in code.

You can download the book in PDF format here: [Download](http://greenteapress.com/thinkpython2/thinkpython2.pdf)

You can find solutions to exercises here: [Solutions](https://github.com/AllenDowney/ThinkPython2/tree/master/code)

This book really helped me to understand Python and programming very well, so sharing in case it helps someone out there :)

If you have any thoughts, let me know in the comment below.

Happy learning!