Best Approaches for J2EE Certification?
facetiousprogrammer writes "I have been working for several years at the same company. As part of the 2007 goal, my team is required to get the Brainbench J2EE certification. We have a good knowledge of the Java programming language itself but very little exposure to J2EE. Other teams in the company are using J2EE daily — hence the push for certification. What would be the best approach to be successful in getting the J2EE certification knowing that we won't work or get formal training on J2EE? Is it a desperate cause?"
While I'm a fan of brainbench, I have to say that getting certified is of dubious value. We've been interviewing for a while and there is almost zero correlation between school, certification, and ability. If anything, there is almost a negative correlation between certification and ability. It's as if people who don't know what they are doing get a certification to offset that minor problem.
The book that helped make it clear to me (in spite of the at-first-simplistic style) is Head First Servlets and JSP by Basham, Sierra and Bates. The book makes a specific point of highlighting what will (and won't) be on the J2EE certification.
TBH, you either love or hate the Head First books.
Doug
Why not get a Sun Certified Business Component Developer Certification instead?
Is it a desperate cause?
Yes.
... Brainbench was free. I don't know what the deal with it is at all now, but I got a ton certifications from them in things I barely knew anything about. Even put them on the resume for the first job I got in college. Good times.
If it's still that way, I would say you could -- at worst -- pick up a book and ace the thing.
Game... blouses.
I agree. A Sun certification for Java makes far more sense than a Brainbench certification.
GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
Er, get a new job? A company that cares about certification, especially in a technology that you're not even using, doesn't sound like a good one to work for. And I'm not sure certification will be good for your career. When I see it on a resume, my first thought isn't "Wow, here's an expert!"; it's "Why did this person need to get certification?" For J2EE in particular, I suspect certification is going to involve technologies like EJBs and JSF that aren't all that useful or popular anyway, at least in the companies where I've worked.
Illustrative annecdote:
Recently I had to work with a very bright Comp Sci graduate of a prestigious Ivy League school. He did well in the interview and professed to know Ruby, Lisp and Perl in addition to Java (which had been "coding since version 1.1"). He knew enough about OOP and patterns to sound like a Java expert and so we hired him. For his first project (a web application) he wrote the following bit of code: When I asked him why he had used a String constant for true, he patiently explained that Java didn't have object versions of its primitives(!).
I've seen this one from multiple un-certified Java programmers: what if getInvoiceDate() returns null? This is fine as long as your functional spec allows "null" as a valid value for output. Ours didn't. Oops!
On large projects you don't have time to make every code review an impromptu "Java basics" tutorial. Knowing your team members have a Java Certification that guarantees they're not spending hours learning how to use (or re-implementing!) Integer, StringBuffer and HashMap. This can add a comfort level that makes a big difference in terms of team productivity.
Personally, if you claim to have a comp sci degree, then you should have at least moderate to expert knowledge of at least one major, industry-used programming language when you graduate. It should be enough to get you through the door at some company. Then, after you get your feet wet, make the case that it would be beneficial to the company to send you to Sun J2EE training where you can get the expensive certs for free.
I see these Sun certs as a way of keeping up to date on the most recent technology being used, and not as a full-fledged education that will land you a job after you are done.
I got nothin'
Er, get a new job? A company that cares about certification, especially in a technology that you're not even using, doesn't sound like a good one to work for.
It depends. If they do a lot of work that touches on what the other developers at the company (who, apparently, do use a lot of J2EE) do, it might well make sense to get those developers more familiar with the basic architecture and terms that the others are using.
Potentially, it could bring more opportunities for the teams to collaborate, or for developers to switch teams if they want to. These aren't necessarily bad things.
I'm not sure certification will be good for your career. When I see it on a resume, my first thought isn't "Wow, here's an expert!"; it's "Why did this person need to get certification?"
Honestly, both of those first thoughts are wrong.
A better answer is to accept certification for what it is, and not try to make more or less of it than that. It's a reasonably good assurance that the person has been exposed to the basics of what the cert is supposed to cover and has some knowledge of the tools or technologies involved.
It's not the sign of an expert programmer (something I'd say is very hard to discern from a resume or even an interview period) and it's not the sign of a bozo with no useful experience or skills, either. I've worked with my fair share of people who were, generally, smart programmers but who also spent weeks reinventing the wheel because they had no idea that the language/framework/tool they were using had a feature which dramatically simplified the problem. The kind of knowledge you accrue getting a cert doesn't make you a great programmer, but it does cut down on that kind of lost time a great deal. Better to know what the established answer is and, if necessary, be able to reject it for the purposes of the problem you're trying to solve from an educated viewpoint, than to reject it by default by not knowing at all. Sure, a programmer could rigorously study all the available features and libraries of a new language they're starting to use and gain this knowledge without attempting to learn it from a cert, but my experience is that people generally don't.
The shop I work at used to recruit techs from the local vocational "school". You've seen the sort advertising on your local commercials. It was a disaster. The best {and worst} case was some poor shlub who not only graduated their "Computer Repair Specialist" training, but had somehow managed to score a CompTia A+ certification the school also offered. I'd considered getting A+'d in the past until he came in to work his first day. As service manager, I need to find out what they know pretty quick, and so I started with the basics. "Could ya point out the motherboard?" I asked him, pointing at a PC on the bench. He looked back at me, blinked, and pointed at the case. I blinked back, and thinking I'd misspoken said, "No, not the case, the motherboard. Y'know, the part where the CPU plugs in..." He looked back at me, blinked again, and pointed at the case. Yeech. He also couldn't identify ONE port successfully on a standard ATX backplate, nor could he perform any task at a command prompt. When the new owner bought the company, he wisely ended the practice of getting interns from that "educational facility".
Lesson: Certifications are almost useless as long as "Pay-To-Pass" schools and classes exist.
Don't tell me to get a life. I'm a gamer; I have LOTS of lives!
If anything, there is almost a negative correlation between certification and ability. It's as if people who don't know what they are doing get a certification to offset that minor problem.
Surely that would depend on what certification you are talking about? If someone gets a high score in, for example, the Sun Certified Java Programmer exam, then you at least know that they are familiar with many of the intricacies of the Java language, and a SCJD qualification means that they have written a networked Java system that has been gone through line-by-line by an examiner at Sun. No qualification is a rubber-stamp guarantee that someone will be a good fit for a job, but it can help narrow down the things you need to check for.
I wholeheartedly agree. If I get a CV (resume) in that has the certifications at the top above the experience, it goes in the bin. If they're at the end, then I'll carry on reading. It's all about emphasis. Any candidate that emphasises their certification is always hiding something about their ability in my experience. This isn't just a knee-jerk reaction either, it's definitely a trend I've gradually noticed over the years.
Bob
Listen to my latest album here
If a goal for 2007 is for the all the team to get brainbench certification, then it might be a good idea. Some team work and co-ordination is involved. You all could organise for regular training sessions supplemented by practical examples. Your organisation and the persons in your team can't lose by that. end
When the MCSE tests started getting popular in late 98, early 99 - I worked at an ISP and started getting all kinds of idiots that said after our initial thank you for calling..., and I quote(yes, MANY said this): "I'm an MCSE, don't treat me like a baby/idiot, I know what I'm doing. I can connect, but I cant get websites." Anyone with a twig of knowledge about networking should immediately think DNS settings... Well, here's how we handled these bright people:
"Go to your connectoid DNS settings and read them to me."
That was usually met with about a full minute of silence with the person madly clicking everywhere they could. They would occasionally make it into the TCP/IP DNS settings and read off whatever they had there. In this situation, with the countless people I did that to, I never had one actually make it to the DUN Connectoid DNS settings without me helping them.
Unfortunately, this left a bad taste in my mouth and I made up my mind: Businesses would rather care about experience than certifications... Bzzzzt - wrong. 7/8 years later (due to various issues), I'm finally getting a chance to work on my certs. If I had to do it all over again, I would have taken the MCSE while I was a tech and moved on from there. I still don't really support them, but you really do need them if you want to move up in the world.
But, to comment on Brainbench - I can't stand it. When did Brainbench become the de facto standard for all the knowledge of the world? Pardon my opinion, but I think its extremely unprofessional to put Brainbench scores on a resume...
Get the name right.
It is called Java Enterprise Edition now!
Java EE for short.
As someone with SCJP and SCWCD certs, I agree :). Many times at work I've used the knowledge gained from studying for the certifications. I know some people can pick up a technical book and read it from cover to cover just for the knowledge it contains, but unfortunately I am not one of them. I need something like the certification examinations to force me to study, otherwise I just end up using the books as on-demand references for "how should I do this particular thing" which usually leaves gaping wholes in knowledge of the technology.
Date date = getInvoiceDate();
String output = ""+amt;
And yet, I still don't see the problem with this code. Did you mean to type "date" instead of "amt"?
My guess is amt was defined as an Integer vs int so amt could have a Null value. Thus output might = "null" which is probably not intended.
PS: "" + amt is also vary slow
It sounds like the problem lies in your interviewing process and particularly your bullshit detector. A real expert can sniff out faux "experts" with little effort. In your defense, it sounds like you may not have personally interviewed this guy. If you did, work on your interview questions. Ask candidates things that can only be learned through experience. Most people will bullshit at great length on high-level concepts, impressing management, but will fall apart at the smallest test of real-world coding skills. Have them write some illustrative code for you--it's their job, and it's not too much to ask.
And this is what they're getting with degreed hirees? lol.
Since you say you have no experience, I would recommend two parts: First, go to my Free Java Lectures website: (no ads or any other crap) http://curmudgeon99.googlepages.com/ And use them to learn J2EE fast (the later lectures are most of J2EE) Then, build yourself at least one complex application that includes a webapp, JDBC using a DataSource and possibly even Stateless Session beans (sorry no lecture from me on EJB) The act of doing a project will fix in your mind what you have learned from my Free Java Lectures. Then, get yourself a book on the certification and bone up on all the gotchas. Good luck!
I have most of the Sun Java J2EE developer stack (just missing web services) and I'll be the first to admit that I'm a mid-level J2EE developer. The cert just says you understand the concepts, but in the real world you'll need to deal with numerous third-party libraries and their interactions, plus volumes of legacy code written by people who DIDN't understand the concepts. And that's before you get into how the party line is sometimes crap -- nobody voluntarily uses EJB but that's all the "business components" cert covers.
However I still recommend going for a Sun cert (or any other hard cert) for one simple reason. It forces you to become competent in all areas. When preparing for every cert I've discovered major gaps in my knowledge. I'm still weak in those areas, but now know enough to know how to ask intelligent questions so I can learn more.
For every complex problem there is an answer that is clear, simple, and wrong. -- H L Mencken
Agreed - I've learned through these last few experiences to do my own mini-tech interview for appplicants that claim to know Java. Instead of having them write code, I show them some particularly ugly Java code (taken from real examples I've encountered) and ask them how they would refactor it and what bugs they can find. Works just about as well, especially since most of our projects involve maintanence, not new applications.
When Brainbench started it's business I got "spam" from them to register me and let em get certificated. I assume they mined e.g. Slashdot for email addresses. For the registration you could do one free certification. So I did a C++ certification just for fun. That must have been in the time around 1998/1999, but I'm not sure.
;D as they did not give an overview at that time.
... so I'm quite confident I have a broad understanding and a valuable experiance in C++ programming. The test on the other hand was extrem shallow, and in my eyes in many questions simply wrong.
the certification consisted off about 30 multiple choice questions. At least 10 questions where either:
a) so stupid you did not understand what the matter of the question was
b) missleading questions or one or more missleading answers (wich where correct in the sense of the words, but utterly missleading if you thought over them)
c) all answers where wrong
d) many questions did not ask anything important
Wording (and errors) of the questions indicated that the auther of the test was from east europe
Bottom line I misserabely failed the certification. I got not told which questions they considered me having answered wrong. I had noted all questions with flaws and mailed them to them, but never got an answer. I don't even know if I had 3 answers wrong or 10
Well, I consider myself (at that time) as C++ expert. I worked with varius C++ implementations since 1991/1992, and wrote till 2001 roughly 950k lines of code in C++, partly assisted with my self written generators, so the raw number is less. Anyway if anyone had a problem in C++ they asked me
angel'o'sphere
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
(BTW - he initialized the String to "" to because he didn't like that bothersome "local variable might not have been initialized" error)
For the skeptical Comp Sci grads reading this, here is the decompiled bytecode (courtesy dis) for concatenation loop: By the way, the better performing solution in Java 5 is to re-use a StringBuilder stored in a ThreadLocal.
I don't know about the Brainbench tests, but I know the Java certification tests from Sun (I did SCJP 5.0 last year, currently, I'm preparing for SCWCD, and I also also read preparation books for SCBCD).
Overall, I have a relatively good impression about these tests. I would say that there are hardly any questions that are so stupid that you cannot understand what the matter of the question is. But misleading questions are definitely quite frequent. I think typically when you do mock exams in an early stage of the preparation, the main reason for wrong answers is not that you don't know the answer (though there's quite a lot you have to learn by heart, as well), but that you thought the question was mainly about one issue, but if you had looked more closely, you would have seen that another issue was what really mattered for the answer.
I think that is part of the concept of such multiple choice tests. Therefore, I think, it can legitimately be the case that someone is experienced and good at programming in a language, but doesn't do well in such an exam - the exam just doesn't test what you normally use, you don't usually see so many misleading cases. For achieving a good result in such exams it is almost a necessity to use mock exams and preparation books even if you are an experienced developer in order to see where the pitfalls are.
So, I would say that the fact that someone didn't achieve a good result in such an exam does not mean that he or she is not a good developer. On the other hand, this does not mean that the exams are worthless, either; the additional knowledge and abilities gained by preparing for the exam can be useful, and a good result shows that someone has some in-depth knowledge in a standardized range of areas (not everything that is needed, but also things not everyone has used, but which may be useful).
I've been interviewing Java EE experts for Java EE architect roles lately, and I'm getting these self-styled Java EE "experts" who can't even tell me what an EJB is.
I don't want to get into a holy war about whether or not people like EJB, but if you are a Java EE expert, then you better be able to at least tell me what one is, the different types, etc. If you don't like em, tell me why you don't like 'em... that's fine. But you better know what one is.
</rant>
They don't grade fathers, but if your daughter's a stripper, you fucked up. --Chris Rock
Heh, yeah, though I prefer to use DJ Java Decompiler (good old free 3.6.6 version before they added all the spywarelike crap)
t oString();
private String buildMessage(List list)
{
String msg = "";
for(Iterator iterator = list.iterator(); iterator.hasNext();)
{
String item = (String)iterator.next();
msg = (new StringBuilder(String.valueOf(msg))).append(item).
}
return msg;
}
I'll take that bait. I had tried to write up a lecture for EJBs but they were so goofy--especially the original version--that I abandoned trying to teach them. You can't do a class on EJBs unless you do all of them and CMP beans were a mess. EJBs: Stateless session beans (useful in SOA, and for that I recommend them highly). Stateful session beans (never used them, can't imagine needing them. Smacks of poor design.) CMP--began to use these once at HP but had to abandon them. Was stuck on an WebLogic 5.1 and so was stuck on the OLD EJB standard. Nightmare. BMP--was forced to use them at HP to resolve the aforementioned problem. Prefer Hibernate to any of that CMP crap.
Like I said, you don't have to like them. But you'd better know what they are if you are calling yourself a Java EE expert. Last I checked, EJB is a pretty big part of the Java EE spec.
The reason I responded to you to begin with was my amusement at a "J2EE course" that didn't include anything on EJBs. The amusement comes from people who wrote a few JSPs and since JSP is part of Java EE, they are suddenly experts on Java EE.
They don't grade fathers, but if your daughter's a stripper, you fucked up. --Chris Rock
Tell me about it - I am so tired of the bias against the self educated. I read all of "Open Heart Surgery for Dummies" and the hospital still keeps telling me to get out of the OR.
Proud neuron in the Slashdot hivemind since 2002.
I don't know if you have ever tried to create a course that is taught in a university setting, but it takes a tremendous amount of work. Each of those lectures has at least 60 hours of work in the planning, creation and tweaking phases. As you well know, the EJB standard is huge. I cannot do a lecture that is half assed, okay? I just have not gotten around to completing the one on EJBs. I have the session beans part long done but the CMP part of the spec is so detailed, I just have not had time to finish it. I know the standard around slashdot is ridicule and negativity. I would not expect anything else. However, according to www.statcounter.com, my http://curmudgeon99.googlepages.com/ gets an average of 50 hits a day, many of those hits are people who stay on the site for up to 12 hours at a time--a few up to 29 hours! They come from all over the world and I get an overwhelmingly positive response to it. So, although you may get your jollies by ridiculing it because it lacks a lecture on EJB, that really is not the point. Google the site and you'll see there are lauding appraisals from all over the place, even in a variety of non-English sites such as French and even Arabic websites. They all say variants of "this is not to be missed." Therefore, have your laughs. The site is proving very valuable to a great many people and I have nothing to apoligise for.
Yeah, because, you know, writing a CRUD application and Open Heart Surgery are so similar.
Despite the flaw of lacking a lecture on EJBs, the usage of that Free Java Lectures sight is through the roof. In January 2007 alone, here are the stats: Total hits this month: 748 Total hits yesterday: 71 Total hits today: 97 More importantly, people are not just hitting and running. They are doing something very rare on the web: staying for long times: 97 hits today, some of the longer visitors. 8 hours 41 mins 0 secs Poland 8 mins 38 secs Tennessee 15 mins 4 secs Canada 3 hours 23 mins 3 secs Istanbul Turkey 9 hours 22 mins 39 secs New York, Westbury 1 hour 24 mins 28 secs Ohio, Columbus 1 hour 36 mins 33 secs Pennsylvannia 58 mins 8 secs North Carolina 17 mins 43 secs Texas Fort Worth 13 mins 7 secs Etela-suomen Laani, Helsinki, Finland
Folks, Popularity has its price. Google has temporarily shut down my "Free Java Lectures" website due to popularity. Should be fixed in a few days. By the way, that website is now listed as having a google page ranking of 6/10. I guess that means free stuff is always valued. Anybody wants the content while the page is shut down, just email me and I will send you a zip of all the content on the site. --Tom