About the author

Steven Harmansteven harman :: makes sweet software with computers!

For recent posts and more about me, scroll to the bottom.

Subscribe

  • Subscribe to my feed. via RSS
  • Subscribe via email via email

News

Badges

  • Subtext Project
  • Support Subtext

A Reflection on Lessons for the Young Developer

In his Working for The Man piece Jeremy Allison lays out six lessons he's learned over the course of his career in software; six lessons he'd like to go back and tell himself at the beginning of his career. Whether you're a code-slinger just starting out or a seasoned veteran with wisdom and design patterns coming out your ears, this is a great read. So go read it now... I'll wait.

This is me, waiting...

See I told it was good, didn't I?

Even though I've only been in the software business for half a decade I've already learned many of these same lessons that Jeremy mentions. I'd like to reflect on a couple of the lessons that spoke the most to me.

If it's not what you love, don't do it

This lesson is not exclusive to software development - this is something that everyone needs to learn, regardless of their chosen profession/career. However, like many lessons in life, most of us have to learn this one the hard way.

As a much younger man I thought I wanted to go into the medical field. Why? Because doctors are rich, duh! However I got over that once I admitted to myself that needles and such make me queezy.

Engineer By the time I started college I thought I wanted to be a mechanical engineer so I could spend my days designing sweet cars and the like. I spent the better part of my first three years at OSU pursuing a Bachelors of Science in Mechanical Engineering. That meant a whole lot of chemistry, physics, and send-a-man-to-the-moon math (all of which I enjoyed somewhat). But, I had zero interest in how these principles were applied in the real world. I was much more interested in computers - and more specifically the wicked cool stuff you could do with computers... and not just download all the pr0n on the Internet.

It was about my junior year when my buddy Nick finally convince me that I needed to switch to Computer Science Engineering. Lucky for me a lot of those math classes counted toward my CSE degree. Unfortunately the chemistry, drafting, thermodynamics, fluids, and most of the physics was a loss. In all it took me 5 years plus a quarter of summer classes to graduate with my CSE degree.

Well worth it to be doing something that I love as opposed to working just to pay the bills. Of course, Carli might argue that I spend way to much time in front of the computer and sometimes wishes I had gone the other route and worked a 9 to 5 type of job. Too bad. :)

Reputation is important

I couldn't agree more. However, when it comes to your career in software I find this lesson to be tightly coupled with Mr. Allison's final lesson, so I'm going to talk about them together. Hey, it's my blog and I'll do as I like.

The community is more important than your employer

So why are your reputation and the community so closely related? Because the community is how you build your reputation. Jeremy hit's this one on the head.

The days of starting at IBM after college and working there in obscurity until you retire are long gone. Any modern programmer will move between many companies in his or her career. It is very important to be able to show your next employer what you have done, and what you are able to do in a team. Free Software/Open Source is the ideal way of doing this.

I can speak to this from first hand experience.

After a working for the US Government during college I moved into the financial services industry upon graduation. I spent the next couple of years working for one of the largest firms in the business - with just over one trillion dollars (that's a 1 with 12 zeros) in consolidated assets. I worked on some interesting, but proprietary, projects during my time there. And while the projects were web based, they were being built with the same methodologies, technologies, and paradigms as web application built back in the late 1990's.

I quickly absorbed anything I could learn there and then started becoming frustrated with the lack of interest in moving forward. I had mild success with pushing web standards and cross-browser compliance (to ease development if not for the end users), and no luck pushing for test-driven development, sharper tools for developers, agile methodologies, and the like...

So, I turned to The Community.

Subtext LogoI had started this blog a while before and it was running on the now defunct .TEXT blog engine. But as luck would have it Phil had just started Subtext and was looking for help. So I dove in and after a year or so as an active contributor and member of the community I was nominated (by the Subtext team) to be co-Administrator of the project.

Fast-forward some more and this past January I accepted a position with VelocIT - at the behest and recommendation of the CTO... who I happen to know through my work with Subtext. He even wrote about it in his On Hiring Bloggers and open Source Developers article. Talk about the community paying it back!

Working at VelocIT has been one of the most rewarding experiences I've had. One thing I really enjoy about the company is our support, communication, and cooperation with the open source community.

Lessons you've learned?

Now I want to know, what lessons would you like to go back and tell that bright-eyed, bushy-tailed version of yourself just starting your career? Do you find yourself identifying with any of the lessons that Jeremy (or any comments to this post) presented?

And how about this... what lessons do you disagree with? I suppose it's not necessary that you disagree with a particular lesson - but perhaps you would de-emphasis in favor of another lesson.

Talk amongst yourselves.

What others are saying.

# Pearls of Wisdom
Gravatar The Rabid Paladin
Apr 25, 2007
Pearls of Wisdom
# Pearls of Wisdom
Gravatar Jacob Proffitt
Jan 09, 2008
Steve Harman had a post back at the beginning of the month about stuff you'd tell a young developer.
Comments have been closed on this topic.