So you’re thinking about getting an IT certification? Congratulations, you have discovered the Pragmatic Programmer Tip #8 – “Invest Regularly in Your Knowledge Portfolio”. But before you sign up, pay your fee, and spend your time chasing a certification, consider two points from the fine print from the Pragmatic Programmer book: Manage Risk and Buy low, sell high.
I do not have a Java certification, despite it being my primary language. There is risk for me to get this certification… I might spend all my time studying and then fail the test! I don’t think “studied for the certification exam” looks as good as simply “I am certified”, but that’s what I might end up with after several weeks of work. And there is also the risk that I am buying high and selling low, instead of the other way around. The Sun estimate for getting the Developer cert is 160 hours! This is a huge investment and I am not sure I’ll recoup the cost quickly enough. Perhaps there are better alternatives? Is there something that offers just as much benefit but with less effort? Or more benefit with the same effort? If there is, then the decision on whether to get a certification or not is an easy “no”: it’s ain’t worth your time kid.
The following is a table of all the things I’ve done in the last 12 years and the amount of time it took me to accomplish them. If the numbers are accurate, then it should be fairly simple to make a cost/benefit analysis of different knowledge portfolio endeavors.
|In-House Tech Presentation||8 Hours||Your resume can either say “Spring” or “Trained team on Spring”. The latter looks a better and gives you a more interesting story to tell in interviews. At only 8 hours of prep and delivery time, this has been useful for me. Recommended.|
|User Group Presenter||24 hours||A user group presentation is stressful but not that hard once you’ve done an in-house presentation. It does take some effort though and I usually have to pay for travel. The problem is that this task doesn’t prove anything to interviewers that the in-house tech presentation doesn’t already do and in less effort. Unless you have ulterior motives (future conference speaker, egotism, community building) then I say Don’t Bother|
|Conference Presenter||16-32 hours||Once you’ve given a user group session then the conference session is pretty much a cakewalk. A stressful, nauseating, sweaty cakewalk. And there is definitely some cache with being a conference presenter. When I’m asked, “Do you know OSGi?” I get to answer, “I presented on it at 2GX.” and if you can speak for 90 minutes on a topic at a conference then surely you can go 5 minutes in an interview. Recommended* (*if you already gave a user group talk)|
|Open Source Contributor||8 hours||Being a contributor to a project is pretty darn easy, but your friends will probably care a lot more about this than someone who is interviewing you. I don’t think I’ll land any new jobs because of the 10 line patches I’ve sent a half dozen projects, but I did make some good friends. And you know what, the guy who recommended me for a job at Canoo was someone I had sent a 10 line patch to. But as an alternative to certifications, Don’t Bother, the benefits are intangible at best.|
|Open Source Committer||120 hours||If you take 3 weeks off of work and work solidly on an open source project, I think you’ll be made a committer. The problem is that people reading your resume frequently have no idea what the difference is between a contributor and a committer. And being a committer is a long term commitment to fixing bugs and remaining active. This is a lot of work but also a lot of fun. Being a Groovy committer has been greatly beneficial for me, but it was paired with conference speaking and blogging. I say Recommended* (*but it is really more of a lifestyle choice).|
|Open Source Project Lead (for your own project)||40 hours||If you are the only developer on an open source project that no one has heard of then nobody is going to care. I wrote TimeTool to learn Swing. Mission accomplished. But is is a terrible alternative to certification. Don’t Bother.|
|Administer a User Group||24 hours||Administering a user group tells interviewers you like distractions from coding and it won’t help you answer any of their interview questions. On the plus side, you will meet a whole bunch of people that will suggest your name for interviews. If you’re looking for a new full time job then this is a good tactic. If you’re looking to ace consulting gig interviews then Don’t Bother.|
|Certified ScrumMaster||16 hours||There is no preparation for the course, it is not too expensive, it never expires, and there is no test. This is about the easiest certification you’ll ever get. And a lot of hiring managers value this. If you want to learn and enrich yourself then skip this “certification”. If you want a certification on your resume, then 100% Recommended. You can get Scrum certified almost 5 times for the same investment as a SCJP, and with no risk of failing a test.|
|Webmaster for User Group||12 hours||I was the OTUG webmaster for almost 3 years. It was a nice way to make friends, but no one interviewing you will care about the plain old HTML and CSS site you maintain. As an alternative to certification: Don’t Bother.|
|Volunteer Conference Organizer||40 hours||As a volunteer conference organizer at Agile 2006 and 2009, I got to see the conference for free, I got to meet and engage the speakers, and I made some friends. Interviewers won’t be impressed specifically with the volunteer experience, but I have several good stories I can tell during interviews. And the 40 hours I spent was all time at the conference. Recommended.|
|Learn a new language this year||40-100 hours||I have 5 years Java experience. Plus Groovy and F# and Scheme, all learned during that time. How can I truly have 5 years Java if I spent my time learning other languages? Learning new languages is great for your mind and bad for your resume. As an alternative to certification, Don’t Bother.|
|Organize and run a Book study||16 hours||I organized or participated in about 6-8 book study groups in the last few years. It is a small investment, especially if you’re going to read the book anyway. And I can definitely say that reading and discussing Java Concurrency in Practice, Release It!, and Effective Java twice has made me a better programmer and interviewer. Plus, the interviewers will assume (rightly) that you can help their team run a book club, which you should do. Minimal investment, high value: Recommended.|
|Write a technical blog||40-60 hours||A blog post should take about 4 hours to write, and if you make 10-15 posts then you’ve got yourself a nice little blog. When interviewers see your URL in the resume they’ll click it and skim the contents but not read any of the articles. If you want maximum value for minimal investment, then do not date the articles and don’t supply a way to see how many posts there are… that way the site will age gracefully in the future. Cynical? Maybe. Other programmers will care about this a lot more than managers will care. I say: Consider It.|
|Master’s Degree||1344 hours and $$$$||This is a huge time investment, a big money investment, takes 3-4 years of calendar time, and won’t start accruing value until it is fully finished (no one cares that you are “taking” a masters degree only that you “finish” the degree). It is the ultimate un-agile training strategy and a good example of a bad value stream. Don’t expect monetary payback until almost 10 years after your first class! This is a bad alternative to certification because of the enormous cost: Don’t Bother.|
And here is my guess about the Java certifications a few of us Canooies are considering:
|Java Certified Programmer||80 hours||You study a large book. You possibly become a better Java programmer. You may study too much and waste your time studying or you may study too little and fail the test. However, the SCJP certification gets you in the door with a lot of companies and some people do care about this. This won’t help you perform in interviews, but it definitely helps get the interview. I have to say, after careful comparison, this ranks as a strong Consider it. The biggest problem is that it is just not fun to do.|
|Java Certified Developer||160 hours||Sun/Oracle says this cert should take 4 weeks of effort, but that seems like a high estimate. And again, you may do too much or too little work. Plus, interviewers may not know the difference between SCJP and SCJD! I predict most filters are looking for SCxx and don’t care about which level you actually have. Considering the time investment and risk, I say Don’t Bother.|
And the results?
Here are some equivalent scenarios on how to spend the next 80 hours of your life:
- Sun Certified Java Programmer (80 hours)
or all of these combined:
- 2 In house technology presentations (16 hours)
- 2 Open Source Contributions (16 hours)
- Scrum Master Certification (16 hours)
- 2 Book Study Groups (32)
- And you have fun doing it!
In my opinion, the latter list sounds better than the previous list. Problem is, my opinion doesn’t count for much when it comes getting in the door as a contractor or consultant. If you are looking for a new full time job, then I recommend that 2nd list and skip the Java cert. For contractors/consultants, it pains me to say it but the Java Certification still seems like a decent value for the cost.
So what is your custom plan this year? The first list or the second?