Home Learn to Program By Giving Yourself Open Ended Problems to Solve

Learn to Program By Giving Yourself Open Ended Problems to Solve

BookTour.com CTO James Somers wrote recently for The Atlantic about his multi-year struggle to learn programming. When he was a teenager, he started trying to learn with a book on C++.

“I imagined myself working montage-like through the book, smoothly accruing expertise one chapter at a time,” Somers wrote. “What happened instead is that I burned out after a week.” Somers writes that he repeated this process over and over again. He thought for a while that he just didn’t have the right kind of brain for programming.

Eventually, though, he discovered Project Euler and his relationship to programming changed.

Project Euler is a series of computational problems, each building on the last. Each problem would be difficult and time consuming to solve by hand, so you need to write computer programs to solve them. It’s structured like a game – you answer one problem, and you level up to the next.

You’re only given a problem, and a text box to plug in an answer. Once you provide the correct answer to a problem, you are given access to a discussion forum based around that problem, but you’re on your own to figure out how to solve them. You can use pretty much any programming language to solve the problem. The point is just to get an answer and learn the process.

“Those books that dragged me through a series of structured principles were just bad books. I should have ignored them,” Somers wrote. “I should have just played.”

Project Euler gave Somers a set of questions, and he was able to work on solving them on his own. It’s an approach to learning math and programming that I’ve heard a lot about, and it’s a good one. Here are some other good tips for teaching yourself new skills (not necessarily programming).

I like Project Euler and its approach to teaching computer science. But I the problems solved aren’t immediately practical. Tools like Scratch (and its offspring Waterbear) make it possible to build games in only a few hours. With Google App Inventor you can make your own mobile applications. And you can quickly learn to make generative art with Processing. Project Euler is better than these at teaching computer science, but each of those projects makes the programming more immediately useful.

Has anyone seen anything that blends these approaches?

About ReadWrite’s Editorial Process

The ReadWrite Editorial policy involves closely monitoring the tech industry for major developments, new product launches, AI breakthroughs, video game releases and other newsworthy events. Editors assign relevant stories to staff writers or freelance contributors with expertise in each particular topic area. Before publication, articles go through a rigorous round of editing for accuracy, clarity, and to ensure adherence to ReadWrite's style guidelines.

Get the biggest tech headlines of the day delivered to your inbox

    By signing up, you agree to our Terms and Privacy Policy. Unsubscribe anytime.

    Tech News

    Explore the latest in tech with our Tech News. We cut through the noise for concise, relevant updates, keeping you informed about the rapidly evolving tech landscape with curated content that separates signal from noise.

    In-Depth Tech Stories

    Explore tech impact in In-Depth Stories. Narrative data journalism offers comprehensive analyses, revealing stories behind data. Understand industry trends for a deeper perspective on tech's intricate relationships with society.

    Expert Reviews

    Empower decisions with Expert Reviews, merging industry expertise and insightful analysis. Delve into tech intricacies, get the best deals, and stay ahead with our trustworthy guide to navigating the ever-changing tech market.