Daniel Strunk

The secret to learning any programming language

After much pain and anguish, I’ve found the secret to learning any programming language. And I’m going to share it with you. Why should you listen to me? Well, I’ve been entrenched in the development world for the better part of 10 years in some form or fashion. I built fan websites for Command and Conquer when frames were all the rage and it was cool to add chat applications and other kitschy things to your website (marquees! page counters galore!). I went to school to learn design, excelling in CSS classes and Flash sites along the way (Remember CSS Zen Garden?). Fresh out of school, I got a job as a kind-of-sort-of developer, a hybrid job that meshed my previously mentioned skills—designing and developing—to create templates that were then web-enabled so users could modify them through the power of the internetz. And outside of work, I’ve been focusing on keeping my developer chops sharp—picking up Python and Django, moving to NodeJS and finally settling on Ruby and Rails. So you could say I’m battle-tested. Or at least battle-aware. But enough about me; you came here to learn how to learn from my mistakes and take the shortcut to learning your programming language of choice. Ready? Here it is: f*cking do it. “That’s it?” you’re saying. Yup. “You’re a smart-ass.” Also correct. But the truth is, there’s no secret formula, magical method or osmotic memory tricks. Programming is a skill that requires practice, just like any other. People get too focused on the rockstar programmers, the David Heinemeier Hanssons, the Michael Hartls or Mark Zuckerbergs of the world that have a seemingly endless knowledge of their respective codebase and could crank out a site you’re struggling with in 20 minutes with no sleep. Don’t get hung up on those guys; they’re prodigies—great role models, sure, but prodigies nonetheless—that are more the exception than the rule. And despite being the exception, even these guys started somewhere. Maybe they started programming at 8 years old, but they did start somewhere. Every single programmer out there—no exceptions here—started exactly where you are. So get started! Here’s a list of things **not **to get hung up on:

  • “Is X language right for me?” - There’s no right answer, it comes down to personal preference. Just choose one and move on! You’ll find that once you learn the core concepts, moving between languages is relatively easy.
  • “I don’t know where to start.” - Google is great. Not to mention extremely important to your advancement as a developer. Let “learn Google-fu” be your first step toward becoming a developer.
  • “I’m overwhelmed!” - don’t be. focus on one problem at a time. There’s your second step toward becoming a developer: breaking an idea into smaller, manageable chunks. For example, Facebook didn’t become the site it is today overnight—it started with a basic authentication, a way to friend other users, an activity feed and a way to post on other people’s wall. You might have great ideas, but focus on your minimum viable product first. The rest comes later.
  • “It’s not perfect…” - It never will be. If you don’t look at your code in 6 months and hate it, you aren’t growing as a developer. Adopt Facebook’s mantra of “move fast and break things.” Learn from your mistakes and move on.
  • “I’m bored! I want to create something useful…” - You’ll get there. Suck it up, create another calculator. Fundamentals are important!

Now go forth! Break things! And most importantly, have fun!