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 ]
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.
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 ]
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 ]
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.
Joined: Mar 05, 2003
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 ]
author and jackaroo
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
Joined: Mar 05, 2003
Thank you Andrew and Paul (whose post disappeared). [ November 08, 2003: Message edited by: Marlene Miller ]
Joined: Nov 07, 2003
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
author and jackaroo
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