I just recently passed SCJP 5.0 (81%) and I am thinking about going for the SCJD.
I don't know whether I am ready or not. Following is my related background information for Programming. Is it enough? If not, what should I do for preparation?
M.Sc in Computer Science; many years of programming experience; familiar with algorithm and design pattern; specialize in software testing and quality engineering. But new to Java. Having involved in many software projects, none of them are java technology based. [ July 26, 2006: Message edited by: Jack Lee ]
I definitely think so - I've come from a similar background, and not only is the SCJD possible with my skillset, it's also greatly adding to it (for example, I've never had to build my own database before!). As there is no time limit on the project part of the exam I would recommend buying it now and starting work straight away - you can learn necessary skills as you go along.
It sounds like you'll already have most of the architectural design skills needed for the project. Things you might need to read up on are Java concurrency - I recommend Java Threads 3rd Edition by Scott Oaks and Henry Wong - and an excellent book to get you started/identify others areas you will need to work on is "SCJD Exam with J2SE 5" by Andrew Monkhouse (who moderates this forum, so you can always ask plenty of questions )
And don't forget the ranch is an excellent place to discuss ideas!
Daniel [ July 26, 2006: Message edited by: Daniel Bryant ]
As an added bonus Henry Wong is also a barman at a few of our forums here around the ranch, so you have no excuse for not getting the threading part of the assignment sorted out. [ July 26, 2006: Message edited by: Barry Gaunt ]
I started with Java like two years ago. It took me 6 months to get ready for the SCJP and just after I passed it I decided to go for the SCJD.
Like you I had been a developer for a few years before. However, in that precise moment I was not ready for the SCJD. I knew nothing of java networking or IO and much less about Sockets or RMI.
I decided to take my time. I said to myself: I am doing this because I really like Java and I want to be good at it, no matter how long it takes.
I started to study very hard multithreading programming. I read Henry's book (which I also recommend), then I took me a while to understand Swing, after that I went for IO, I learned to use every single class, every single method in the IO package. When I felt confident I started with Sockets, both TPC and UDP. I knew I could use either sockets or RMI in SCJD, but I really wanted to understand them both and take intelligent decisions. Then I decided that I wanted to know what NIO was good for, so I took a while to study it. Finally I went for RMI. Which is, by chance, the topic in which I feel weaker.
It took me like 8 months to cover all that topics at my full satisfaction. I know, it may seem as a lot of time, but I have to do this in my spare time.
Now I have already started with the SCJD assignment and I can tell you I have really learnt a lot of thing just in the process of getting ready for it. And now that I had to roll my sleeves and start writing some useful code I feel very happy and confident that I will soon make it.
Therefore, do not stop because you do not feel ready now. Start working on the objectives, developing the skills you will need. Set a time frame for your preparation and then download the assignment and start working on it.
I do not recommend to work on the assignment until you feel that you really understand all the APIs involved in the developing of the application. But you need not to be a master of Java to develop the application. Actually, all been considered, it is fairly simple once you understand the involved technologies. And during the development process you will learn a lot and will use your knowledge in something practical.
I hope this somehow helps! [ July 26, 2006: Message edited by: Edwin Dalorzo ]
For most people the assignment is a way to learn new things as well as a way to assert (to yourself and others) that you have (or can acquire) the skills needed to create a reasonably complex system from scratch.
As others have said, take your time. Don't rush things, there's no deadline and there's plenty of reasons for that. I started about a year ago, and am still always finding things that could (should?) have been done differently and changing them. And I've been using Java professionally on a nearly fulltime basis since 1999 (and parttime since 1997).
This is not something you cram for in a few days or weeks and then pass the exam shortly after. See it as a longterm study in Java techniques and APIs with a piece of paper at the end saying you succeeded.
Joined: Jun 06, 2006
Thanks for your guys' recommendation. Very helpful