I saw on G+ that Google has released their new language Dart in the latest Chromium tech preview. One comment mentioned that “Soon we’ll see job ads requiring a college degree and 10 years experience in Dart…”
It’s funny because it’s true. Around 2000 or so, my (then current) employer won a big contract and the managers were pretty arrogant about it, thinking they would sit in judgment and that the very best would come begging to work for them. (This didn’t happen because they were known to be jerks, but that’s another story.) Anyway, they put out job requisitions with items like “10+ years experience with Java development” when Java had only been out and usable for 5 years or so.
This stuff cracks me up now, but if I were looking for a job as a programmer using one of these languages, it would really make me mad. Actually, very specific job requirements irritate me generally. For what we do, my ideal job requirements doc would read:
- Must be very smart
- Must be willing to learn new technology every year
- Must enjoy working alone and with others
- Must be able to talk to and work with customers, even difficult ones, and remain professional
- Must have a strong creative drive
- Must be willing to do (some) boring, tedious work in addition to building original code and applications
I think the spec above covers what we need in a developer/engineer. I don’t care about college degrees (though my company and customers unfortunately do). I’m much less concerned with particular coding skills than with the ability to learn new tech and the enthusiasm to do it well. Finally, you have to be able to work well alone (no micromanaging) and together in a team, sharing the workload and the credit for the great stuff that comes out of that work.
I was hired in the late 90s into a position using criteria like this. I was studying philosophy in grad school at the time and during the interview, I talked about how beautiful data and control structures are if implemented well and lots of other stuff about beauty. After ensuring I didn’t mind maintaining the existing system as well as building new stuff, they immediately offered me a position. Very cool. It was some of the most difficult work I’ve done in my career, writing a system from scratch using Solaris and HP-UX as the base and building everything above it using mainly C with a smattering of many other languages. The project had built it’s own CM tool, makefile generator, blazingly fast C-structure based database, and many other extremely complex tools that had to run very fast on old hardware. For projects like that especially, where you have to learn a huge amount of stuff you’d never see in college, I think the traits above are what counts most.
I think the people who put long lists of coding skills and experience with particular tech are either lacking in creativity,understanding of how elite programmers work, or had these requirements levied from above.