Certified. Duncan talks about the benefits of certification, in response to a developer's skeptical comments. I don't have a ton of sympathy for people who feel that they don't need certification. Admittedly, a person can be certified and yet be a terrible developer. And there are developers I know who could pass the tests in their sleep, and who don't need the paper to prove their skills. But do the tests have value?
I always wonder about the people who downplay “paper MCSEs” and claim that the knowledge covered in the tests is trivial. Why do you think they don't ever take the tests? Last I knew, a test was $100 and a few hours of time — could it be that the expense is too much? I don't think so.
I used to be one of those nabobs. Being the typical developer, I had a high opinion of my own abilities, and a confidence that people who leaned on the crutch of certification could never approach my own considerable prowess. However, being a man of some intellectual honesty, I took it upon myself to prove the triviality of these tests. I eventually got MCSE+I, MCSD, MCDBA, MCT and many other certifications. Here is what I learned about certification:
- Some tests can be passed by nothing more than rote memorization and cramming. But most require real ability in addition to the study. If you are the kind of developer I was, you wouldn't necessarily think more highly of a co-worker who passed the tests, but you sure as heck would think differently of a co-worker who couldn't pass after a few tries.
- Passing the tests forces you to round out your strengths. You might know everything there is to know about VLDB design and tuning, but absolutely nothing about merge replication. If you are so smart about VLDB, you'll have no problem picking up what you need to know about merge replication, and you'll never regret having shored up the weak spots in your expertise.
- Even the parts of the tests that succumb to memorization and cramming are often useful — genuinely useful — at unexpected points in the future. You may always be able to do a good job and awe your peers without these random extraneous facts stuffed in your head, but it sure is nice when one of those worthless tidbits comes to the fore and points you to a more efficient route to getting a desired result. A couple of hours of efficiency every now and then really adds up.
- More is better. The more certs you get, the more value you extract from the certs you already have. This isn't just certifications — in general, all learning is synergistic — but certs force you to learn with some breadth and consistency, and this promotes synergy.
- Different is better. Learning things outside your area of expertise is good for the brain. Drive a few yards in someone else's rut. Again, this is about learning in general, and not just certs. But a cert demonstrates a certain level of competence; especially when granted to someone who does not consider the area to be their domain of expertise. If I were king of all techies, I would require all devs to get MCSE first and all sys admins to get MCAD first. Achievement in the non-core areas would help them break through to new levels in their core areas, without fail.
P.S. Alert readers will have notice that I have MCSD and not MCAD. I keep telling myself that I don't need to upgrade to MCAD since I know the material so well already. Intellectual honesty is always under attack. [Better Living Through Software]