At the heart of the certification issue lies the idea that there are two kinds of "techknowledge," book knowledge and real world experience. Some people believe that real world knowledge is what it's all about. In my experience, I believe that each kind of knowledge is both necessary and valuable to succeed in IT. A person with working knowledge learns as he goes along, by getting real code to run. This scenario has a large disadvantage in that the person only learns about what he has needed to use to achieve his desired functionality. In contrast, when a person gets certified, he most know the ins and outs of all the major features of a technology. He doesn't just know that you can use a technology to do "A," he knows that you can use it to do "B" and "C" as well. The drawback of only having this book knowledge that comes with studying for certification is that a lot of people get too focused on the piece of paper, the certfication itself, for the sake of being certified. They memorize all the boring details and rules and don't really understand why the limitations exist because they have no real world context to think about. The fact is that someone can read a book and take a
test and get 100% on the test and still not be an effective programmer in the tested technology. For instance, a person might be a SCWCD but has never written a working
JSP custom tag. I believe that it is thus necessary to have both the breadth of knowledge that comes with studying for a cert as well as the working knowledge that comes with writing real code.
Okay, so I've established my belief that studying for certifications is good regardless of whether or not it helps you to get a job. Now, on to the job part. Recruiters look for a lot of things when they interview someone, not just technical ability. A lot of times you will be interviewed by several people, many of which are not at all technical. Studying for certifications shows that you are self motivated and hard working. It also shows that you have the intelligence to understand technology concepts. This will definitely help you look good in an interview. Certifcations will also, (usually) win you some respect and points with technical interviewers. In addition, we live in very competitive job seeking times. Every certification you have that is related to the job you are applying for is something that separates you from the other candidates. Finally, I believe that the EJB cert is good because it proves knowledge of a highly marketable skillset. The goal of the unemployed programmer is to find work. Whether you think EJB is good or not, you have to go with what companies are asking for. You have to do everything you can to cast yourself into the role of the job description like so:
NewEmployee me = (JobDescriptionInterface)objMe;
As for my story, I believe that my
SCJP cert was a big factor in me landing my present job. When I started, I had a little experience with a lot of languages but I was a master of none. I had some real world stories about how I get the job done and I work well under pressure but I didn't have any professional
Java experience. I had taken some Java classes in the past but had recently passed the SCJP cert. The person that interviewed me questioned why I got the cert and I said I was interested in Java and wanted to take my career in that direction. He seemed pleased by my answer and by my attitude.
Once I landed the job, I frantically began studying to do J2EE related stuff. I was worried that I was going to be asked to do something with
Servlets, which I had never done before. I got a lot of momentum in studying and I decided to just keep going and get the cert. Once I got the SCWCD, I told my boss and he said, "great." That was all, conversation over, no more words of encouragement. I didn't care though, for reasons I'll go into in my last paragraph. The knowledge that studying for certs gave me is much greater than if I had just done the minimum amount of studying to be able to do my job. I also think that certifications are good for job security once you land a job because remember, you could always get laid off and then you're right back out there trying to say that you're better than the next guy/girl for the job.
Finally, a little work
philosophy. I decided a long time ago to take control of my career and not be dependent on my company to give me the perfect experiences to move up in the field. If, for example, my company never needs me to do a JSP website, I don't care. I'm going to do my own darn JSP website. I will be in charge of my own knowledge and experiences. I'll buy my own books and work on my own code. I'll be in charge of my career growth. I now know much more than I need to in order to do my job. I will continuously improve no matter what and without any encouragement. When you can go to an interview and say that and believe it, you will get hired.