While there is conceivably gads to learn just in programming Karel to do assignments, or invent problems to solve with the simply robot, the goal is to learn Java itself. At Stanford the class leaves Karel behind after the first week, and the class moves pretty fast. Last week I got interested in extending Karel, almost cheating by using more advanced solutions than called for and exploring things in Karel that aren’t covered in class, like her paint methods.
At the same time, I want to continue learning at the speed of the class or if possible, faster. I’ve done Java before, so much of this I’ve seen before. I would say thus far I have gained in some experience solving more problems in the assignments than I did when I originally set out to learn Java almost twenty years ago more than learn anything. At lecture 7, I’ve still not seen anything truly new for me. Going through the lectures certainly helps clarify and clear memory cobwebs from the first go around.
While going through lecture 7, I know that very soon I’m going to bump into things that I may have seen before which perplexed me and was never used. That is the true value for me taking new stuff that hearkens old stuff I learned a long time ago. I am wiser, if not smarter today than I’ve ever been. My life experience lets me review materials that I’ve gone over before given new light from learning outside the discipline of programming. This is easily explained by something from somewhere else.
There is a great analogy about filling a big jar with pebbles, one at a time. This instance of the analogy might not be perfect, it’s simply how I think of it. When you want to go fast, you want to avoid grains of sand and start with bigger pebbles the size of the biggest rocks that fit. You’ll filling as much space as possible. You’re also not filling as much space as you could with sand. When you can only go one pebble at a time, start with the big stuff and eventually you will only have enough room for small pebbles and sand.
If what I know about programming is silo’d into a metaphorical jar, twenty years ago I got the big rocks in and largely filled programming Java. I knew generally how Java worked to do things, what some of its limitations were and where it would be extremely useful. The learning long ago informed my thinking around the Search Return Sidecar. The big concept is write once, run anywhere, including applet implementations that live client-side on the browser. It’s a truly platform independent software programming language. Now it’s time for me to work on filling the rest of my jar. There’s a terrible pun there, if you see it.