It might sound like a bit of cliché from one of those high energy seminars where you’re encouraged to Take Control Of Your Life! and Actualize Now! or Create Your Own Reality!, more and more I’m finding that one of the best ways to get things done, programming wise, is just to [expletive] do it.
One of the big challenges I have myself is that I get mired down in details. For example, I have this idea to do a Ruby Idioms site, and the setup seems pretty simple. User login model, an Idiom model, thrown in something like acts_as_taggable-on or whatever’s hot right now, a bit of layout, some begging for real design from some helpful designer(s), a short beta with some real users to flesh out the bugs and fill in the database, and then release, iterate, release, iterate, done.
For a Rails project this isn’t overly complex, hell, an intermediate coder could probably hack that out (up to the design part) in an afternoon.
And yet a week after coming up with, and getting all excited by, the idea of doing it, I’ve only gotten as far as registering the domain. What the hell is wrong with me!? Heck, I started this post half a week ago and still haven’t posted it, or gotten around to doing anything more.
There are a few different reasons why people procrastinate. I’d put them in a random order chosen out of my brain:
- You’d have to finish if you start
- Easier to sit on the couch and watch the new Blue Ray Alice in Wonderland
- Too many other things to learn first
The last point is the big one for me, and for a few people I know too. When I say “to learn” I don’t mean that in the “oh I have these awesome new technologies to get through” sort of way, but more in the “well, I can’t write a rails app until I learn rails, but I have to learn ruby first, and there’s all these libraries, and I hear that 1.9 is coming out soon, so maybe I’ll wait for that to be released, and I hear Rails 3.0 is almost out, so it makes no sense to learn Rails 2 now if the next version is only a couple of weeks or months down the road…”
I believe the seminars call this (among other things) the “whoah busy” syndrome. With a scary task ahead of you, it’s really easy to end up bogging yourself down in the minutia of it all cause if you have to mow the lawn/do the dishes/clean the house/do the litter box/cook dinner/get lunch for tomorrow ready then it’s really easy to put off starting that new project…
That’s my issue anyway, I’m sure it’s not unique, but I don’t want to put any of my own issues on people out there. I think if you look deep down in your own psyche you’ll figure out what it is that’s stopping you.
Ok, so in the time of reading this and a few seconds contemplation, you now have figured out what issues you have stopping you from getting your stuff done, so what now?
The most obvious is to just do it. Seriously, close the browser, shut down your RSS reader and open up Vim/TextMate/EMACS/whatever and start coding.
Still reading? Stop, close the browser and get out and do whatever it is you need to do. Think about that feeling you get when a project is done and how good it feels to tick something off your todo list (legitimately of course, not like this guy). You’re a lot closer to that ticking off feeling after you start, not before right?
My best example of this from my own past was working with @milesforrest at an early FV.rb meeting and it was just the two of us, and we started into the typical geeking out, surfing reddit, etc. I put my foot down and said “lets make something”. We set up the site’s website onto heroku, put it up on github and worked on stuff. It actually sucked… there’s nothing to show you the difference between having read a bunch of Rails books and blogs and actually coding it. I did a lot of cursing that day, as all the stuff that should be just super easy turned out to be really friggin’ hard, or at least hard from a “I have no clue how to do this” point of view.
We persevered though, and worked on it and by the end of the night had a lot better understanding of some of the Rails insides that now (months after this initial ordeal) are second nature and super simple to do.
Moral of the story? Each journey begins with just one step, and each new web project begins with typing in “rails <projectname>”….