Schoolhouse Bytes

"Table Junction, what’s your function?"

"Hooking up many-to-many relationships."

If you know the tune to which the previous lines should be sung, then you probably also know that conjunctions are used to hook up words and phrases and clauses. You might also know what it takes for a bill to become a law, how the "shot heard around the world" played into American history, and even how to perform simple base-12 arithmetic.

What makes you so smart? You spent a lot of time watching cartoons in the 1970s. Luckily, some special program directors wanted to fill your mind with something beyond advertisements for snack foods and toys, so they invented Schoolhouse Rock. Schoolhouse Rock wrapped important foundation information for childhood learning inside a catchy tune and a cartoon video. Faced with a growing stack of 3-inch-thick books describing the ever-changing Windows programming world, it surely would be refreshing to learn the ins and outs of new technologies with the ease that I learned the preamble to the U.S. Constitution.

Nine months back, I knew I’d be moving from primarily Borland Delphi projects to primarily Microsoft Foundation Class (MFC) projects. I had worked with MFC in the distant past, but I knew my skills were rusty. I purchased a couple of MFC books, but I had difficulty getting interested in the material and seeing the "big picture" of how the numerous concepts were supposed to interact. About that time, a coworker who is a Microsoft certified developer (MSCD) tossed me a CD that he said contained everything he needed to ace the MSCD exam. Intrigued, I took home a CD called Mastering Visual C++ 4.0 from Microsoft Press.

It seems only natural that computer-based training (CBT) could apply to computer programming, but for some reason, I’d never tried any programming-oriented CBT. In an environment filled with interwoven dependencies such as MFC, computer training allows much better descriptions of interacting systems. In the same way the Schoolhouse Rock video "I’m Just A Bill" simplified the complex process of how an idea is transformed into a law, the MFC CBT uses video clips to clearly illustrate how multiple files contribute to a single logical concept. In multistep processes such as printing, animations clearly describe how the many different message handlers work in concert to produce output. While these topics are tackled in every MFC book, even the most adept writers can’t produce the same effect of actually watching the coding wheels go around.

In addition to illuminating processes, CBT can organize material better than any book. While most books provide a complete static table of contents, a CBT’s table of contents can be dynamic. In the case of this particular CBT, drilling into a topic reveals more detail about a topic, while drilling out provides a good bird’s-eye view of a topic. The ability to manage the detail level makes reviewing material much easier than in the paper world.

I was a little apprehensive about doing a significant amount of online reading. My eyes and brain go south if I have to actually read from a monitor for more than 30 minutes or so. I much prefer the tactile feel and high contrast of a book. My apprehensions were unfounded, however, because the course was organized so that you rarely had more than a page or two of contiguous reading before encountering a video, animation or example that required you to write code in Visual C++. The pacing allowed for long sessions in front of the monitor with much less fatigue than I would have guessed.

Few of us were ever tested on the lyrics to "My Hero, Zero," but short of a catchy tune, testing is an excellent way to gauge progress and increase retention. Mastering Visual C++ includes multiple choice tests following each unit. I found passing each test a confidence builder that was missing from book learning I’d done in the past.

Since completing the training, I am convinced that CBT is an extremely valuable tool for quickly digesting new technologies. Lately, I have been talking to development tool vendors, in hopes of finding good CBT titles for their products. Unfortunately, it seems as if I am usually the first person who has inquired about CBT, but that is changing. I’ll be reviewing more C++ and Java CBT titles in the near future. Please let me know your experiences with CBT for developers, and I’ll share them with our readers. As Schoolhouse Rock teaches: "Knowledge is power." -- Eric Binary Anderson is a Development Manager at PeopleSoft's PeopleTools division (Pleasanton, Calif.) and has his own consulting business, Binary Solutions. Contact him at