Python is a popular, easy to learn programming language that is great option for beginners. There are a ton of good resources available online to get you started in learning Python programming. Because of this, It can be difficult for someone new to Python to know where to start or what books or courses to take in order to learn Python. In this article, I review 8 of the best resources for beginners. I have not been paid to talk about any of these products, the books and websites listed below are books that I have read and highly recommend to new developers.
Automate the boring stuff with Python
First up is Automate the boring stuff with Python by Al Sweigart. Al’s book is not a typical programming book targeted at software developers. Instead, this book is meant for anyone who uses a computer and wants to automate common tasks.The first 9 chapters of Automate the boring stuff are dedicated to introducing programming basics like variables, functions, strings and lists.
The rest of the book dives into how to use Python for practical purposes such as filling out Online forms, downloading files from websites automatically, working with spreadsheets, PDF and Word documents and checking and responding to email. What I like about this book is that it does not cover complex topics that may not be necessary to build useful applications. This makes the Automate book ideal for non-programmers who may need to write quick computer programs that get stuff done.
Topics you should not expect to find here include Object Oriented Development, generators, lambdas and list comprehension. At the end of each chapter is a short project or exercise on how to solve a real world problem. This examples and code in the book are easy to follow along and there’s an appendix that explains some of the tricky bits in detail. This book is ideal for someone who just wants to get their hands dirty to build useful applications without going into complex topics.
Automate the boring stuff with Python is available online for free at https://automatetheboringstuff.com/ .
Learn Python the hard way by Zed Shaw
Don’t let the title of the book scare you, this is one of the best introductory texts on the Python programming language. Learn Python the hard way is well written and designed for new developers who have little or no programming experience. The book is divided into a short exercises. Each exercise teaches one thing at a time and the programming concepts are introduced gradually. Learn Python the Hard Way may seem a little slow or shallow to someone who is already familiar with programming but this book is designed with a complete beginner in mind.
The author stresses that learning Python the “hard way” is actually the easy way. Learning a new skill is difficult and takes time and lots of practice. The book teaches that you cannot program without typing code in and seeing how it works. Readers are encouraged to type out each and every line of code in the book. That is the “hard” part of learning Python. The book also contains advice on how to structure projects, write tests for programs and general career advice.
The Real Python Course
The RealPython is a paid course that teaches programming and Web Development in a hands on approach. The first book in the course or series teaches basic Python syntax like functions, conditional logic and data structures. The last part of the book teaches how to apply those skills when working with files, SQL databases, data visualisation and how to interact with the web.
The complete course is made up of three books and is packed with exercises, sample files, assignments, and bonus videos. The first book is a language primer and the other two books focus on teaching modern web development using Python and related technologies like Flask, Web2py, Django, Bootstrap and Angular JS.
The third book in the Real Python course is a book for intermediate developers and it covers best practices, testing, tooling, deployment and profiling, version control and everything else you need to know to produce and deploy a complete site. I haven’t gotten around to reading this book, but if the first two books are anything to go by, then I know it is good.
The Real Python book series costs $60 and it is TOTALLY worth it. If you’re going to buy one Python course, this is the course to buy. The money I spent on this course is the best $60 I ever spent.
Python 101 by Michael Driscoll
Michael Driscoll runs a Python blog at http://www.blog.pythonlibrary.org/ and has authored a couple of Python books.
The author says that the book is for beginners but in my opinion, I think this book is better suited to beginners who have some programming experience or intermediate Python developers.
Mike’s writing style is short and to the point. The chapters in the book focus on only one topic at a time and are independent of each other so there is generally no need to read them in the order they are presented. Driscoll gets to the point quickly which may make it hard for some readers to follow along. This isn’t the kind of book that holds your hand through the basics but instead, it is presented in matter-of-factly. The first part of the book introduces the Python language and basic syntax and then the rest of the book goes on to cover intermediate topics such as logging, decorators, the standard library and how to create executable packages.
The book is available on Gumroad and Leanpub for $6.99 and can also be read for free online. I use this book a lot as a reference and I recommend it to anyone who isn’t a complete beginner to programming.
Google Python Class
The Google Python class is the class used within Google to introduce developers to Python. It is targeted at people with some familiarity with programming. The course does not introduce basic programming concepts but instead dives in to string manipulation, lists, dictionaries files and standard library utilities. I like that the course teaches the very things that make Python, Python. The class is free and it contains written materials, lecture videos and challenging code exercises. The exercises are great for cementing concepts like string handling, list manipulation and regular expressions.
Codingbat.com – A collection of Java and Python problems
Nick Parlante, the Google Python Class instructor runs this website. Coding Bat is a collection of Java and Python problems that will help you to practice strings, loops, lists booleans and conditional logic.
If you like solving problems, then visit practicepython.org a site by Michele Pratusevich The website has over 30 beginner Python exercises that come with a small discussion of a topic and a link to the solution. New exercises are posted monthly.
I saved the best all-round resource for last. Dan Bader runs http://dbader.org/ . Dan’s site is designed to help Python developers take their coding skills to the next level through tutorials, videos, books, articles and courses. Dan is a great guy, he’s my friend and mentor and his website content is fantastic. I am not saying this because I know the guy, I have gained a lot from his content and the quality of my code has improved ever since I started reading his articles. I encourage anyone not familiar with his work to check it out and see for yourselves.
Dan’s site is a one stop shop for everything related to Python programming. Going through the site you’ll find
- Career advice including how to speak at conferences, contribute to Open Source projects, setup a portfolio, run a programming blog and general advice that is distilled from his many years of experience in software development.
- Videos and Screencasts Dan’s videos answer common questions about software development. The videos are clear and concise and he even does code reviews.
- Articles and tutorials. These cover basic python concepts all the way up to advanced stuff in an easy to follow manner. The articles don’t contain any difficult to understand, white-paper-like computer-sciency jargon but instead they are written in a clear and casual format that includes code samples and examples.
- Courses. Dan offers email and video courses on Object Oriented programming, Dependency Management and a courses on how to improve productivity.
- Pythonista Cafe is an online community of Python and software development enthusiasts helping each other succeed and grow. This is a private online community that understands you and the skills and career you’re building and what you’re trying to achieve. If you’re trying to grow your Python skills but haven’t found the support system you need, check out Pythonista Cafe.
I joined Pythonista Cafe a few weeks ago and I have learned a lot from Dan and the other community members. Right now, they are helping me build an Open Source project I have been working on. I am probably the weakest developer in the group, but that is okay because I’m never made to feel that way or told to “RTFM” when I post questions.
What resources do you recommend? Feel free to add a comment below. Thanks for reading.