• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

"Just following the Monkhouse book" - really?!

 
Greenhorn
Posts: 14
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hello all,

I'm SCJP, and have just started SCJD URLyBird. I read with interest a number of comments in this part of the Saloon from people who say things like "I'm just following the book".

I'm sure Andrew's book is a useful resource, but I'm concerned that the SCJD is being reduced to an exercise of following instructions, not in designing and building a robust O/O client-server system.

The Saloon (quite rightly) has a strict policy with the posting of SCJD code (and SCJP questions in that forum), so I find it odd that the Ranch actively encourages the promotion of The Book?

Would any other Saloon regulars be able to explain this discrepancy?

(This shouldn't be taken as a personal criticism towards Andrew, by the way - I just wonder if candidates will get more out the learning exercise if they're not tutored.)

Cheers folks,
Matthew

Edit: I don't want to start a flamewar either - just interested in people's opinions!
[ June 10, 2008: Message edited by: Matthew Flint ]
 
Author
Posts: 587
6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Well, below is a paste of my latest blog which addresses this issue. In short though, the candidate needs to bring into the assignment a fair amount of experience in order to do well and turn it around quickly. Without the necessary experience, a good certification book like Andrews and other more detailed information resources will guide the candidate to success.

My latest blog:

Gearing up for the Sun Certified Developer Assignment and Exam

The Sun Certified Java Developer (SCJD) certification is the specialty certification for developers seeking to justify their Java coding and design proficiency. The certification is comprised of an assignment and exam, with its only prerequisite of achieving the Sun Certified Java Programmer certification. The core APIs and technologies that you must have adequate experience with to complete the SCJD assignment and pass the exam are Swing, basic I/O, (choice of) RMI or serialized objects over a simple socket connection, threads, and general design patterns.

In lieu of necessary experience, SCJD candidates may find themselves purchasing a certification guide book. These books are valuable as the authors include important details of necessary APIs as well as the surrounding details necessary to meet the project's requirements. Two popular SCJD certification guides are as follows:

The Sun Certified Java Developer Exam with J2SE 5, Second Edition (Apress)
Java 2 Developers' Exam Cram 2 (Pearson Education) Striving to master the core areas is a good thing; even though the certification guides will not bring you there alone. O'Reilly comes to the rescue with specialty books on numerous Java packages, including the ones of interest for the exam. Again, the areas of focus for the exam are Swing, I/O, RMI, threads and design patterns. The corresponding books by O'Reilly are as follows:

