Through Vo-Tech, I have become a member of the Vocational Industrial Clubs of America, which goes by the ugly and somewhat awkward name “VICA”. (In the late 1990’s, it will be renamed SkillsUSA.)
VICA holds a yearly competition for students of various vocations, where accolades and scholarships can be won by those who distinguish themselves by doing whatever it is they’re being trained to do. It works like this: Many high schools feed students into a single Vo-Tech building. Then many Vo-Tech chapters compete against each other for the district title. The winners of that contest go on to compete at the state level, and the winners at state will go on to compete nationally.
Each individual Vo-Tech instructor can select one of their students according to their own discretion. I imagine in most cases the teacher might have a test of some sort to find the best student, but I seem to be the runaway contender in all of Miss Shack’s classes. I suppose if another student expressed an interest in competing she would pit us against each other, but no such challenger appears. Having “won” at the local level by default, I will be representing our school at the district level.
I don’t want to repeat the folly of Seven Springs. I want to win this, if I can. This isn’t some generic “computer knowledge” test. This is the real thing. This is a test of programming skill and ability. This is a chance to validate everything I’ve been working for since I was a child. I’ve poured myself into this work, and I’m eager (and a little frightened) to see how all of that effort will pay off in real-world terms. It’s one thing to be the best in your class of twenty people. It’s quite another to be better than hundreds or thousands of other students. Certainly there are other Shamus-like kids out there? If there are, I’ll be facing them.
Having said that, I’m not sure how to prepare or train for this test. I already spend a lot of my leisure time programming. I’ve already explored the extremities of BASIC far beyond anything that might be taught in a classroom, on multiple machines, for over half a decade. There isn’t that much left for me to do or learn.
It’s absurdly early in the morning when I arrive at the school. There’s a massive bus waiting in the parking lot. This is a proper coach bus, not a rattling school bus. I find a few dozen groggy, droopy-eyed students on board. It’s five in the morning, and some of these kids live an hour away. If I was more awake, I might have the energy and focus to feel sorry for them.
The population is about 75% female. Cosmetology and Culinary Arts are the largest classes in the school, and they are overwhelmingly female. Still, I don’t know why this many of them are going. Do they compete in groups? I’m not complaining. The girls are chatty and friendly, and I don’t have to deal with any of the pecking-order nonsense that would keep me away from pretty girls in a normal school setting. There aren’t any jocks around. Not on this trip.
The bus rolls away into the cold pre-dawn light. I’m uneasy. I should nod off during the trip and grab some more sleep, but I’m pumped full of nervous energy and all I can do is fidget. I spend most of the trip staring out the window. I honestly have no idea where we’re going. I didn’t think to ask. When we arrive I hear someone refer to the place as “Mercer County Vo-Tech”. So I guess that answers that question.
The programming competition is held in a classroom much like the one in my home Vo-Tech. There’s a room with desks, next to a well-equipped computer lab with enough machines for everyone. I breathe a sigh of relief when I see they’re IBM clones. It didn’t occur to me before, but these could have been Apple machines. Apple is one of the few variants of BASIC that I don’t know very well, because I haven’t had a lot of access to Apple machines. (Thanks for that, Mrs. Grossman.) If this had been an Apple lab, I might have been at a disadvantage.
I am somewhat worried when they have us sit in the classroom instead of the lab. I really, really want to program, and I’m still nervous that something will change and this will be another stupid multiple-choice test on computer history and hardware. I have a good handle on that material, but it’s nothing compared to my experience programming. I want to compete on my strengths.
They explain the test. They give us some ridiculously simple and straightforward specs for a computer program: Read a list of contacts (name, address, phone number, etc) and print them out according to a few simple rules. Skip names that meet certain criteria, and print some sort of special distinction on others. It’s actually embarrassingly simple. I’m worried. I was hoping for something to challenge me. A program this primitive should be a cakewalk for everybody. The challenge level is so low, the winner might just go to the fastest typist. My heart begins pounding. I had a touch typing course last year, but I’d already been speed-pecking for years and I found it was too hard to overcome all of those bad habits and type “properly”. I might be the best programmer in here, but I wouldn’t bet on being the fastest typist. Not by a long shot.
The instructor drops a bomb on us: We have to write out our program by hand before we can move over to the computer lab.
My gentle demeanor prevents me from leaping out of my seat, holding my fists in the air, and screaming, “WHY?” at the ceiling.
What possible justification could there be for this? This isn’t how you program. You don’t start at the top and work your way down like you’re writing a poem. You start outward and work your way in. You build the framework, then insert lines as you add functionality. Otherwise you have messy code. You debug as you go, not when you get to the end. How can these people not understand this?
Paper is the worst possible medium for programming. You can’t insert or delete without making a mess of the paper and re-writing things. A flowchart would at least make a little sense, by forcing us to demonstrate that we can envision the required logic before we begin. But making us write out our code ahead of time is actually testing us on our skill at bad programming habits. Worse, my handwriting is horrible. It’s big and messy and I’m incredibly slow at it. This is the worst possible setup. I have to write it, then type it, then I can begin the real work.
The program has input data. Do I need to write it out? I mean, the data is supplied by the instructor. The data will be the same for all students. On one hand, it’s something I will need to type in, so maybe they expect me to write it out for completeness sake. On the other hand, it really should be taken as given. However, I don’t want to be disqualified for something in the written portion of the test. (Especially since the written bit is so irrelevant.)
Erring on the side of caution, I painstakingly write out all of the data. I hand-write the entire list of names, addresses, and other contact information. This fills an entire sheet of paper, all by itself. Once that is complete, I write out my entire program. My hands are shaking, which isn’t helping my writing speed or legibility. I’m terrified that someone else will get up and turn in their written work first. I have to get into the lab as soon as possible to overcome my sub-optimal typing speed, but to do that I have to overcome my severely deficient handwriting speed. Pencils are scratching all around me. I want to look up and see how many pages the other students have filled, but I don’t want to be accused of cheating. I keep my eyes down and scribble as fast as I can.
My hand is cramping by the time I’m done with the first page of code, and by the second page I’m in serious pain. Still, I’m the first one to turn in my paper. I show it to the instructor and I’m waved into the lab without ceremony. I pick a machine, boot it up, and begin the real test.
I begin typing my program, and find a few bugs in the process. This means my written work won’t match my typed work. Does that matter? Should I go back and re-write it? If not, then what was the written portion for? This is very confusing.
I’m done typing in my program before another student joins me in the lab. I find a few bugs once I get the whole thing entered and run it for the first time.
Fifteen minutes later I print out the results of the program. I’ve been done for a few minutes now, and I’ve just been checking and re-checking my work. The other students seem to be so far behind that I don’t need to worry about them anymore. The majority of them are still in the classroom, scribbling away. A few are here in the lab with me, typing. None of them have printed anything out, which means they’re far from done.
Eventually I realize there is nothing left for me to do. I turn it in and walk away. I write slowly, I type slowly, I painstakingly wrote out all of the input data, and I still finished long before even the closest contender. Either I have won, or I somehow botched this exercise in a fundamental way.
After the test, Miss Shack asks me how I did. I give one of my usual long, rambling answers where – unsure of what level of information the other person wants to hear – I try to relate everything in a disorganized way. I’m even worse when I’m nervous.
The next day they announce the winners. All of the girls from cosmetology and culinary arts are sitting around me. They’ve adopted me as the pet nerd. As the winners for computer programming are announced, they close in and put their hands on me like this is some kind of faith healing. They let out an audible squeal as my category comes up, and rises as each name is read. I’m not third. I’m not second. I don’t know whether to laugh or cry. My name hasn’t been read yet, which means I’m either the winner or nothing. When my name is read the girls cheer me and practically shove me at the stage. I won!
Of course I won, the second-place person was far behind me. I feel sort of stupid for doubting it now, but I just didn’t think it would be that easy.
I did it. I’m going to state.
What Does a Robot Want?
No, self-aware robots aren't going to turn on us, Skynet-style. Not unless we designed them to.
A video Let's Play series I collaborated on from 2009 to 2017.
A programming project where I set out to make a Minecraft-style world so I can experiment with Octree data.
Video Compression Gone Wrong
How does image compression work, and why does it create those ugly spots all over some videos and not others?
Dear Hollywood: Do a Mash Reboot
Since we're rebooting everything, MASH will probably come up eventually. Here are some casting suggestions.