All that glitters
Should You Learn to Code?

Maybe. More importantly, what do you need to do to succeed at it if you try?

Programming isn’t something you can take a couple of courses in and become useful. It’s pretty much the opposite of that (bias alert: I never studied CS, and taught myself to code, so there’s that). Programming is a trade. It’s like making shoes, or singing, or playing a sport. You can’t take a class on Soccer and expect to be able to play. You’ve got to get out on the field, and put in the hours of practice.

And I think that there’s a kind of person who is drawn to it, and flourishes in the trade. So here’s my list of what makes that kind of person (and if you’re diving in, what you should aim for to succeed):

Insane Focus

Ever watch a programmer at work? She’ll be the one with headphones on not noticing if the ceiling caves in. That’s not just a coincidence, not just nerdiness, it’s a requirement of the job. Programming requires you to contemplate all aspects of a problem at once, and create a little universe of clarity around it. This is shockingly hard, and it’s the reason that (productive) programmers will defend their focus time so strongly, and develop mechanisms (darkness, headphones, isolation, beards) that preserve that focus.

You’ll know you’re on the right track if your friends and loved ones start getting annoyed at how antisocial you’ve become.

A Love of Failure

Your first “hello world” program is going to feel great. Wow, I just made a computer do something! Somewhere shortly after that you’re going to be bludgeoned with failures. Odds are it’ll take multiple attempts to get something that even works in a rudimentary way. A lot of people walk away at this point. It’s demoralizing. But you’ve got to be able to fail over and over, until you find a solution that works. And then you’ve got to be willing to destroy that in favor of finding an even better solution.

Each time you fail, you’ll have learned something, and your next failure will be a more interesting one.

Reckless Abandon

Go forth and write bad code (and yes, it’s going to be terrible). A good programmer would probably laugh (rightfully) at your your whole approach and even your style. But did you make it work? Then good. Now do it again. The only way you’re going to learn how to do things well is to do them badly many many times, and build up the intuitive feel for how to construct programs and solve problems. This doesn’t mean you shouldn’t learn “best practices” and aim for “beautiful” code (both do matter), but don’t let worrying about that slow you down when you’re learning.

All that matters, at the end of the day, is whether your program does what you want.

Imagination

Programming is an act of pure creation- inside this little digital world, the programmer is God, able to conjure up substance from nothing at all and shape it to her liking. It’s really fun, but also really daunting, to be able to do this. There is no limit on what you can accomplish, but it’s going to be up to you to do it.

There’s no sense worrying about the limits, they’re going to become apparent whether you want them to or not- so aim big.

  1. aurum posted this
blog comments powered by Disqus
blog comments powered by Disqus