Java Swing, Second Edition (O'Reilly Media, Inc.)
Java I/O, Second Edition (O'Reilly Media, Inc.)
Java RMI (O'Reilly Media, Inc.)
Java Threads, Third Edition (O'Reilly Media, Inc.)
Head First Design Patterns (O'Reilly Media, Inc.)
To make the most out of your SCJD certification process, pick up a certification guide book and to extend your in-depth knowledge that will stay with you beyond your certification, get the O'Reilly specialty books as well.

* Note that other publishers have books focused on core APIs as well.
[ June 10, 2008: Message edited by: Robert Liguori ]
 
author and jackaroo
Posts: 12200
280
Mac IntelliJ IDE Firefox Browser Oracle C++ Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I would also really love to hear what others think of this. (Especially Robert's opinion - he has found a lot of errata for me to fix.)

When we started considering writing this book, one of our primary concerns was that we did not want to provide a book that would provide a boilerplate solution to the Sun assignments. To this end:
  • In some parts of the book we made our book's assignment a little more difficult than the Sun assignment.
  • In some parts of the book we made our book's assignment a little easier than the Sun assignment

  • We still cover all the relevant areas of the Sun assignment, however anybody reading the book has to understand the materials in order to work out what will work for their assignment and what will not.

    I believe that it is not possible for someone to simply take the code from our book, change a few lines, and submit it - it just won't work. You have to understand the technologies (which the book explains ) in order to build your own solution.

    In addition, there are multiple versions of each of the Sun assignments, so there is no single answer that will work in all cases.

    As I said at the start of my post though - I would love to hear what others think. Do others think our own exercise / solution too closely mirror Sun's? Have we made it too easy?

    Regards, Andrew
     
    Robert James Liguori
    Author
    Posts: 587
    6
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Hey Andrew,

    Your book clearly houses a unique project. What's nice about your book is that it's underlining tone is that of encouragement for the candidates to explore their options, and to thereafter record their decisions and how they got there... as required by the certification.

    It's a true benefit that you were able to construct this resource for the Java community.

    Robert
    [ June 10, 2008: Message edited by: Robert Liguori ]
     
    Ranch Hand
    Posts: 152
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    There are some parts of the book which can be copied directly into your own project (like, for example, the PositiveIntegerField class).

    Personally, I found myself trying to build my own OTHER sollutions in such cases, trying to deliberately keep away from Andrew's example. On one hand because it is a better learning practice, on the other hand because I found myself having a fear that Sun knows Andrew's book too, of course, and when literally copying parts, they will recognize that, which might cost you points. (Are there any known cases that this may have happened?)

    I think what is most important is what you write in choices.txt. You might as well use a sollution by Andrew, as long as you motivate why you choose this sollution and not another one.
     
    Greenhorn
    Posts: 5
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Maybe I'm oversimplifying, but my assignment clearly says you don't get extra credit for exceeding the requirements and there is no statement that says I "must" validate the port number. Would it really be considered wrong to just let the server app fail to connect (crash?!) if the port number is invalid?

    I guess what I'm wondering if the book's example is planting seeds of non-existent requirements simply because the book's author choose to do something a certain way.
     
    Andrew Monkhouse
    author and jackaroo
    Posts: 12200
    280
    Mac IntelliJ IDE Firefox Browser Oracle C++ Java
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Hi Amber,

    It is recommended that you use one thread per question. This topic is about whether my book has enough / too little / too much information for the SCJD assignment.

    Originally posted by Amber Beerends:
    Would it really be considered wrong to just let the server app fail to connect (crash?!) if the port number is invalid?


    This question really deserves it's own topic so it gets the right audience and gets answered appropriately.

    But to answer it in context of Mathew's question:

    Originally posted by Andrew Monkhouse:
    [QB]

  • In some parts of the book we made our book's assignment a little more difficult than the Sun assignment.
  • In some parts of the book we made our book's assignment a little easier than the Sun assignment



  • Regards, Andrew
     
    Amber Beerends
    Greenhorn
    Posts: 5
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Sorry, Andrew, I wasn't really trying to ask that as it's own question. It was more of a rhetorical question. My point was more my second statement:

    I guess what I'm wondering if the book's example is planting seeds of non-existent requirements simply because the book's author choose to do something a certain way.



    So, regarding the previous poster saying that your PostiveIntegerField code could be copied directly, I was trying to point out there is nothing in the assignment saying that the checking done by PositiveIntegerField is necessary which supports your point about book's code being more difficult than the Sun assignment.

    IMO, in that case, the book solution is going above and beyond the call of duty, but I don't think it qualifies as giving "too much information" since the information is not even really required! I do wonder, though, if those kinds of more intricate details will trip up the more inexperienced developer and make them think that is required even if it isn't!

    FWIW, I've been coding Java for 11 years but most of my experience, but I haven't done anything regarding RMI or sockets for 10 years so I found the chapters covering those topics to be really useful. The rest of the design ideas closely mirrored what I had already planned to do based on my own reading of the assignment. I think that if someone was new to Java, they would have a harder time understanding all of the code and explanations in the book and would, at the least, take a much longer time to complete the project. Also, I'm sure most of the information in the book could be gleamed from other sources. It would just take longer to find it all that way so the book becomes "one stop shopping" for the relevant info.
     
    rinke hoekstra
    Ranch Hand
    Posts: 152
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    I think Amber is right. I had the feeling that quite some things in Andrew's book were a little bit overdone, in that way that they are not needed for the assignment because there is no explicit requirement for it, and because (to my opinion) it is not the most simple approach.

    Of course, if I would have written the book, I also would not have choosen the most simple approach in all cases, because if you want to write a book about it you also want to show several sollutions and possibilities.
     
    Matthew Flint
    Greenhorn
    Posts: 14
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Thanks, Andrew, for not being too offended by this thread - and for taking the time to reply. You have put to rest my main concerns about the book providing a boilerplate solution.

    To be honest, I don't think my concern is with the book in particular, but more to do with influential texts in general, and the SCJD requirement to "submit your own code". It's all about drawing the line between using a piece of reference material as a learning tool or a plagiarism tool.

    I'm not suggesting that everyone should be totally virtuous, and develop their SCJD as if on a desert island with no reference material whatsoever. Nor do I object to people in the Saloon asking for guidance about very specific problems. This is supposed to be a 'real-world' assignment, and in the real world we do use reference books and speak with colleagues.

    (Actually, I don't know where I'm going with this argument! )
     
    Ranch Hand
    Posts: 451
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    I didn't know Andrew had a book out on this but I can say that his comments on this forum were quite helpful to me when I did this cert in 2004.

    To those who are tempted to do a lot of cut and paste of other peoples ideas just to get the cert, YOU ARE ONLY CHEATING YOURSELF.

    The most valuable thing about this cert is the learning.


    "The journey is the reward."
     
    Greenhorn
    Posts: 22
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Just one question. Having read the book myself... where's the satisfaction in copying something somebody else did? Isn't it a software developer's wet dream to do something from scratch?
     
    Ranch Hand
    Posts: 320
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    I think that is a matter that is up to the individual. If someone takes their assignment and sits down with the book and attempts to hammer it ou like a cookbook solution, they may indeed produce something that works. But what is their level of understanding? On the other hand, someone else might read the book and absorb the information and then turn and take on the assignment applying what they have learned. That one will understand the underlying concepts.
     
    Ranch Hand
    Posts: 243
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    I am planning to take SCJD.Since Java 6 is out.Will SCJD also be based on java 6.In that case is Andrew planning to give out a new edition of the book?Please reply.
     
    Andrew Monkhouse
    author and jackaroo
    Posts: 12200
    280
    Mac IntelliJ IDE Firefox Browser Oracle C++ Java
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Please ask a question in one thread only. Posting in 2 threads just annoys people.

    No, we are not looking at a book for Java 6 at this time. We may look at a book for Java 7 - that is yet to be decided.

    - Andrew
     
    Greenhorn
    Posts: 14
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    I personally find Monkhouse's book very helpful. I was forced into Java because of a business need. I did not get the time to come to terms with a lot of the basics of Java. In order to understand Java I took the SCJP, barely made it, and realized that it would make a lot of sense to pursue the Java certification path.

    I write middleware using EJB's, JPA , etc, and therefore do not get to use a lot of the basic development stuff (file IO, GUI, threading, etc..) but work a lot with Patterns, the services the Application Servers provide (pooling, persistence, etc..), and functionalities exposed by 3rd party open-source providers. Working with different technologies in this regard made me question a lot of the implementations out there.

    Working through Monkhouse's book I now understand a whole lot of those implementations better. I can also now appreciate the "otherness" of some of these implementations. Many of the basics of Java is refreshed and some concepts fastened more thoroughly in my mind.

    All in all I guess the material goes a long way to making me a better developer, and for that I am gratefull. I believe the book is worth every cent spent.

    I consider it an essential help in achieving my SCJD goal.
     
    reply
      Bookmark Topic Watch Topic
    • New Topic