• 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

preparing for the assignments

 
Ranch Hand
Posts: 1392
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Please excuse my naive question.
How does one learn enough to Begin to work on the assignments and end up with a good solution?
It�s possible to just start from where you are, read and code and follow the discussions on the forum. That�s what happens in the real world of work all the time.
It�s better, isn�t it, to have design and code experience and to have studied the designs and code of other programmers who are Good at designing and coding? That happens at work occasionally if you are lucky.
What is an optimal way to prepare Before starting to work on the assignments? Read most of Java Network Progamming by Elliot Rusty Harold? Read most of Java RMI by William Grosso? Be familiar with JDBC? At least 5 years of real work experience in Java or C++? Know your patterns?
Thank you, Marlene.
[ November 07, 2003: Message edited by: Marlene Miller ]
 
Ranch Hand
Posts: 91
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Marlene,
The following are some of my favorite books that I found most helpful and related to this project.
***SCJP/SCJD Books (Kathy Sierra's and Max Habibi's)***
Design Patterns: Elements of Reusable Software (Gamma, et al.)
UML Distilled (Martin Fowler)
Java in a Nutshell Library (O'Reilly)
Java Swing (O'Reilly)
Assorted White Papers on the web (OODesign/Analysis, XP, RUP,...)

I'd say that having a good foundation in design principles will get you much farther with this project than knowing any specific API, technology, etc. etc.. Most of the problems you'll run into can be challenging from a design perspective, but will require relatively simple code once you figure out the best solution.

Hope you take it! You'll learn alot.
Cheers,
Paul


[ November 07, 2003: Message edited by: Paul Tongyoo ]
 
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 Marlene,
Welcome to SCJD. You won't have as much chance to get into the bytecode here , but you will learn a lot, and hopefully have fun.

Originally posted by Marlene Miller:
Please excuse my naive question.


Not really a naive question - a lot of people seem to have this question. Not many are as methodical about getting to the best way of doing this as you are.

Originally posted by Marlene Miller:
How does one learn enough to Begin to work on the assignments and end up with a good solution?
It's possible to just start from where you are, read and code and follow the discussions on the forum. That's what happens in the real world of work all the time.


You are right - it is possible to just download the assignment, start coding, and then ask questions when you get into trouble.
But this is not really a good way of doing it - you will find yourself rewriting whole sections of code as you discover that you made a fatal design flaw somewhere, and your end solution will not be as well designed as it could have been.

Originally posted by Marlene Miller:
It's better, isn't it, to have design and code experience and to have studied the designs and code of other programmers who are Good at designing and coding? That happens at work occasionally if you are lucky.


That is a much better way of doing things. However everyone has to start somewhere, and not everyone has experience in developing applications from specifications (in any language). So you may be better off reading some books about designing applications, and using the people in this forum as your mentors.
Both Max Habibi's The Sun Certified Java Developer Exam with J2SE 1.4 and Alain Trottier's Java 2 Developer Exam Cram 2 have chapters devoted to analysing your design before starting coding. Alain's book has a few fatal mistakes (which I am sure you would catch anyway ) but he does go into analysis in far greater detail (almost to SCEA level). For actual work on the assignment, I think Max's book is a much better book (and as an added bonus, Max is frequently in this forum, and hopefully will be coming back as bartender of this forum again in the near future).
I don't remember if you said whether you have Kathy Sierra and Bert Bates' Sun Certified Programmer & Developer for Java 2: Study Guide. If you do have it already, then you will find the chapters on SCJD interesting, and they may help you make some of your design decisions, but it will not really help you with the real design work (IMHO). If you don't have it yet, then according to Kathy you should go for Max's book first, then buy her book if you have plenty of money

Originally posted by Marlene Miller:
What is an optimal way to prepare Before starting to work on the assignments? Read most of Java Network Progamming by Elliot Rusty Harold? Read most of Java RMI by William Grosso? Be familiar with JDBC? At least 5 years of real work experience in Java or C++? Know your patterns?


Wow - I haven't read those books - I will have to watch any advice I give out from now on
You will need to learn some networking to do this project, so those books may be very useful to you. Personally I just went through every web tutorial I could on RMI and then used that (I was already very familiar with sockets, so I decided to try something new).
You will not use JDBC in the SCJD assignment at all (unless you really really over engineer your solution). The SCJD assignment (and those developing for it) talk about a database all the time, but the reality is that the "database" is a flat file that you have to write code to read and write to. It is certainly not a commercial database or anything that you can use SQL or JDBC with.
General knowledge of patterns is useful (not just in this assignment, but also in general life), but you don't have to be an expert with them. Just have an idea of what patterns are available, and be prepared to look them up when someone suggests a pattern as a solution to something you are looking at.
As for real world experience: it is a chicken and the egg situation. How do you get experience - by developing software. How do you develop good software - by having experience. Any experience with programming in any language will help, but if you don't have experience, then you are going to have to do some development work to get the experience. And, as I said before, there are quite a few people in this forum that you can use as mentors.
Hope to see you in this forum more often now.
Regards, Andrew
[ November 07, 2003: Message edited by: Andrew Monkhouse ]
 
Ranch Hand
Posts: 4982
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I have passed SCWCD a few days ago, and I am planning to have my SCJD exam.
Could you give me some suggestions as starting?
1. Should I first read any books, or should I download the assignment first (Since there is no time limit for completing it)
2. Does the book by Mr. Habibi good for preparing?
3. I read the exam detail, and I wonder, what should be included in the documentation part? In addtion, we will submit a Javadoc together with our source code, do we need to include the API description in the document as well?
Thanks a lot.
[ November 07, 2003: Message edited by: Nicholas Cheung ]
 
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 Nicholas,
Welcome to JavaRanch.
  • Assuming you can spare the money right now, then you could download the assignment first. Then read books / tutorials on the web to fill in any gaps in your knowledge required to complete the assignment.
  • Max's book is very good for helping you work through the assignment. Personally I think it is the best book for the SCJD assignment, and many of the people currently working on their assignment are using it.
  • When you download your assignment, you will find out exactly what is required in the deliverables.
    Basically your documentation should have JavaDoc APIs for all classes you write / submit, user documentation, a document describing what design choices you made while working on the assignment (and why you made them), and a file giving basic information such as where files are, what version of Java you used to build your submission, etc.


  • Regards, Andrew
     
    Marlene Miller
    Ranch Hand
    Posts: 1392
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Thank you Paul and Andrew for your ideas and advice. How generous you are Andrew with your time to answer in such detail.
    If you have to learn OO design as you go, I wonder if it�s better to begin with a prototype � a simplified problem and solution.
    Do people begin the SCJD assignment with use cases? with OO analysis and class diagrams?
    [ November 08, 2003: Message edited by: Marlene Miller ]
     
    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 Marlene,

    Originally posted by Marlene Miller:
    If you have to learn OO design as you go, I wonder if it?s better to begin with a prototype ? a simplified problem and solution.


    When you download your assignment you will see that it is very simple. It is actually quite dificult to come up with a more simplified problem and solution

    Originally posted by Marlene Miller:
    Do people begin the SCJD assignment with use cases? with OO analysis and class diagrams?


    I did. And I (and some others) also put our class diagrams into our submission (definately not a requirement - but there is a chance that it makes our submission easier to understand, so why not )
    Regards, Andrew
     
    Marlene Miller
    Ranch Hand
    Posts: 1392
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Thank you Andrew and Paul (whose post disappeared).
    [ November 08, 2003: Message edited by: Marlene Miller ]
     
    Nicholas Cheung
    Ranch Hand
    Posts: 4982
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    I would like to ask, as read from here, we can only submit text only documentation. So, what format did you submit the OOD stuffs? bitmap, HTML with embedded gif/jpeg?
    Thanks a lot
     
    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 Nicholas,
    The user documentation may be in HTML and the javadoc documentation is, of course, in HTML format. Also, although the required files must be in the specified format, other files can be in any format you like.
    I had my class diagrams as GIF files accessible via HTML pages.
    Regards, Andrew
     
    Don't get me started about those stupid light bulbs.
    reply
      Bookmark Topic Watch Topic
    • New Topic