Next Steps

You're not a programmer quite yet. I like to think of this book as giving you your "programming black belt." You know enough to start another book on programming and handle it just fine. This book should have given you the mental tools and attitude you need to go through most Python books and actually learn something. It might even make it easy.

I recommend you check out some of these projects and try to build something with them:

  • Learn Ruby The Hard Way You will learn even more about programming as you learn more programming languages, so try learning Ruby too.
  • The Django Tutorial and try to build a web application with the Django Web Framework.
  • SciPy if you're into science, math, and engineering.
  • PyGame and see if you can make a game with graphics and sound.
  • Pandas for doing data manipulation and analysis.
  • Natural Language Tool Kit for analyzing written text and writing things like spam filters and chat bots. TensorFlow for machine learning and visualization.
  • Requests to learn the client side of HTTP and the web.
  • ScraPy and try scraping some web sites to get information off them.
  • Kivy for doing user interfaces on desktops and mobile platforms.
  • Learn C The Hard Way after you're familiar with Python and try learning C and algorithms with my other book. Take it slow; C is different but a very good thing to learn.

Pick one of the preceding resources, and go through any tutorials and documentation they have. As you go through documentation with code in it, type in all of the code and make it work. That's how I do it. That's how every programmer does it. Reading programming documentation is not enough to learn it; you have to do it. After you get through the tutorial and any other documentation they have, make something. Anything will do, even something someone else has already written. Just make something.

Just understand anything you write will probably suck. That's alright though I suck at every programming language I first start using. Nobody writes pure perfect gold when they're a beginner, and anyone who tells you they did is a huge liar.

How to Learn Any Programming Language

I'm going to teach you how to learn most of the programming languages you may want to learn in the future. The organization of this book is based on how I and many other programmers learn new languages. The process that I usually follow is:

  1. Get a book or some introductory text about the language.
  2. Go through the book and type in all of the code making all of it run.
  3. Read the book as you work on the code, taking notes.
  4. Use the language to implement a small set of programs you are familiar with in another language.
  5. Read other people's code in the language, and try to copy their patterns.

In this book, I forced you to go through this process very slowly and in small chunks. Other books aren't organized the same way, and this means you have to extrapolate how I've made you do this to how their content is organized. Best way to do this is to read the book lightly and make a list of all the major code sections. Turn this list into a set of exercises based on the chapters, and then simply do them in order one at a time.

The preceding process also works for new technologies, assuming they have books you can read. For anything without books, you do the above process but use online documentation or source code as your initial introduction.

Each new language you learn makes you a better programmer, and as you learn more they become easier to learn. By your third or fourth language you should be able to pick up similar languages in a week, with stranger languages taking longer. Now that you know Python you could potentially learn Ruby and JavaScript fairly quickly by comparison. This is simply because many languages share similar concepts, and once you learn the concepts in one language they work in others.

The final thing to remember about learning a new language is this: Don't be a stupid tourist. A stupid tourist is someone who goes to another country and then complains that the food isn't like the food at home. "Why can't I get a good burger in this stupid country!?" When you're learning a new language, assume that what it does isn't stupid, it's just different, and embrace it so you can learn it.

After you learn a language though, don't be a slave to that language's way of doing things. Sometimes the people who use a language actually do some very idiotic things for no other reason than "that's how we've always done it." If you like your style better and you know how everyone else does it, then feel free to break their rules if it improves things.

I really enjoy learning new programming languages. I think of myself as a "programmer anthropologist" and think of them as little insights about the group of programmers who use them. I'm learning a language they all use to talk to each other through computers, and I find this fascinating. Then again I'm kind of a weird guy, so just learn programming languages because you want to.

Enjoy! This is really fun stuff.

Buy Learn Python the Hard Way, 5th Edition

When you buy Learn Python the Hard Way, 5th Edition directly from the author, Zed A. Shaw, you'll get access to the digital content for all 60 exercises, plus all 60+ videos that are normally sold separately. You'll also have access to direct help from Zed via Discord chat and live streams on special topics when I have time.

$29

Buy Learn Python The Hard Way, 5th Edition

Learn JavaScript the Hard Way

If you want to learn to be a Web Developer then my new Learn JavaScript the Hard Way course is a great choice. It's currently out as an Early Access release and already has more content than the Python Course, with even more content coming at a 80% discount from the final price.

Buy Learn JavaScript the Hard Way