I'm SCJP 1.4, and has about 3 year-experience in developing Java desktop applications, I started using Java SE 5 six months a go, I have some knowledge of design patterns, I use some of them in developing my applications, the patterns I used are strategy, observer, decorator, factory, sigleton, and the state pattern. I have good comman of swing, and layouts, I use border and gridbag layouts heavily in my designed applications, I also have good command of java.io package, but not java.nio. For the multithreading, I use it heavily also in my applications, but I don't use all the abilities of Java threads handling abilities. I didn't use sockets for any of my projects, since all the connections I made where HTTP or HTTPs connections, and they both have their connection APIs, also the JDBC connections don't require you to use any ntwork code, so I didn't have to use sockets or RMI until now. Do you think that I can do the test and succeed?
On your way in you may have missed that we have a JavaRanch Naming Policy for displayed (screen) names. Your displayed name must consist of a first name (or an initial), a space, and a family name (in that order) and not be obviously fictitious. Since yours, "Marader", does not conform with it, please take a moment to change it, which you can do right here.
Posters with nonconforming displayed names will be locked out of JavaRanch after a few posts using those names.
Hi Tamer, you are more ready than some of our past posters, and most have got through the certification. If you really have doubts, before spending a lot of money, buy or borrow (legally) a copy of Apress's SCJD with Java 5.0 Book, one of the authors being own own Andrew Monkhouse. [ July 14, 2006: Message edited by: Barry Gaunt ]
Joined: Feb 18, 2004
Hello Barry, I have the book, I read the first chapter (the introduction), and it said that I have to have good knowledge of design patterns, and it refered to Head First Design Patterns book as a way to get better in patterns. I know that design patterns can't be understood just by reading, but they need a lot of practice, most of the patterns I use now, I was using them before, but I didn't know that they are patterns untii reading a little bit about patterns, learning patterns by reading is not my way to learn them, I need to see them working in large systems, books have small programs that don't give you the real usage of patterns in real world. So if the exam is focusing on the design patterns used in solving problems, then this may take some time to get it done the right way.
It will take time. Most people spend many months (and more than a few several years) to get it done to their satisfaction.
Design patterns are important but I don't think you'll be judged on using them strictly.
I'm like you (though a bit further along), having worked in software development for almost a decade before I learned about there being design patterns and then finding that I'd been using a lot of them for years without knowing they were formalised My advice: don't worry overly much about which pattern to use where. Do what comes natural and if you're a decent coder the code will flow and patterns emerge on their own.
I read the first chapter (the introduction), and it said that I have to have good knowledge of design patterns, and it refered to Head First Design Patterns book as a way to get better in patterns.
I think you read more into our comments on design patterns than we were intending. I guess you are talking about this paragraph:Where applicable, chapters briefly discuss the design patterns being used and offer a brief explanation of those patterns. We strongly encourage you to purchase or download some pattern resources. Various web sites offer insightful tutorials, including the Sun site (http://www.sun.com) and TheServerSide.com (http://www.theserverside.com). There are also various excellent books on the topic, including Head First Design Patterns, by Elisabeth Freeman, Eric Freeman, Bert Bates, and Kathy Sierra (O'Reilly, 2004).If so, then I can stand by what we said: we do strongly recommend you look at design patterns. But this is a long way short of saying that it is essential, or that you will loose marks if you dont use design patterns.
Most developers who have been coding for some time before looking at design patterns (myself included) find themselves in the same position as Jeroen - namely we started finding that we were already using design patterns - we just didnt know the names of them. You may find yourself in the same position.
Regardless though, there are many candidates who do not know any formal pattern, and therefore do not identify any patterns in the code they write. This does not stop them from getting good scores.
I have the same question: do you think that I am qualified to take the SCJD exam? I am taking my SCJP tomorrow, and I expect that I will pass it. I have two years of informal Java experience, and I feel that I am capable with Swing (I wrote a whole game with just Swing, used JLabels, buttons, lists, textfields, textareas, filechoosers, of course panels, etc...) I have never used a JTable before, but I expect that a bit of research with the API would solve that problem. I have experience with socket programming, and I have coded three server-client applications that all use sockets. All of them depend on PrintWriter.println() which I will probably have to change to accomodate several forms of I/O classes, namely ObjectInput/Output for use with Serialization. The non-HTTP side of the java.net package is also familiar to me, and I know how to use InetAddress, URL, etc... I have no experience with RMI, but it seems that I could use a serversocket to do more things than is possible with RMI (can you track client IP's with pure RMI?). Thread-safe code is something that I will have to strive to achieve, but I feel that if I make my application simple, then I can avoid having to use more complex synchronized code, and keep synchronized methods to a minimum. In terms of data structures and sorting algorithms, I'm probably fine as I've written my own binary search tree, comparators, linked list, etc... before so I have an understanding of how they function. Design patterns are going to give me some trouble, but I was thinking of basing my application off of the AP MBS case study's MVC architecture. It works well and promotes the use of interfaces and the Debug mechanism is very nice as it uses a Debug class with static print methods, and static on/off methods which let the programmer disable debug statements before deployment. If I write my own version of the Debug class based on the same principles, that's ok, right? Also, if I do use this debug scheme, then leaving the debug statements should also be ok as they will be "turned off", correct? As far as coding conventions go, shouldn'tbe as "correct" as ??
Jeroen T Wenting
Joined: Apr 21, 2006
For the assignment, you should follow the Sun conventions religiously. Outside the assignment, do as you please (or as you're told by your employer).