One thing I’m constantly asked by aspiring programmers is: What incentive do you need when you want to learn to program? A lot of them have started and stopped. They’ve never been able string together enough time to make real progress. There are amazing resources out there — Treehouse is one of my preferred — but tutorials alone won’t get most people over the hump. You need an idea that you want to build to ground your learning. When I started learning to program in February 2012, I had the idea for Uncover and that was the only way I got through it.
Why do I need an idea?
The main reason you need an idea when learning to program is that learning just to learn is boring for most of us. Of course, you should learn to program to be able to become fluent in the language and underpinnings of technology; but we learn best when we have personal goals that we’re pushing ourselves to reach. In high school and college, we learned to pass tests, to do well in school, and to get a good job. Learning to program outside of school is a different challenge. You need to set your own goals.
When you’re stuck with a problem in a tutorial and keep failing to figure it out, the motivation of knowing that you’ll need to be able to solve it to be able to implement your app will get you through it. Without that, the frustration of temporary failure will deplete your good intentions, you’ll get frustrated, and you’ll give up.
What kind of idea do I need?
The best goal you can have is to learn programming so you can implement something that you want to see built. It doesn’t need to be the next Twitter or Facebook. Your idea should be simple enough to execute on your own or with minimal help from your programming friends. (If you don’t have any, they’re only a friend’s friend away.)
It should be what’s often called a CRUD app, which stands for Create Read Update Destroy. CRUD apps are the easiest to build and require very minimal programming expertise, as you’re only reading and writing code from and to the database. Luckily, most apps are CRUD apps, or at least begin that way.
How do I get started building my idea?
Within a few weeks or more of learning to program you can be writing your first CRUD app. After I had learned the basic syntax of Ruby on Rails, what I did was have a project open for the app I wanted to build while I was learning to program. Then as I went about learning user creation, for example, I could implement it on my app. This leads to having put in place a mishmash of code, no question, but as long as you can get things generally working, that considerable accomplishment will give you the motivation you need to continue learning to code.
That’s how I built the first version of Uncover. Then after a few months, when I had it generally working and continued to learn, I re-wrote it from scratch with my additional experience. The point is that without having an idea in mind that I wanted to build, I would have given up my ambition to program before I had learned anything practical. Having an idea was the very best thing I could have had when I learned to program.