Learn from Side Projects

September 6, 2014 / Education

How can I learn to code?

It’s a question I get a fair amount. The obvious answers are to checkout codecademey and Treehouse. Both are good places to start, but I think the best answer it to learn from side projects.

A side project should not start as a business. It should be enjoyable and push your skills a bit further. As Marvel’s Murat Mutlu says, “Your side project should be something where you get home, fire it up, and feel the zen.”

Mind the Gap

So, how do you start a side project?

Start tonight! Take your idea and see where you can begin. Do you know Photoshop or Sketch? You don’t? Then start with a pen and a piece of paper.

There is a caveat—I hate to tell you this—your first project will suck. It will look bad, and it probably won’t function. It’s also likely that the next several side projects will have a similar fate.

Don’t worry this is the case for all beginners. The disparity between your taste and your skill is large for now; however, with time the gap will shrink.

As you build and tinker and break, there will be one project that will finally work. It will be ugly and simple, but it will work.

This is drzzle. It is the first side project that did what I wanted it to do. When I was in Mountain View it never rained. The weather was fantastic my entire time I was there. Oddly, now I live in the rainiest city in the country.

Anyways, I like working when it rains—especially on a cool autumn morning. Inspired by raining.fm, I set out to build a worse, but similar website. And that is exactly what I built! All it does is play an audio track that sounds like rain!

Countless projects later you see something like Signal Tower—or even better—the projects Drew Wilson and Pieter Levels are building on their own. Your not there yet, and neither am I, but soon, if we are persistent, we might be there one day.

Find Mentors

Beyond starting side projects, you need people to help you figure out how to get from A to B. You need mentors. I know you’ve probably got a few project ideas, but have no idea how to get there. What technologies should you use? Is that design usable? Is it feasible? Maybe you’re just stuck on a JavaScript function and need someone who is a better engineer to help explain why you’re code isn’t working.

If you can, try and find mentors in the same city. Meeting in person is preferable. In Mobile I’m the one who people come to with technical questions. This is a problem, because I’m a pretty poor engineer. Reaching out to people that know more than me via email and Skype has benefited me incredibly.

If you have a lot of time and a bit of money, an intensive program like The Starter League or Dev Bootcamp will absolutely be worth the money—much moreso than a semester of college. The most important part of those programs is that they surround you with people that are really good at building things. Another benefit of those programs is that you are constantly around people with the same desire and motivation to create.

You don’t necessarily need to join a hacker school to get that, but you do need to hang out in the same places. Your best bet are co-working spaces, accelerators and with startups. Don’t know what to look for? Try 1871 in Chicago, Hypepotamus in Atlanta and Spark in Boulder.

In any case, It is important to find mentors who are willing to point you in the right direction, and help you over plateaus. There will be many.

Start a Blog

Writing is the most important thing you can do. I’ll say it again, writing is the most important thing you can do.

Start a blog, and write about the things you learn from side projects. A blog is among the best way’s to market yourself, whether it is for side projects, as an entrepreneur or for job prospecting. Also, as you write, maintain and change your site, you’ll learn a bit about development, SEO, hosting, web analytics and a ton more in the process. In the end you’ll be better for it.

Nobody has ever said, “I regret starting this blog.” (Ha! If you do a search, most people regret not starting a blog.)

Write about what you learn, and why things did or didn’t work. Don’t be afraid to write about why things don’t work, seriously. Those are the important posts. See my post about shutting down my business FRUGGL.

WordPress is a good place to start. I’d recommend taking the more difficult route and go to WordPress.org. Download the files and host them yourself. Also, there are a ton of themes available for relatively little.

I started a blog as a sophomore in college, and like working on side projects, I wrote a ton of crap for a year. Eventually I got better and better. Things just take time.

What are you waiting for? If you don’t have a blog, that would be a great first side project. Start now!