You are here

On Rockstar Programming

I am offended that something proclaiming itself to offer tips on how to be a "Rock Star Programmer" exists on a forum post on a site named "Javalobby." It's "rockstar" not "rock star," dude, and Java? Pff.

Real Tips on Becoming a Rockstar Programmer

1. Play the Part.

Face it, the only way anybody besides some equally socially comatose geek is ever going to call you a rockstar programmer is if you play the role effectively. This means unnecessary bodily wear and tear, a good haircut or an overgrown one, some decent jeans, shirts -- that fit, lose that oversized stuff -- with logos of hip tech events or communities and, well, you're probably going to have to learn to drink beer. Be temperamental but get your stuff done, preferably at 5am.

2. Use the Right Tools, Well.

Windows ain't gonna cut it folks. Get a Powerbook/MacBook or a Thinkpad X4x or X6x, the Sony Vaio TX series is pretty hot lately, too, though I personally wouldn't be able to use one, and run OS X or Ubuntu. Use Vim -- and learn how to quit Emacs get root and install Vim -- for code editing and customize the hell out of it so that you don't spend all your time repeating trivial operations. Same goes for your operating system, there should be no fewer than three ways to open a terminal via keystroke, at least one way to directly launch a search in a browser, and name your virtual desktops to organize your thoughts. Foster the healthy growth of a couple holy wars so you have a side to pick in the coding sprints.

3. Know Code.

You should know code the way those music-magazine-reading, tight-jean-wearing hipster kids know which band "had a good first album, but the second one sucked." Read blogs written by smart coders and all the books that they read. Be proficient at coding in all the popular languages, a bunch of unpopular languages, a few archaic ones and at the very least understand how to talk about pointers and memory allocation without sounding like an ass. Python and Ruby are vogue, Java is... deprecated. Oh, and debuggers suck but learn how to turn one on so that you can complain about how undebuggable the piece of code that is breaking is.

4. Tune, Tune, Tune.

Your shell environment should glide as if upon ice under your fingertips. Hand-rolled commands are your friends, anything you have to repeat often at all should not require changing mental contexts. OS X users, you can do some impressive stuff with AppleScript from the command-line, Linux users... duh, your whole world is built around that thing. And make your environment portable, you're going to want to take some of it with you wherever you go, and put that stuff in version control and on the web.

5. Be Mysterious.

Anybody watching you from behind should be completely unable to follow the effects of your typing, one second you are in a terminal in your home directory, next you are launching a test suite for your app while updating the code just before it locks it all while chatting on IRC. Don't be afraid to customize your keyboard, have more triggers for things than you need, it will all pay off when somebody tries to use your computer and is so completely lost that they have to accept your true mastery over your own domain or be left flailing hopelessly about.

6. Re-Implement Everything

Reverse engineer everything you can get your hands on. Use a web service? Write a local version. Write email clients, web libraries, music players, wikis, blogs, mailing lists, irc bots, news aggregators, a text-editor, programming languages, clients for anything you touch. This stuff would all be a waste of time if a) you weren't actually gaining the experience to avoid the pitfalls everybody who hasn't written their own mailing list software would make, b) when asked whether you know Lisp you couldn't say you've written an implementation of it, or c) when somebody asks you what you are writing you couldn't say a dynamic playlist generator for some Smalltalk-based music server you wrote "a couple weekends ago."

7. Free Love, Man.

You're not trying to make money, they just keep insisting on giving it to you. Everything you do is open source because anything else is selling out, and after all you're about the music, er, code. Trade free coding help for food and beer, be the guy who is buying people drinks at all the parties and coffee at all the meetings. Provide free wifi to as much of your neighborhood as you can and get it set up at your favorite cafes. Refuse to use Microsoft Office, ever

....I am going to get massacred for this.

Technorati Tags: ,