If you want to learn to code, it’s important to start building a conceptual framework so you can effectively communicate with developers. The book I recommended in that blog post, Simple Program Design, is a great start and will give you the basic tools you need to get going. You can go through the entire book and all the exercises relatively quickly. Most people that are interested in learning to code want to dive in and make something work, and the goal of building a conceptual framework is to make sure you know how to swim first.

But Simple Program Design isn’t very heavy on computer science. You don’t need to be a computer scientist to learn to code but a basic understanding of some computer science concepts will make your life easier. It strengthens the foundation of the conceptual framework and gives you more ways to communicate with technical people and resources.

Another fantastic book for learning how to code is How to Design Programs from MIT Press. This book is designed to be the foundation of a first-year intro to programming class and is a great place to start. Like Simple Program Design, it favors design principles over specifics and tries to avoid complex application domains. It emphasizes analyzing problems, breaking them down into smaller problems, and building data structures and examples that solve those problems. But there is also more time spent on data structures and more computer science-y things, and that knowledge will definitely come in handy. You can read how the book was designed (PDF) and why the authors structured it as they did. They’re smart folks.

When it comes time to write code, How to Design Programs will have you writing a little bit of scheme as opposed to the pseudocode in Simple Program Design. Haven’t heard of scheme? Not sure why you’d want to learn it? Don’t worry, the language isn’t the point, and the things you learn from writing scheme will still apply when you move to something else. How to Design Programs also comes with a specially designed development environment that is tailored for beginners and runs these programs, so you won’t be spending time trying to get things up and running.

If you’re up for the challenge, give one of these books a shot. Better yet, see if you can get a group of people together and work through the curriculum together. It’s more fun that way, and it’s nice to have a sounding board when you get stuck or have ideas.

Brandon West
As Director of Developer Relations for SendGrid, Brandon's focus is on empowering developers to build things, gathering feedback for new features and improvements, and fostering a cooperative developer community for anything that needs email integration.