I m planning to do the SCBD and I have ordered HFEB.
Can someone suggest on how to get started with programming in EJB ? Any good books / study material?
I have tried the J2EE Tutorial, but don�t find it good enough.
To be do your SCBCD, you don't need to become a good EJB programmer. Just an understanding of the concepts should be fine. To start off with your EJB coding, you can try " Mastering EJB- by Ed Roman". You will be able to download the pdf format of the book from www.theserverside.com
Giju, this is exactly the kind of statements that really don't help people. How good is knowledge if you don't know how to apply it on concrete projects? I repeat it again and again : A certification exam is for professionals in need of a personal achievement. If you have no experience with EJBs, there is no miracle, you are going to have to get your hands in the dirt first and practice a lot. What worth is a certification paper if you have no clue as to how to apply in the real world what you have just learned. Come on guys, think about it. Software development is not something you learn in books, it's something you experience in your everyday's life. Books are there just to support you in your quest of learning new stuff. But this is only one part of the equation, the other and more important part being the practical perspective. You are never going to be able to leverage what you have learnt if you are not able to use that knowledge efficiently. There is aboslutely no added-value in reading a book and saying, "Well, now I'm EJB certified I know (theoretically) how the stuff works." That's just plain wrong. I personnally conduct many interviews and I can assure you that I can detect pretty quickly whether someone has hands-on experience or not with some trick questions.
As an anecdote, I once asked a candidate to write the main constructs of a CMP session bean. After 2 minutes, the guy drafted something and I asked him whether he had already worked with CMP session beans. He told me wonders about CMP session beans and blablabla, the story went on and on (yes, I had some spare time that day)... Finally, when I told him that there were no such thing as CMP session beans, he humbly admitted that he never wrote a single bean even though he was certified!!! This is to show you that the paper doesn't mean anything if you don't have the practice that pairs with it. All you are going to achieve with that kind of behavior is to devaluate the true value of the certification business, in clear you are favoring the quantity over the quality. This is very perverse as it doesn't serve well the technology you are studying which defeats the primary reason why you started learning it in the first place. Paradoxical, isn't it?
I don't want to sound too moralistic here, I'm really willing to help. Please make an effort and apply what you learn instead of just learning it. It is so easier to retain something in your head once you apply it than trying to find rules and stuff to remember something.
As a bottom line, there is an old Chinese saying that says it well:
"Experience without learning is better than learning without experience."
Taken my statement back...
I was just encouraging people to write the scbcd, even though they don't have experience. Well, I don't have much experience in EJB and I havn't started working that stuff. But just by studying for this exam made me more confident in EJB and to apply the skills I learnt, for the oncoming projects. And also, while studying I used to create my own beans, and do some sort of practicals as well. In that way , I learned a lot than just reading books without understanding how exactly it works.
There is still a long way for me to go... but I just consider certification as a begining .......
[ July 13, 2004: Message edited by: Giju George ]
I do agree with the chinese saying, thats the reason I would like to practice what I learn.
But even the Master EJB2 doesnt provide details on deployment, I am looking for some documents that can help in coding, packaging, deployment in any app server.
I read so many folks saying "I have not coded a single java program and yet I scored well in the certificatations" - certificates do not get you jobs. It might select you for an interview thats all - and in interviews a ( an experienced ) project manager will not ask questions right from the book - he/she will ask you real world problems, or issues they face in their projects. Will a book answer his questions? No. Had you done projects in the related area - even if you cannot address his questions or problems you can relate to a problem of your own and describe how you had handled it.
Now keep the book away and take the keyboard and mouse
The debate over Java certifications
Originally posted by Valentin Crettaz:
Something from ComputerWorld to back up my thoughts
The debate over Java certifications
Valentin the Gold Digger
There is no question to disagree with you (May be becasue you are Sheriff
, just kidding)
What is your recommendation for new graduates who are still waiting (and waiting and waiting and waiting ) for thier very first job. Do yo recommend certification for them?
Originally posted by Manzoor M:
I already setup Jboss, tomcat and eclipse with lomboz, will get going with that.
No! Don't use lomboz when you prepare for exam. Those tasks, that lomboz does for you, are just objectives from the exam. I wouldn't do that, just use ANT to build your jar, write everything by hand (home, comp. ifc, bean, dd, client).
Lomboz is ok, but not while you learn EJB and prepare for your exam.
The fact that I'm a sheriff doesn't imply that you cannot disagree with me.
What I would recomment is that you find yourself an open-source project that uses EJBs where you can participate and gain some experience. You may find plenty of open-source projects on http://www.sourceforge.net or http://community.java.net/projects. On java.net, there is also an interesting blog about Open Source in Education.
No, it doesn't mean that a certification doesn't add any value. A certification brings you a theoretical added-value that you can only leverage with pratical experience. The bottom line is that theory and practice always go hand in hand. Now one problem seems to be that the courses given by universities across the world are way to theoretical and not enough backed by practical experience. My personal opinion is that there should be one mandatory semester (or year) that every student should spend in a company during their studies. Of course, companies would have to provide more internship opportunities which might not be an easy thing to do. I think this would benefit to both the companies and the academic institutions because the former would get to let future potential employees gain industrial experience without having to pay them a full salary while the latter would attract more students given their increased credibility due to their active collaboration with companies that doing concrete things. This would be clearly a win-win situation, but things are unfortunately different. We all hope that this will change someday...
I started with Lomboz & samples so that I know how get started before I can start from scratch. Once I get a feel, then I m going to start coding from scratch.
I have over 4 years of experience on Java & Web applications and its about time I catch up with EJB and I m sure to be posting questions on EJB as I get into the deatils. I got my HFEB book today.
May I suggest something? HFEJB is no doubt a very good but if you are interested in working code examples then I would suggest "Mastering Enterprise Java Beans 2.0 by Ed Roman". This book can be downloaded free from www.theserverside.com
HFEJB is a nice book and aimed straight for certification exam and it has very few working code examples. If you can write your own working code by following the concepts then it should be fine also.
I have gone through HFEJB and now I feel that I really need to go through some coding and do some practice before I wirte exam.
Originally posted by Valentin Crettaz:
How good is knowledge if you don't know how to apply it on concrete projects?
I think THIS is the kind of statement that really don't help people. The inmedaite response to your post was "Does this mean that Certifications doesnt add any value?". Isn't THAT perverse and paradoxical? Is YOUR behavior serving well the technology and the certification business? Aren't you just putting people off?
You are looking at certifications only from your point of view, but there are many different scenarios in which people might want to get certified.
Say a student smart enough to realise certifications might help her later on. She won't be able to apply what she learns right now and she might never get a job in EJB in her life! Was the certification a waste of time? Shouldn't have done it because she is not a professional? I don't think so. As you say, don't look at just the paper you get, but the actual process of getting it. There are many things you discover, many things you learn while preparing for a certification. You expand your knowledge, you grow, you open your mind to different ways of doing things and that's ALWAYS beneficial.
You say certs are a personal achievement. I agree, that's what they are: you want to get certified, you study hard, you learn heaps, you achieve a goal and you feel good. End of story. That has nothing to do with getting your hands dirty. If you have the chance to do it that's great, but that might not always be the case.
Take me as another example. I'm studying for this cert although there's nothing telling me I'll be working on EJB anytime soon. I've been doing Microsoft developemnt for the past 2 1/2 years and already know I'll keep doing that for at least another year. As time goes by it's harder and harder for me to get jobs on Java (cos I haven't been using it) and maybe I'll never have practical experience on the stuff I learn here. Does it mean I'm banned from getting certified on Java? Does it mean there's nothing I can learn in this process that will be good for me?
The motivation for getting certified *should* be precisely the knowledge you gain, the process of learning itself. What happens after that is something you probably can't control and you shouldn't even think about it. Will I get a job on this stuff? Will I ever use this in the real world? Will I get a salary raise? Just study, learn, enjoy, get certified and be happy. The rest is, forgive me, rubbish.
"There is much pleasure to be gained from useless knowledge"
[ July 17, 2004: Message edited by: Lionel Orellana ]
I think you misinterpreted what I wrote, or maybe I did not make a good job of communicating my message. But allow me to tell you that the way you started your answer is really not constructive at all. If you ask me (I know you won't ), I would get rid of the first paragraph in its entirety because it really doesn't bring much except unsubstantial and unfounded critics.
To the benefit of all readers and to make you happy, I'm going to give you some answers to your post:
I'm NOT looking at certifications only from my point of view otherwise I would not have committed myself to Javaranch for the past 3 or so years, I have plenty of other things to do and my schedule recurrently needs twice as more hours as one day and one night can offer me. My goal is to help people learn Java. I completely agree that there are different scenarios around who may benefit from certifications.
Learning something is never a waste of time. The thing is that certification exams do not pursue that goal. A certification is not for learning, it's for assessing one's knowledge. If some student wants to learn Java there are plenty of courses out there in academia or otherwise. There are plenty of mock exams, tests, books, etc, on the Java language.
You have to distinguish between learning a technology and assessing someone's expertise in that technology. Schools, books, courses, tutorials, etc, fulfill the first goal. Certifications aim at serving the second goal. You don't learn the Java language by getting certified. Sun says it itself on their website, "SCJP certification exam is for programmers experienced in using the basic syntax and structure of the Java programming language". And this is not my point of view about certifications, this is the point of view of many un/certified professionals I personally know. The main problem with certifications is that people think that getting certified will help them get a better job which is flat out wrong. Just browse a little bit and you'll see that people don't get a better job just because they have one more line on their resume. What really counts is experience. And I don't say that certification aspirants are wrong, just that the way certification exams are done by Sun and other big corporations are not appropriate for the official goals they would like to achieve. This is where we might both agree because my goal is not to put people off but just to let people learn what they want to learn using an appropriate learning path. Letting unexperienced people go for a certification is not an appropriate learning path. By certifying people with multiple-choice questions, the only thing Sun & Co will achieve is merely an evangelization of their technology (which seems to be the real unstated official goal), they are clearly favoring quantity over quality and this can only devaluate the technology. A recent Gartner study showed that only 32% of the 2.5 million Java developers in the world have genuine knowledge. This means that one of three so called Java developer doesn't deserve to be called as such. Those exams do not produce quality Java developers. The only certification exams that make sense are the ones like SCJD and SCEA where people actually have to write some code and producing something they can see run. To me, these are the only exams where you can actually show your value and make a difference, they are the only certifications that deserve their name because if done properly they really show whether you should be certified or not because you get to show whether you know how to apply the knowledge you have gained. There is such a huge gap between theory and practice. There is a normal study flow that people have to go through. Nowadays, too many people want to bypass the "get-some-experience" phase and flood the job market in search of senior level positions. I mean, come on, get real...
Think about a job recruiter. Imagine how tough it is for him/her to assess the value of a certification if s/he gets to know that even unexperienced people can get certified. This completely defeats the goal of getting certified in the first place. Personally, I get to lead technical interviews in my company and after all I have seen about certifications the past four years, I don't make a difference anymore between certified and uncertified people because I need people who know what they are talking about. I don't need people who talk like books. We are recruting junior programmers but we are very selective and we only hire the ones who show the biggest commitment when it comes to learning new things and I can tell you that they do not represent the majority of freshly graduated software engineers.
[ July 19, 2004: Message edited by: Valentin Crettaz ]
I do believe your post was a bit harsh and doesn't help people in my situation or something similar where you don't have the experience in say EJB and still want to get certified. Certifications motivate me to study and learn something. It's not the same just to get a book and study it for the sake of it. If I study to get certified I have a goal and that motivates me. There are circumstances in which a course or a degree are not an option but you still want to learn. I want to learn EJB and J2EE because it's appealing to me but none will give me a job on this cos I don't have 3-4 years experience in it. If your first commercial experience is with Microsoft your next job will likely be in Microsoft too and the next one and the next one. Why should your first experience seal your fate as a professional? Nothing wrong with knowing .Net and have experience with that, but I want to learn J2EE too. Maybe certifications were not initialy meant to be a learning path but they are being used that way by many people, me included. You create something new, you expect people to use it in a certain way but they find it useful for something different too. Maybe the industry should recognise and accept this and change the perception of certifications according to their use instead of the initial idea behind them. Experience with one technology might give you a good background to get certified in a different techonology with a bit of study. I might not have enough experience with J2EE but I'm sure I can pick it up fairly quickly. What company is going to take the risk though? If you can't say you have 3 years with it they'll go to the next resume. Only recent graduates are given that chance. I got my degree 3 years ago and my last job search showed me it was almost impossible to get a job in something other than what I've done for those 3 years. It's not going to be any different as time goes by. Given I want to know other technologies, I'm just going to study and get certified in those technologies ...
I just think people should be encouraged to get certified no matter they working situation ... there's a lot to be gained from the process ... of course I'm no expert but that's what I think ...
[ July 19, 2004: Message edited by: Lionel Orellana ]
I do believe your post was a bit harsh
Who said everything had to go smoothly?
and doesn't help people in my situation or something similar where you don't have the experience in say EJB and still want to get certified.
Of course, everyone is free. I never said that unexperienced people had not the right to get certified, just that the certification alone won't help them get a job and that it is not the intended goal of certifications in the first place.
Certifications motivate me to study and learn something.
And I won't prevent you from learning if that's how you feel. Don't worry...
Maybe certifications were not initialy meant to be a learning path but they are being used that way by many people, me included.
This is exactly what I would like to (try to) demystify. Too many people wrongly see a certification as the ultimate passport to paradise. My wish is to make them understand that this is not the proper way to think about certifications.
Maybe the industry should recognise and accept this and change the perception of certifications according to their use instead of the initial idea behind them.
That's true, but the problem is that too many companies have been misled, disappointed and deceived by the "experience" level of a majority of certified programmers, and now, the job market is paying the price. It is almost impossible for junior programmers to find jobs...
I think there should be two kinds of certifications, junior and senior ones. That way we would be able to better classify people, not to discriminate them but to give them an appropriate job. Personally, that's how I do in my everyday's job when I get to interview people. Ideally, I ask the person to spend a day with us (or at least half a day) and I give him/her pico-projects they can reasonably design and implement in the given time (sort of SCJD in one day). Then, I can see how the person does the job and decide what kind of projects (or part thereof) I can assign to him/her. It is all about compromise, we don't give the chance only to seniors, but we really want to educate junior programmers.
I might not have enough experience with J2EE but I'm sure I can pick it up fairly quickly. What company is going to take the risk though? If you can't say you have 3 years with it they'll go to the next resume.
This is interesting. I admit that if *you* feel like you can pick up quickly with a new technology because you have gained real-world experienced with some other technology (in your case .NET), it makes sense to get certified. The key here is the experience you already have, no matter whether you have worked with .NET or CORBA or whatever, the concepts are the same, the only differences lie in the way things are implemented and specified. You have already worked on real-world projects and you know that it doesn't always go as smoothly as described in books or course lectures. If you have worked 2-3 years with .NET, it means you are experienced and you are confident that you can pick up because it is your job as a software engineer to be able to adapt to new technologies.
[ July 20, 2004: Message edited by: Valentin Crettaz ]
Agreed. I already said getting a new job or a salary raise is the wrong motivation to get certified cause it just won't happen (in most cases anyway). The motivation, the way I see things, should be LEARNING. Besides the learning experience (even if you had prior commercial experience you'll learn something) certifcations help you in shaping a personal profile. You can say "I want to be the greatest developer ever, I know I am not there yet but I will!" and the next question will be "what are you doing to achieve that?". If you answer "I have this and that certification and am planning to get these other ones this year, together with some courses, my previuos experience and the experience I get in your company" I think you'll be in pretty good shape ... certifications will help you define yourself and THAT could be your tickect to paradise ...
But it's a long-term thing. Anyone expecting great things from the SCJP alone is wrong, but you have to start somewhere ...
I think there should be two kinds of certifications, junior and senior ones
In a way that's how it works now. The way Sun's certifications (Microsoft's too for that matter) are structured you could say some are for junior and some for senior level. I see SCJP, SCWCD and SCBCD as an entry point and then you move to SCEA (to mention a path). Someone with SCEA must definetly have experience. If you are telling me there's people out there with SCEA who have no experience whatsoever then I'll join you and yell out "that's wrong!!" ...
the concepts are the same, the only differences lie in the way things are implemented and specified.
Exactly my point!!!
You have already worked on real-world projects and you know that it doesn't always go as smoothly as described in books or course lectures.
Now that's something almost impossible to measure. Even the SCEA and SCJD won't prove anything in that regard (I haven't done any of them so I'm only talking based on what I can gather). But are these certifications supposed to asses that kind of things? I don't think so. I mean, even if they were then you would need some sort of psychological test to find out how the person will react under stress or how they handle conflicts and how good their commucations skills are ... the list is endless and it's not realistic to expect certifications to cover these kind of things. My point here is certifications like SCBCD only assess knowledge and you can get it simply by studing even if you don't have experience. Maybe you're not meant to, but you can. That doesn't mean people is using certifications the wrong way. It might suggest *recruiters* are looking at certifications the wrong way. If as a recruiter you (understandably) need more to hire someone then you have to do some additional tests, interviews or whatever, as you are doing now.
I don't think there will ever be a certification or a degree or anything of that sort that will make it possible for recruiters to make a decision based on it ... Who said everything had to go smoothly?
Actually, there is no prerequisite for SCEA, which means you can tackle the SCEA exam without even being SCJP certified.
If you are telling me there's people out there with SCEA who have no experience whatsoever then I'll join you and yell out "that's wrong!!"
Given what I said above, there might be some, but only a few
Even the SCEA and SCJD won't prove anything in that regard (I haven't done any of them so I'm only talking based on what I can gather). But are these certifications supposed to asses that kind of things? I don't think so. I mean, even if they were then you would need some sort of psychological test to find out how the person will react under stress or how they handle conflicts and how good their commucations skills are ... the list is endless and it's not realistic to expect certifications to cover these kind of things.
Absolutely, SCEA and SCJD does not assess those kinds of things since their goal is to evaluate the technical knowledge of the exam taker and not his ability to work in a team or to communicate properly, etc.
It might suggest *recruiters* are looking at certifications the wrong way.
Right, but recruiters might have developed this defensive behavior because they have been cheated too many times by people who were using their certificate as a "proof of experience"... It's probably not the majority of people who did that but some sure behaved that way...
Anyway, I'm glad to see that the discussion has brought something and that we were able to discover some intersections on our thinking path
I have finished reading HF-EJB and I understand the concepts, but I never wrote 1 single bean in my life before. Having said that, I really do wish to spend some time writing applications, but I do not know where to start. Having no prior experience with EJB, and myself still as a student, I do not know of any places to give me a real life Application solution, so I can refer and re-build it step by step.
Originally posted by Manzoor M:
Does this mean that Certifications doesnt add any value ?
Are you joking? The certification adds an ENORMOUS value, but was Valentine was saying (Val, correct me if I am wrong), is that it gives you that value if you USE the certification to improve your professional skills. The certification can really make the difference between you and someone else in your working environment who doesn't know the subject at a level you need in order to pass the exam.
I'll try to be bried and make a couple of examples:
1) Someone told me that we didn't know to manage transactions from within our EJBs because these were already managed.
My point is: ok, what if our bean throws a checked exception? You can forget that your method is running under a transaction, if you expected this to be rolled back, because the container doesn't roll back transactions just because you threw a checked exception. You need to invoke setRollbackOnly() before rethrowing that exception (and on the 'rethrowing' thing I could open another issue);
2) Someone in your office writes EJBs using XDoclet, without knowing what actually goes in the deployment descriptor (maybe because she just copied a previous EJB from someone else, she knows that at the end, by magic, the DD gets written, and she will continue using it).
My point is: what if you need a particular behaviour in your DD? For instance, you are deploying an EJB for another company (you're selling it). You need to inform the application assembler and the bean deployer about some made-up names you use in your bean (for instance to get a Resource Manager Connection Reference). The person in your company probably doesn't even know the tag to use in the DD and probably she will opt to choose something else. But you, you who know that you require the resource-ref element in your DD, and know WHERE to put it, then you will start wondering whether XDoclet has got a tag (and it certainly it will have one) to produce automatically what you need in your DD.
Hope to have contributed to the discussion.
I think the EBJ certificate is valuable, and I also think the experience is too. On the other hand, the flip sides could be true too. The key point is "whatever works for you!". Some people get lucky starting with a Java job and learn all the trades getting paid, while some unlucky ones have to prove that they are good programmers by going thru the certification paying from their own pocket. There is nothing wrong of choosing whatever the way to achieve your goal. Seriously, there is no set formula of how to get thru our life, as long as you take one step at a time. Therefore, I don't quite understand the debates here.
But, unless we are talking about pure geniuses (and in this case there is no need for certification, is it?, and those kind of people are a rare minority), I really believe that any certification gives something more than pure experience. I think the experience could gain real advantage from a theoretical structure behind it, simply because...with the certification, people who already know how a system works, let you see things that, perhaps, you wouldn't see by yourself, at least not in as short as time.
I'm talking for personal experience here. I saw the difference in the way I was writing software before and after the SCJP certification, and I must say that I really felt the benefit of taking the certification.
That's the reason I'm going for the SCBCD. I wanted to improve the way I write J2EE applications, and believe me, I'm already seeing the benefits just because I'm studying for the exam, even if I am not certified yet.
Originally posted by Valentin Crettaz:
What I would recomment is that you find yourself an open-source project that uses EJBs where you can participate and gain some experience..
Originally posted by Jay Shin:
How much a college student can contribute to major open-source projects? I doubt most college students who don't have real industry experience can contribute much to these projects. Maybe just simple testing and finding bugs and sending bug report e-mail to the original author (things like click, click, click to see if all the links are valid)
I've seen many job candidates exaggerating/lying about their experience with open-source projects.
Yes, it's fine to play around with those open-source softwares. It's great learning experience for college students.
I've also seen exceptionally bright young students who already developed significant open-source softwares while in their college years -- these are hard to find though.
[ September 06, 2004: Message edited by: Alfred Harre ]