There are many fine sentiments expressed in this thread, so it feels like 'gilding the lily' to add more. However, I feel that it is important to re-iterate the outstanding value-for-money that is the Cattle Drive.
Firstly, let me state that I have been writing programs since 1977, when I built my first single-board computer. It was programmed in hexadecimal using hand-assembled assembly source code. You keyed in each byte on a hex keypad and viewed your results on a 2 digit hex display. Primitive? You bet! That is when I became fascinated with the idea that you could make a piece of hardware do all kinds of things just by changing the codes.
From FORTRAN to BASIC, thence PASCAL, C and quite a few '4GL' style systems, I have been trying to get a good handle on Java for some years.
Doing the 'Java Tutorial' and trying to learn Java from books was simply not enough. I needed to know that I was doing 'it' the best way I could.
--- Enter the Cattle Drive and the nitpicking process ---
You read the assignment, you write a program, it works. Yay!
Then you submit it and find out what you didn't do right. D'oh!
Repeat until it is right.
This is the embodiment of 'Continuous Improvement'. We get code better by increments. Eventually, it sinks into my brain and soon I begin to remember the lessons every time I start to write some code.
There is also the sense of pride and achievement when you do complete an assignment and finally, the whole series of a section. I passed the Basic Section this week. I mentioned to Marilyn that I felt as if I had really achieved something and not just copied examples from a book and written a few small programs.
Sure, I can write software that works - I do it all the time. So do a lot of other people!
Writing software that works and is efficient and is easy to read and comprehend (for the poor soul who has to maintain it - and yes I have been that monkey.), is the real challenge and I feel that this is where the Cattle Drive is pushing me.
Kudos and Thanks to the nitpickers, I'm looking forward to the next section - OOP(s)
It's all good,