I am an RPG programmer and was having a hard time understanding the Java code I encountered at conferences and in magazine articles. This course gave me the basic understanding I was looking for. After completeing the course I was able to write a small J2EE application for one of my clients. Thanks again for being patient and giving me the time I needed to finish the course.
For me, the main goals for signing up CA were to learn about the nitpickers' perspective in terms of readability and clarity, and to see if there's any room for improvement to my code. I would say those goals have been satisfactorily met after completing the whole course.
Skimming through the the assignments, I wondered, could they actually find something to nitpick on the first assignment, Hundred 1a? Oh yes, they could! I passed on the 3rd attempt for the first assignment.
Along the way, I learnt valuable tips on improving the code from the nitpickers and consolidated them for easy reference. I didn't always agree with every feedback they sent back since readability is quite a subjective matter.
Also, I was quite amazed and admired the nitpickers' boundless patience in reading through the students' code over and over again.
As for whether it is worth the price of US$200, I'd dropped some comments regarding this issue in this old thread.
...update a few assignments and a few years later...
In January 2001 I registered as a Javaranch greenhorn to start the Cattle Drive. In June 2005 I finished the last assignment (yeah!!!). Obviously I went at the slower pace dictated by that "life-and-work-get-in-the-way" thing. Lots of stuff happened in the meantime, including changing to a job that involves coding, and having the privilege of becoming a nitpicker myself.
So when asked what are "some of the things (I) have learned as a result of going through the cattle drive" (the original question of this thread), my answer comes from a double perspective.
The most obvious thing was *a* programming language - Java was one of my first. Since then I've used other languages, and I've come to appreciate that the specific parts of Java that we learn are less important than the big picture things that we pick up doing the Cattle Drive - because those you don't get just anywhere. Stuff like adding complexity in really small steps, writing readable code, understanding and working with someone else's code, learning to use the API and other resources, and debugging your own or someone else's code. (I even discovered that I *like* debugging there, I said it.)
Of course there's that humility thing too: when you realize that the way you want to do it and the way that will get your assignment the OK aren't quite the same. That's certainly a basic truth about coding (more than one way to skin a cattle ), but certainly applies in most spheres outside of coding too.
I may not write much Java on a day-to-day basis, and may very well have forgotten some of the language-specific things about it, but what I learned about being a better programmer won't go away any time soon... [ November 23, 2005: Message edited by: Pauline McNamara ]
Have been away from the Ranch for sometime now and have no doubt bagged my final moose at 3. Say it ain't so, DoCo!
Interestingly, I found the API to be immensely frustrating and by far the single most difficult aspect of the language (for me); and eventually lost interest as a result. I, too, find the API very frustrating and intimidating. Trying to navigate my way around it often leaves me feeling slightly annoyed and somewhat stupid, but the stuff one finds in there that somebody else has already figured out for you is ofen worth the trouble it takes to find it!
However, what I DID learn by the process made me a better at coding VB/VBA, LUA, PHP, HTML and other languages I am active in past and present. This is without doubt a worthwhile experience. You never know what's around the next corner! Maybe you'll find yourself wandering back to the ranch someday! There's Moose to be bagged! [ January 20, 2006: Message edited by: Carol Murphy ]
Donald R. Cossitt
Joined: Jan 31, 2003
You never know what's around the next corner!
I check out what's going on here fairly regularly. I am going to be forced into VSTO soon so, hey maybe finish Cattle Drive with .NET(?) :roll:
I just wish for a site as welcoming and learning-friendly as this for .NET or any other pursuit I may undertake - this one is tops! [ January 22, 2006: Message edited by: Donald R. Cossitt ]
While I was deciding if this was a good arena to learn Java, I tried to find out what others thought of the cattle drive etc.
I have no previous PAID programming experience.
The last 12 years of my life have been based around an IT career, provided courtesy of Microsoft.... I have now finally had the opportunity to try my hand at Java.
I have only completed a single assignment that has passed (3 goes), but what I really like about the process so far is:
1) You aren't told the answer - you have to work it out! 2) Everyone is told to "be nice" 3) Everyone has been there and appreciates the benefit of not telling you the answer!
There are more...but one final thing...
If by posting a reply to an oldish topic it goes to the top of the list - great. I wish I had seen this when I initially found the site, my $$$ would have found there way to javaranch somewhat quicker! i.e. this is worth every penny (sorry cent - you guys are from the US afterall)
I thought I should mark this moment and this seems like the right place to do this.
Although not fully nitpicked (still on OOP-3, v4), I just finished coding and initial testing for all Cattle Drive assignments.
I followed my game plan and kept plugging away at new code and assignments, while being
nitpicked on code I had written in the recent past.
This has been and is still a great learning experience. By going back over code I wrote a week or two ago,
I get to re-experience the thought process, logic and structure, while being vetted by what the nitpicker
is instructing or guiding me to do. Also, with each nitpick, large or small, I can go back to previous assignments
that are yet to be nitpicked and do some maintenance to bring those "up to spec". In other words, I used the
nitpick learnings to nitpick myself. Sometimes this seems inefficient, put it keeps my thinking process on
efficient, readable, functioning code. If the code is barely readable, I have not done my job for myself. But
if I have implemented readable code, small modifications are easy to implement.
A note about nitpicks: few are corrections, most are clues, pushes or prods, and some are just downright "twist your head on right
and re-focus....!!! ". All have their place, put I find the clues to be helpful since they lead me down a thought process toward
better, readable code. But I also have gone total out to left field when it took 10 attempts (or versions as I call them) to finish
an assignment that was simple in scope, but rich apparent nitpick detail.
I will return to this post or thread once I have fully completed the cattle drive. It is not a slam dunk because
the code that I write has to past muster, even though with each assignment, I manage to write functioning code that satisfies
the letter of the assignment. But that is where the fun begins.
The new level of excellence now is writing functional, performing, and highly readable code.
Hi! Just wondering if it is necessary to have the book Just Java 2 to do the Cattle Drive? I am most of the way through Head First Java and am hoping this will be sufficient. Any thoughts would be much appreciated. Thanks!
My personal opinion is Just Java 2 is optional. It helps though since every part (Beginning, OOP, Servlets) tells you which chapters it will be covered in.
This website "Javaranch" has tons of information that you can use (tutorials). If you do not understand a concept, you can always post questions on different forums (ie. Cattle Drive) and people are always helpful. Or simply Google'ing stuff helps me a lot also.
I'm still early in the course (Java 4a) but I think it's extremely worthwhile. I agree with most comments here, but for me, the Cattle Drive is the difference between being given a fish and being taught to fish.
It can be easy to google for fish. It's more helpful to use programming books or online tutorials which offer coding exercises, however if your solution is vastly different from the one provided (even if the task is accomplished) then it's not much different than being given the fish. On the Cattle Drive, I've been given hints that allow me to figure out the more effective solution on my own, and also tips on how I can recognize when my solution is less than optimal. I'm not just learning Java, I'm becoming a better programmer in both style and efficiency.
For what it's worth: I've been a software developer for a decade, but mostly with a legacy language. I have only 5 years (part-time) with core Java, mostly with a company that cared "when" and not "how".