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.