Hi!
First of all I want to say that I really enjoy reading in this forum and appreciate the prompt and patient replies. While I haven't exactly been active here I have been studying the threads and especially Roberto Perillo's paper to get an impression of the
SCJD respectively OCMJD before taking on it. I have also been reading Andrew Monkhouse's and Terry Camerlengo's book about the exam and after I have written a RMI based J2SE server component for a complex application at work I can say I'm feeling ready for the exam.
I have a few general questions about the exam and would like to have your opinions about them. I didn't want to open three separate threads at once so I hope it's fine if I put them all in one
thread. I do expect anyway that they can be answered very briefly.
1.) Which
Java version should/can I use?
I was really confused when I read the following in my instructions about the java platform in the assignment: "that platform must not have been superseded by a new production version for more than 18 months". The assignment voucher I purchased at Oracle was titled "Java SE 6 Developer Certified Master Assignment 1Z0-855" ( link:
https://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=653&get_params=p_id:153 *have a look at the bottom if you want to use this link* ). At wikipedia, I read the (hopefully correct) update history of Java SE 6 versions and it states that the final public update for Java SE 6, which was Java SE 6 Update 45, was released on 2013-04-16. That is more than 18 months ago already. I really don't mind using Java SE 7 but that contradicts the product I've bought from Oracle and I don't want to get an instant exam fail because of a misleading description by Oracle.
2.) Should I enrich the provided DBAccess with javadoc?
There are two statements I find contradictory in my instructions and since both are must requirements I believe I could again get an instant fail because of a misleading description by Oracle. a.) "Your data access class [...] must implement the following interface [DBAccess]". b.)"javadoc style comments must be used for each element of the public interface of each class."
The interface provided must be used, hence I'd rather copy it one to one in the respective package. However it does not contain javadoc but I must use javadoc for each interface in my assignment. Technically though this interface is not written by me and if I edit it even by removing existing comments and replacing them by javadoc comments it is not the provided interface anymore but something changed by me. I wonder why Oracle did not simply use javadoc in this interface or make a clear statement whether I should correct their interface in my assignment or not. Should I touch the DBAccess interface to add javadoc? Should I leave the descriptions as they are or should I add common tags (param, throws etc.), thus using my one wording to describe the methods in the interface provided by Oracle?
3.) Booking
This is a functional aspect and one with a potentially big impact on the behaviour of the application. I understand that Oracle wants to simulate "real life situations" and leave some things unclear. However in real life there is usually a kick off meeting for projects and (depending on the size of the project) workshops. Based on what I read in my instructions I would just implement a "book" option which would set the booking customer in the respective field for the respective contractor. This means the record is booked indefinitely unless someone edits the database file (manually or by another process/program). There is again some wording by Oracle that confuses me. That might be though because English is not my native language, so I hope you can clarify it: "The number of workers available when this record is booked" - So what does this field contain when the record is not booked? Is this a hint that multiple customers can book the contractor at the same time and this field indicates how many workers are still available for further bookings? This does not fit with the owner field though which only has space for one customer. Or is it only the number of workers the customer will get (whether they want or not) when they book the contractor? How does that make sense when a contractor who could do the work required has 20 workers and the customer only wants 2? Do they have to take all 20 or say okay let's wait for a smaller contractor to be available. That would be very inflexible and probably bad for business for the larger contractor if no customer requires the exact amount of workers available by the contractor. Independent from that: What about "unbooking"? What if a booking is cancelled, was done by mistake by the CSR or the work is done? I see no
word about that in the instructions. Shouldn't the booking be based on a date or time range? Is there a process that regularly removes bookings from the database so that they are available again? In a real life situation I'd clear this up before starting to implement this part of the application. Often enough I had situations that customers didn't think everything through, forgot important business cases or use cases or weren't even clear about certain aspects among themselves (I had workshops in which the representatives of the customer debated for hours how they actually wanted the feature to be which they could have simple done in an internal meeting without involving me). I understand if Oracle leaves this feature out because it would add too much complexity but can't they then just state "For the sake of complexity you might assume that bookings are closed by another process directly working on the database and not being related to your assigment". I might have missed or misinterpreted something very obvious so I'd like to hear your opinion.
Some rumbling (not related to my questions, you don't need to read this)...
I'm very disappointed by Oracle's level of professionalism. I had some misunderstands when our purchasing department bought me the voucher. They already registered a pearsonvue account for me but didn't tell me about that. So I had to merge my pearsonvue accounts, which I didn't know about I had to do at first. The only instructions I received from Oracle said "Register online or via phone at Pearson VUE". I did this but didn't notice anything obvious where to use the voucher so I contacted Oracle support. On my first contact with Oracle I was told to contact a pearsonvue
test center nearby to make an appointment even though I stated I purchased a voucher for the Java Developer certification which is a download and not a training or test in a test center.
I was redirected by Oracle to a phone number from pearsonvue support. This phone number was based in my home country, Germany, but when I called, the support was sitting in the US speaking English. I'm not really fond of talking English on the phone especially when the connection is bad and my contact has a strong dialect. Anyway this supposed German phone number I got from German speaking Oracle support didn't even lead me to pearsonvue's Oracle support but to their Cisco support. Great. After staying some more time on the phone I got redirected to a rather unfriendly lady from pearsonvue's Oracle support who told me several times she couldn't help me if I didn't have an Oracle ID. I told her I had an Oracle testing ID and I had my login for the pearsonvue site as well as for the oracle.com site but she didn't want to help me further without an Oracle ID, whatever that is.
After some more contact with German Oracle support I finally figured out that I got a second account registered at pearsonvue which was done by my employer. While this entirely my fault (me as "me and the company I'm working for") certainly Oracle / pearsonvue support could have been clever enough to figure that out. I was then told to contact pearsonvue and ask to merge the account. I did so and after I haven't received a reply over a week I contacted pearsonvue again to ask about progress. They told me it was usually done within five working days and I would not receive any further note about when it was done. Oh please is it so hard to to give a brief automatic reply after action is taken? At least let me know in advance if I don't get a further note because every normal support would let me know when an issue is solved so that I can test if afterwards.
Anyway when this was done I didn't know how to use my voucher. There was no obvious change in my pearsonvue profile so again I contacted Oracle asking the same question I was asking in the beginning: "Could you please give me detailled instructions where in my pearsonvue profile can I access the voucher?". Oracle support apparently felt overwhelmed so my issue was forwarded to the Oracle Certification Program (OCP) team. On May 26th I received reply from OCP asking me to provide them the original mail with the voucher purchase confirmation. It was not until July 3rd that OCP send me the set of instructions on how to use my voucher which I asked about in the very beginning some time in March. I believe a professional customer service could have clarified the issue within a few days as the only things wrong were 1.) I had a second pearsonvue account that should be merged with my primary one. 2.) Oracle's instruction "Register online or via phone at Pearson VUE" didn't help me to use the voucher (also thanks to unhelpful pearsonvue support on the phone) so I needed more detailled instructions. Really was that so hard to take almost four months?
Additionally to that, Oracle has two mistakes in their assignment instructions. I'm a person who always instantly detects any grave writing mistakes (usually in my native tongue but also in English) and in my assigment instructions the word "constractors" is used. I believe no such thing exists and it should be "contractors" instead. Also my class for accessing the database should be called "Data.java". That is impossible! I believe they mean to say the class should be called "Data" and as a result the file hosting it is called "Data.java". I don't mean to be a smartass but from what I've read these instructions exist since about ten years or even longer (unless these two passages where changed recently) and Oracle didn't notice or didn't care about this within a century. Oracle declares that the assignment must be completed within six months and yet their support takes four months and multiple to and fros between Oracle customer support, pearsonvue support and OCP to solve an issue as simple as mine. Oracle declares that certain criteria are an automic instant fail and Oracle representives wouldn't even bother to have a look at the assignment after that yet they use ambiguous terms and instructions that don't even relate to skills as a programmer (Java 1.6 vs. Java 1.7 is my primary concern). If Oracle demands this level of professionalism from the assignment takers and is bold enough to automatically set the assignment as failed if certain aspects deviate (and without further discussion it seems), assignment takers should expect the same level of professionalism from Oracle and their assignment instructions. Just my personal opinion...
* Side note for the link posted above: This forum didn't let me post this thread with the original link because there is some auto detection of unwanted expressions in this forum. This should probably not take URLs into account but anyway. In the link I've added a space character between the letters p, s and l because otherwise the auto detection refuses to have my thread created and tells me the following about this specific combinations of letters: "...is a silly English abbreviation; use "please" instead." Another hurdle overcome, sigh...