Friday, March 12, 2010

How I got my coding groove back

I'm starting to like to code again. Starting to like being in Software Engineering. But what has brought this on? What has changed? Let's get to it and see what has changed.

The people I work with? The majority of the people I used to work with (at the company I was with) was great. Some were troublesome but there was a large group of people I got along with. A bunch of us played boardgames and cooked food (awesome and super tasty food as well!). So it is not the people. I am sure that if any of my colleagues reads this they are going to give me a hard time about it the next day:) They are a good bunch of loonies too, and I sure wouldn't be able to work (in any sense of the word) if I disliked the people I work with.

How about the people running the companies then? In the past it was a pain, they didn't understand the business nor software engineering. It was a big failure to say the least! Where I am now I might not agree with everything the top says or does, but the company do make money and there are no facepalms or epic failures waiting in the middle of a lit room. It doesn't effect me in a negative way really.

How about customers? I don't notice them these days, while they were a constant source of pain in the past, so a noticeable improvement here. Makes my life better :)

How about coolness factor? From 1999 to the beginning of 2009 with a break of a few years in between I worked with smart phones. It's something I am sure many people dream of, just as I dream of working with some really cool product that I hold in high regard (cue inevitable Apple joke from Stan||Phil||Jared!). Time to burst the bubble, not always what it is cracked up to be. SymbianOS was and is some of the worst software I have ever touched (and I saw more of it than most ever will). It is just plain awful in so many ways that it makes me physically ill.

So what cool stuff do I work on these days? Enterprise software. Taste that word for a minute. Tastes kind of like cardboard doesn't it? But that doesn't matter really. I have for the first time professionally worked with the web (handcoding webpages and writing cgi in C back in 1996 to run on b/w SunStations doesn't count:)). I have again touched upon Java and haven't changed my opinion there. Javascript rocks and the browsers suck. HTML5 excites me even though I wish it was XHTML2 instead (XML plain sucks). Doing some iPhone development too which rocks.

So the underlaying tech is actually more fun these days. The system has its warts (especially for a code-maintainability/readability-OCD person like me) but it works quite well on a whole. ObjC/CocoaTouch is always a hoot as well:) I don't have as many high level discussions on software as I used to, but there are a few glimpses of hope out there. But I feel like I make at least a little difference and it is fun to code.

So that's it. It's a combination of new and more interesting tech and hope. Hope that I can make a difference, that I can leave the product noticeably better than when I got there. Seeing that things can become better is a huge motivation factor (for me).

As a side note on Java. Yes I dislike that language, and I think that a lot of harm has befallen the Software Engineering profession (especially from the posers) because of it. That is for another post. But that doesn't make it impossible to write good code in it, nor does a language guarantee great software. Just like natural languages makes a difference to how we as humans think and are able to express ourselves do computer languages change how we think and express ourselves. What is spoken on the other hand is down to the speaker and I strongly believe that the coder makes a much greater impact than any language can, and the more ways we can express ourselves as Software Engineers when we put our thoughts into code. Never stop improving!


  1. assert("grove==groove",false);

    I'm getting back into coding after a long "application administration" stretch. It seemed like helpdesk tickets were my life, and so new development just fell to the "when we get time" pile.

    I look forward to that "another post" on Java. I'm coming to the table late with Java (traditional C programmer) and I love/hate it simultaneously.

  2. I am happy to say that your unit test on my post now should pass :)

    I really should try to put to print my issues with Java. A little spoiler is that my real gripe isn't with the actual language itself, but rather a lot of things that evolved around the language.

  3. THANK YOU... I too hate Java so much.. especially Beans..