Wednesday, February 13, 2008

7 years required!!!

Recently one of my favorite bloggers, Jeff Atwood, posted a piece called "The Years of Experience Myth". His analysis is dead on. I previously blogged about my aggravation when I received a recruitment email for a position that required 10 years of J2EE experience (even thought at the time, J2EE was only 8 years old).

Java has evolved quite a bit since it's early releases, unlike languages such as C which has stayed pretty much the same for the last 15 years (perhaps longer, but I didn't get my first glimpse of C until 1993). I was reminded of this recently when I started looking at some old java code replete with vectors, hand made enumerations, and nary a Collection to be found. That's just how it was done when this code was written. My point is, if today you were writing the same application using Java 1.5/6 it would be done quite a bit differently.

I've worked with many java developers that can easily claim five years of J2EE/java experience. Frightfully, a huge chunk of them still don't understand generics, don't do any unit testing, don't know about some of Java 1.5's other features such as foreach constructs, C-style variable argument lists, annotations, etc, I could go on and on. They don't read about software design, they dont' code on their own time for fun, and when they are working they pound out 700+ line methods that are hellishly complicated and break quite often. What happens when Java 1.7 gets here and gives us goodies like monkey patching and closures?

Despite this, if you ask any technical recruiter in the DFW metroplex, these guys are going to be regarded as "senior" java developers. For a guy like me, that can be quite aggravating if your seeking employment.

I don't claim to be the greatest developer ever, quite the contrary, I know I have a lot to learn, or as Jeff once wrote, try to suck less every year. But one thing I can say is that I care about my craft. I decided that that if I was going to be a software engineer, that I was going to be good at it.

Perhaps I'm being overly harsh, or maybe this type of thinking is just more pervasive in DFW than in other places. I've heard on many occasions that the bay area is a much saner place for IT professionals. Whatever may be the case, for now I've learned that the best way to find a satisfying job is to widen your social network and to become friends with as many people in your industry as possible. Talking to recruiters and using job boards is fine if you have to, but it's just a lot harder. There are companies, even in DFW, where there are some pretty smart people working, but they still use shabby recruiting firms. If they would just adjust their candidate screening processes, our industry would be a lot better off.


  1. "they dont' code on their own time for fun"

    maybe because they use the time to exercise and get healthy.

    your fun is not their fun.

    if you think you're a better developer because of you code in your own time for fun... that's narrow minded.

  2. I agree with you, I always think it's ridiculous when they ask for something like 10 years experience, unless they're looking to fill a management position. Are you really going to become a better programmer after that 6th or 7th year? The fact is that if you don't keep up with changing technologies, you could actually become worse! I would much rather hire someone who takes the time to be a good software engineer then someone who has been sitting at the same job for 10 years and probably not learning much new stuff. Wanda, I never programmed on my own time and I think that it's made me fall behind. Maybe if your job is very demanding, you can keep up just by going to work but unfortunately I have found out the hard way that this is just not enough.

  3. And by the way, I love the motto of sucking less every year. I recently told my friends that I think I suck at my job and they kept trying to convince me otherwise. But I think it's a good thing to realize early on in your career -- that way you can try to suck less...I'm already working on it.