CrapFlingingMonkey.com
A voice for all developers

TAG | motivation

InspirationI just got back form Elton John and Billy Joel, and while I was there it reminded me of something I’ve been thinking about for quite a while. Programming as an art form. I get a lot of inspiration from the arts — actually I first started thinking about this back in December when I went to “A Jon Schmidt Christmas”. I thought… this guy doesn’t have a chance to “make it big”, but he’s completely happy where he’s at. If he played in front of 10 people, he would be completely happy. Take that to Elton John and Billy Joel, and I think the same goes for them. They’re getting older. They don’t have to play music. But they do. They love to do it, they’re good at it, and that’s what makes them happy. So my question is, why can’t computer engineers do that? Are we really so technical, digging into the details, gathering requirements, making estimations, doing test-driven development, that we can’t express ourselves through code? Well, I think we can.

This might be where frameworks like Django and Ruby on Rails come into play.  They allow you to make what you want, without the crap.  When you have an idea, you can make it.  You can express your ideas quickly and easily.  You don’t worry about design patterns, because it’s all there for you.  All that’s left to you is to “paint the picture”.  Just hack it out, it doesn’t matter what the code looks like.  Take a look at the most “artistic” programmers out there — the hax0rs of the world.  Many of them are absolutely brilliant… but you wouldn’t think so in looking at their code.  Heck, most of them don’t program object-orientedly — a must in the business world.  They hack out a script that just does the job, and nothing more.  I wouldn’t say that’s a bad thing.  It does what it’s supposed to.  What more is needed?

At any rate, I think that the longer I’m a programmer by profession, the further I get away artistic expression in programming.  While I don’t think that “hacking out a solution” is a good idea for a business, I still think programmers need to do the quick hacks on their own, and make some that actually *does* something, with minimal effort.  I want to be like Billy Joel when I get old and still be killing it when I’m 60, or be like one of my personal heroes, Woz.  I don’t have the answer for how to get an old-timer like myself excited about that kind of thing, but when you figure it out let me know.

, , , , , ,

concentration

I’ve had a lot of thought and conversation lately about how to stay motivated.  The fact is that we’re all human, and we all have ups and downs.  Even if your super-motivated about doing something one day, the next day you might not be.  I know I’ve had a lot of personal experiences where I get on a kick for a couple days, hammer out some code, then someone says “eh, that sucks”.  It’s a total downer!  Well, here are a few tactics you can try to stay motivated.

  • Don’t listen to what other people say about your stuff, unless it will help make it better or point out an obvious flaw.
  • Remember that if someone has feedback, that usually means you need to do something.
  • If you work on something a while and become disinterested, keep what you’ve done around.  Who knows, you may pick it up and continue working on it several months down the road.
  • Finish things through to completion

I think the last point is the most important.  As software developers, we become distracted very easily.  Often times we become to entranced by every new technology and every different way to do things that we don’t ever get a finished product.  The old tale that “an application is never finished” has put a bad taste in my mouth since the first time I heard it.  While there’s always room for improvement, finishing and releasing a product, and setting milestones for future work to be done is vital.  Working in bigger companies we sometimes forget that — that’s why there are project managers, product managers, etc etc.  We could learn a thing or two from those guys and apply it to our own side projects.

Aside from the “setting goals” part, most of the work happens within a very small timeframe.  It’s called being “in the zone”.  That’s the programmers time when you are completely focused on the task at hand, and cannot be distracted by anything.  This is the most important time to keep programming.  If you have to stay up all night, then  do it.  Here’s what Joel Spolsky (who I normally read for entertainment, not how to do my job – for another post… but this is good) has to say about being “in the zone”:

“Here’s the trouble. We all know that knowledge workers work best by getting into “flow”, also known as being “in the zone”, where they are fully concentrated on their work and fully tuned out of their environment. They lose track of time and produce great stuff through absolute concentration. This is when they get all of their productive work done. Writers, programmers, scientists, and even basketball players will tell you about being in the zone.

The trouble is, getting into “the zone” is not easy. When you try to measure it, it looks like it takes an average of 15 minutes to start working at maximum productivity. Sometimes, if you’re tired or have already done a lot of creative work that day, you just can’t get into the zone and you spend the rest of your work day fiddling around, reading the web, playing Tetris.”

If you only have time once a week to get “in the zone”, then plan it.  Turn off your cell phone, close your IMs, tell your wife you love her and won’t see her for bit, and set the expectation that, for example, every Thursday night you’ll be hacking away and completely unavailable.  Try to know what “business decisions”, or functionality you want to include beforehand.  I think about it when I’m trying to get to sleep at night, taking a shower, eating breakfast, whatever.  I try to write down what I think of the next chance I get.  But when it come to getting it done, that’s when that night of being alone is vital.

This was kind of a hacked out, not-completely-thought-out thought, I will hopefully try to organize it a bit better and follow up in another blog post, but this is just what I’ve been thinking about.  As always, your opinions and insights are appreciated, whether it’s through email or a comment.

, ,

Find it!

Theme Design by devolux.org