## Autoblography Part 27: VICA Regionals

By Shamus Posted Wednesday Oct 12, 2011

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.

## 194 thoughts on “Autoblography Part 27: VICA Regionals”

1. Vindication is a wonderful thing!

2. “All of the girls from cosmetology and culinary arts are sitting around me.”

This now prompts the image of you with a obnoxiously large hat (with one equally large feather adorned to it), an ivory topped cane, a cape and leopard print as far as the eye can see!

AND GOLD TEETH!

1. Airsoftslayer93 says:

I can see that, shamus be pimpin!!!

2. George says:

I dunno. I’m seeing it as a cheesy harem anime rather than anything like that.

Strange minds think alike – I imagined exactly the same. And I don’t even watch that much Anime.

2. Mari says:

Which prompts an alternative mental image where Shamus doesn’t get first place and the tsundere girl goes on a rampage, clobbering everyone to defend the honor of “her” nerd. I probably shouldn’t be allowed to watch anime any more.

1. George says:

Apropos of nothing but the offhanded mention of tsundere girls, I recently found out that tsundere cafes are an actual thing that actually exists in Japan.

Tsundere cafes: Like maid cafes…but with tsunderes.

This is a strange world we live in.

1. tengokujin says:

A strange, wonderful world.

2. X2-Eliah says:

I have no idea what a third of those words meant.

Ok, actually I just don’t know the concept/meaning of ‘tsundere’.

1. KremlinLaptop says:

http://tvtropes.org/pmwiki/pmwiki.php/Main/Tsundere

I’m sorry for the productive hours you’re about to piss away.

1. Dante says:

Am I the only person that can go to a (whatever) Tropes page or Wiki page and only read the one page and that’s it?

1. Jeff says:

Yes. Weirdo.

2. krellen says:

No. But it’s a skill that takes months of training to master – mostly via filing away large chunks of the site to memory.

3. X2-Eliah says:

No, same here. I don’t really see the appeal of that site.

4. Krissy says:

No, I only go to one page at a time. :)

No. No you shouldn’t be watching anime anymore.

You should be writing it. :D

3. RPharazon says:

A large purple gold-trimmed 1965 Ford Galaxie all sitting outside, equipped with enough hydraulic systems to lift a Saturn V rocket, fuzzy dice all hanging from the rear-view mirror.
Shamus all strutting.

This must be fanart. Someone who can draw, you know your task.

1. Fede says:

Fuzzy, 20 sided dice of course!

1. the_JJ says:

Can this happen? I will pay for this to happen.

4. Lord_Bryon says:

The illusion is kinda broken by this though …

They've adopted me as the pet nerd.

1. Bucked gold teeth…with an overbite…and braces.

DIAMOND BRACES!

1. Joe says:

The fuzzy dice are twenty-sided, vanity plate says “3.5-4lyfe”

3. Erik says:

I’m very curious as to why they would have you write the entire program on paper first. I’ve had similar tests where i had to write a few lines of code on paper, but that was just to demonstrate your understanding of a few basic concepts.

Maybe most of the other students where slow because they didnt understand what was expected of them? I’m also very curious as to how they measure who has won.

1. Will says:

In theory you write programs on paper to prove that you have an understanding of the required logic. I can’t speak for other countries, but these days in Australia ‘aptitude’ tests taken in University to get special consideration (for example skipping a core programming course due to prior experience) often contain pseudocode sections to prove you understand the core logic required to actually construct the program.

Given the situation Shamus described and taking into account the time in the past, i would imagine that the written program was a part of the mark and was probably done because conventional design wisdom suggests that you should plan things out before you actually do them.

1. Dwip says:

We did this about ten years ago in my C class for about the same reason, and it worked just about as well as Shamus describes.

The point really got hammered home to me during the final, when our professor (an overly pretentious type who delighted in wearing his B-2 bomber team polo but couldn’t teach) spent most of the test period debugging his handwritten code from the test on the chalkboard, then debugging his chalkboard debugging.

In addition to the grading thing, I kind of suspect that there’s a fairly strong element of “writing code on paper was good enough for Jesus, so it’s good enough for you” as well, or at least there was in my particular case. In Shamus’ case, I’d figure it’s just an artifact of going to school at that particular point in time.

1. Erik says:

Thinking about it, you’re probably correct.

Its probably from the outdated idea that ‘if you’re doing something for school, you have to hand it in on paper’

1. Zukhramm says:

At my all assignments are to be handed in over e-mail. Except those done at the computer science department, they still require you to print out a paper for them. I don’t know why.

2. Methermeneus says:

It’s not even just school. I learned HTML and CSS on my own (I don’t think my school even had classes for them at the time), but even as late as the nineties, all the books and tutorials I looked at said that you should write your documents out before writing them on the computer. I think at least one book actually said something like “Write your HTML by hand before committing it to the computer.” (emphasis mine) >.<;

Since I wanted to be good at web design, I tried for a while, but I was usually tired of it by the time I finished writing the heading, let alone the CSS. Plus, you tend to have debugging issues similar to real programming where you have to go back and change your CSS (which is usually technically a separate document, so it's also hard to organize when you write on paper, especially in a notebook; what if your edits to the CSS overrun your HTML or vice versa?), and sometimes you even have to separate out cases by adding another class, which means your CSS can also cause you to edit the HTML. And then there’s the fact that the reason you’re separating everything into classes and describing it in CSS is so that you’ll change how it looks, and you can’t see how it looks (and therefore if you might want to change something) until you put it on a computer!

Not to mention, unindented code is just as unreadable on paper as it is on a screen, so if you want to maintain proper indentation instead of wasting nebulous “screen real estate,” you’re wasting actual physical paper.

That said, it was probably more efficient to write it out than to do what I had to do really early on, which is to type on a Tandy word processor until it ran out of storage, ask my father for some time on the DOS/Windows computer, try hooking the computers together, fail because the Tandy was a piece of crap, print out the document, and transfer to the real computer via typing it again off the paper, which also doubled as my first edit.

1. Dwip says:

…Wow.

2. Ravens Cry says:

So much for a paperless society. ;-P

1. Bryan says:

“Why is it that every time someone says we’re moving to a ‘paperless society’, I get ten more forms to fill out?”

3. Dwip says:

Occurs to me that that sort of thing maybe possibly had some sort of utility back in the days when dinosaurs and punch cards ruled the earth, and computer time was really expensive, but that’s something I’d need to ask my dad or somebody else from the stone age about.

Not particularly relevant as an idea by the time Shamus did it, though, never mind my experiences in 2002.

1. MrPyro says:

Actually, that line of thought probably has merit. Back when you were programming punch cards, it was probably easier and cheaper to work it out on paper first before transferring it to the cards.

2. krellen says:

I was about to post confirming that this is the case. Hand-coding is an artefact left over from the days when computer time was vastly more expensive than programmer time. Those days were long gone even as early as the time Shamus saw his first computer, however, but old habits die hard.

Nowadays, it is actually irresponsible for a programmer to waste his time hand-coding. Even a 1,000,000 line compile will be quicker than that.

1. theLameBrain says:

I was also about to write in confirming this. Some of my first programming teachers used to tell stories about when they learned to program. Basically they would write the code, mail it, someone would enter it and then mail back the results.

This teacher was convinced that this method taught him to “think code” before he “wrote code” and that made him a better programmer. To be honest, he was probably right, but being a better programmer doesn’t mean much if your output stinks.

1. MichaelG says:

I’m from the end of that era. Terminals (typewriter-style) were replacing punched cards in the 70s.

It’s worse than you think though. You were supposed to write your code onto punch-card FORMS, with a box per letter. Then the forms were sent to typists who would punch the cards and return a deck of them to you.

Then you’d submit those to the mainframe guys (leave the cards at a desk), and they would be compiled and run when your job came up in the queue. A few hours (maybe the next day), you’d get a printout of your run.

Writing code on paper wasn’t just some arbitrary rule — there was no other way to do it.

Even when timesharing operating systems came out (meaning you could run more than one program at a time), and terminals were added, there was still an old guard who hated them.

Managers especially would say things like “we don’t want to waste programmer time using these guys as *typists*! And they didn’t want to waste expensive terminal time letting programmers sit and stare at code interactively. They could do that at their desks, with a printout!

It took awhile to realize the increased development speed you get with an interactive environment.

2. Methermeneus says:

Correction: those days should have been long gone by then. I was just talking to a friend who was in charge of data entry for a regional Prudential office in the late eighties, and she was talking about how they’d get data tapes from individual offices, and then if any data manipulation needed to be done they’d have to transfer the data to punch cards. I believe that particular office hadn’t yet realized that computers were updating and becoming useful far more rapidly than they’d expected, but my university didn’t have that excuse: The university library, during the short time I worked there, was using old punch cards for bookmarks and scratch paper because they had only just got around to transferring all the information from those punch cards to the newer computers the rest of the library had been using for some time. In 2005.

1. tengokujin says:

Seriously? You never told me this!

1. Methermeneus says:

It didn’t really hit me at the time. “Oh, hey, they’re using punch cards as scrap paper because they don’t use them for computers anymore.” It wasn’t until pretty much today that I realized that having just finished transferring data a couple years before (the 2005 is when they finished the transfer, not when I worked there) was kind of ridiculous.

Also, I think this was when we weren’t good friends yet (although my time sense does suck, so you may correct me on this), the summer after sophomore year, so I might not have known it’d be something that would interest you. Iirc, this was after we’d started Eric’s Eberron campaign, but before Steve’s abortive followup D20 Modern game; I wasn’t in JCA yet, and we definitely hadn’t started touring the local restaurants yet.

We’re talking old records anyway. I worked in Shipping in the basement, next to Special Collections, who were the ones who’d just finished transferring to modern computers. I expect that the rest of the library would just as soon see them using hardcopy records. (The working conditions of those poor people… They say it’s worth it since they get to be in charge of so much cool old stuff.)

1. Cuthalion says:

I like that you date things by which RPG was running. I am not being sarcastic.

2. Jarenth says:

Anecdote: I had a couple of Java classes during my first year at university. At least two of those classes ended with an examination where you had to write a program.

I bet you can see where this story is going.

Near the end of the time limit, I wrote a lot of ‘this code is identical to that one in line X, but I don’t have the time to copy it all over again‘. So, basically, trying to apply Copy-Paste in real life. Paper is an amazing medium, but not for programming.

1. Erik says:

Now, im not well versed in Java, but if you have to copy and paste code that takes longer to write then “this code is identical to that one in line X, but I don't have the time to copy it all over again” you’re probably not doing the best OO job possible ;)

1. Jarenth says:

I am a terrible excuse for a programmer, yes. But it was mostly stuff like for-loops: while programming, I would just copy those and change variable names where needed. Here, I had to write out for (int i=0; i<randomVariable;++i) every single TIME I needed it.

2. Naota says:

You know, a better question would be why so many school assignments still require you to write by hand to begin with when a computer email or printout could possibly factor into the equation. All of Shamus’s complaints about writing programming algorithms on paper apply to creative writing, especially once you reach the editing phase and find that for better effect a whole sentence could be moved around or slotted in somewhere it won’t fit. Also, when essays are done with a word processor you render draft copies and all of the excess work wasted replicating them for a final version completely redundant.

Obviously not every student has access to a computer for things like exams in the modern school system, but it’s madness when you’re forced to scrawl out a five-page analysis on some esoteric topic with dozens of perfectly good, functional PC’s looming over you within arms reach. It’s doubly madness if you consider that certain homework assignments still have to be written by hand even if the student owns a computer.

I spent so many long, painful hours writing out essays by hand in High School that I had all but resigned myself to believing that the academic world was impervious to ergonomics, then I attended a College and suddenly the only way to submit the vast majority of my work was online or via USB key. Other than the sobering lack of girls present (this being 3D Art & Game Development College, naturally), I could not have asked for a better system.

1. Kdansky says:

Obviously not every student has access to a computer for things like exams in the modern school system…

I saw a recent statistic which said that more than 50% of the local 10-year-olds had a smartphone (iPhone or Android). I was spoiled compared to my parents (who played with dirt, I assume), but I didn’t have a 600$computer at age 10 for myself. 1. Naota says: I’m not too surprised honestly, though I’ll never understand how anyone that young makes enough calls to enough people to warrant a mobile phone and all of the ridiculous monthly charges that entails. Then again I know for certain that I’m part of one of the strangest statistical demographics on the face of the planet right about now. 22 years old, male, Canadian, technologically savvy enough to assemble my own PC, attended College, owner of a laptop powerful enough to do 3D modeling on the fly… Never once owned or contemplated owning a cellular phone of any description. 1. Simon Buchan says: I have contemplated getting one just to have a number to put in web forms when they require one. Thankfully only one so far actually required *numbers* in there. 2. Methermeneus says: To this, I will give the reply my Burman (or is it Myanmaran again?) friend gave me: “There are people in Burma who don’t have a shower who have cell phones. Get a damn phone!” Right now the only reason I don’t have a phone is I don’t have a job and therefore can’t afford one. 1. Tuck says: It is Myanmar, but the people would be called Burmese, not Burman. 1. Methermeneus says: Ack. Idiot, forgetting eponyms… I think I must have been thinking of my friend named Burman. 3. burningdragoon says: I recently got a smartphone. My #1 reason for doing so: so I can check my personal email at work. And #2: so I can, if I’m bored, check other blocked sites at work. #3: I guess it’s pretty nifty. 1. Patrick the Catastrophically Unmotivated says: #4 Angry effin birds 1. Aldowyn says: I always thought Angry Birds was kind of pointless, because you could find essentially the same thing on the internet. Then I realized it was free, and got it. It is pretty awesome. So’s Fruit Ninja (Lite) :P And being able to check e-mail, access internet, and all that, is REALLY AWESOME. I just got mine… less than a month ago, and I still occasionally think “I have a smart phone!” 2. Jeff says: I’ve found I mainly use my smartphone to watch movies while I’m doing cardio, more than anything else. 4. I have a similar philosophy, except that I have the cheapest possible pay-as-you-go phone instead. Smartphones are cool and all, but to me not worth the monthly fee to use (most of the time I’m in work or at home, both of which have internet, or out doing something/cycling there/driving there). There are times when I’ve missed having one (mostly when I’ve been lost or wanted to look up something in the pub), but it’s not frequent enough to make me want to squander money on a smartphone when I could be squandering it on Steam and board games 5. Rick C says: I don’t know if it’s all about calls. My son wants a smartphone, but in his case it’s basically so he can play games. 1. Zukhramm says: I definitely have more use of a smartphone than a normal one. I don’t do many phone calls but using the internet even while I’m away from home? Yes, please! Add to that having a music player, graphing calculator and pretty much anything I can find or write programs to do. 1. Pete says: I basically use my Android for those times when I have five minutes to spend on the internet, which is a window too small to get out my notebook, turn it on, wait for it to finish loading all that extra crap I dont need, and wait for firefox and its five billion addons (my fault, I know) to show up, but big enough to click on Opera mobile and view a page or two. Also, you know, so I can claim that I carry around two computers on my person at ALL TIMES. The twenty-first century is a great place to live in, ainit? 1. Rick C says: Well, the other thing you could do is not shut down the laptop. :) 6. Abnaxis says: I have no landline. When applying for jobs, it helps to list a phone number :) Even then, until my work provided a smart phone, I only ever used a pay-as-you-go phone. If I wanted a$600 computer, I’d build one. And not pay $100/month for the privilege of using it. Or tie myself into a contract. 7. Ranneko says: I have a smart phone that I use a lot. But rarely make calls or send SMSes from. With the provider I have here in Australia I am likely to spend maybe$12 a month on it. With $9.90 of that being the 1GB data pack. With that in mind, getting a cheap phone for your child which allows them to call you in an emergency and allows them to find their location and provide it to you may seem like a reasonable investment for a parent. (Plus you can also subtly use the phone to determine roughly where they are using features like Find my phone) 2. 4th Dimension says: Cheating might be the answer. It’s MUCH easier to copy somebody else assignment, and claim it’s yours. And it takes MUCH less time. On the other hand, when it’s written at least the cheater has to write it himself, and might remember something, because he had to read it to copy it. Also it’s unlikely that in a small group two students have same handwriting. 1. Tetris says: I had a college professor who required all solutions to homework be handwritten, with exactly that motivation. Copying other peoples’ solutions was not considered cheating for that course, but everything had to be in your own handwriting. Hopefully we learnt something in the act of writing it down. This was explicitly stated at the beginning of the course. (Quantum Physics, given ten years ago, in case you’re curious.) 1. Aldowyn says: My physics (and, last year, chem) teacher makes us do outlines on paper with pen or pencil so we can’t just take someone’s electronic copy and print it off. Fairly normal, actually. WRITING code for an actual assignment, though, is just stupid. We printed off the code to turn it in, but that’s not the same. 2. Aanok says: I thought this as well. 3. Zukhramm says: Though if the assignment is a copy of another one, realizing it’s cheating shouldn’t be that hard. 1. Syal says: When there’s one right way to do things, cheating is only obvious if they copy something that was wrong. And then only if it’s uncommon. 2. 4th Dimension says: Yeah, but with science assignments (and computers qualify) there usually is a limited set of correct solutions, so very likely that more than 1 students will turn in what’s basically the same solution. 3. Meredith says: It makes no sense for programming, but I do find it helpful to write short stories and essays by hand and then type them in. I catch a lot of mistakes and do a lot of editing in the process. It’s a good system for me, but I can see why it’s frustrating for others. 4. Aanok says: Well, I hated having to turn in written essays as well in High School. But I can see that my teacher didn’t want us to cheat grammar and spelling with a word processor’s parser. And, even if I almost never did spelling or grammar mistakes, so that I could have possibly skipped handwriting and actually typed the text on a damn keyboard, it was not the same for a lot of my fellow students (sigh). And allowing me, or anybody else, for that matter, to turn in a printed work as an exception would have been unfair to the others. Of course, I always wrote my drafts on Word. I can see that this kind of logic would apply much less to liberal arts college students, but handwriting remains indeed a noble way to write. It keeps you more in touch with what you’re doing and I also find it more satisfying, if less efficient indeed. It doesn’t really make much sense for scientific papers, though. Or even less for code. 1. blue_painted says: On lazy first read I thought you meant you wrote code in Word! I have seen that done, with bold and colours and everything … and the compiler hated it from the first few bytes! 1. Aanok says: CANNOT BE UNSEEN 5. Abnaxis says: On the flip side, I friggin’ HATE typing out equations. I doubly hate math classes–that make much use of calculus and Greek symbols–which require assignments to be turned in in electronic form. It takes ten times as long! 1. anaphysik says: Any sort of equation writing and manipulation becomes magnitudes easier when written by hand. People forget that typing is *not* the best medium for everything – perhaps ironically, it’s great for humanities and social sciences (as well as plain old writing) where what you produce is great big blocks of text. Barring code, I find most work in sci/eng to be better handled on paper. It’s also a lot easier to diagram things on paper than on a computer. 1. Methermeneus says: My Semantics professor made us turn in all our work (if any of you have ever taken a course in mathematical logic or set theory, you might have some idea of the proofs we had to write) electronically, although she did accept printed hardcopies as well. She took off points if you turned in something handwritten. I counted myself very lucky to have the experience in LaTeX to turn out PDFs that actually looked good; most people had to scrape by with Word and the Lucida Math font. Obviously most of those looked horribly disorganized. That was one class where I did the homework by hand before transferring it to a computer: Finishing an assignment usually took between 30 and 45 minutes, then I’d have to spend the next couple of hours typesetting. Ironically, my internet was out the day the final (take-home because she wanted it turned in electronically once again) was due (and I didn’t own a printer at the time), so I had to turn that in on a yellow legal pad. 2. Retsam says: You get better at typing equations as time goes on. If you can do most of it without taking your hands off the keyboard, especially. It depends on what program you’re typing in, but I got about 10 times faster at the Microsoft Word equation editor when I learned that I can type x^2[space] or x_2[space] or (x+y)/(a+b)[space] and it’ll automatically make the superscripts, subscripts, and fractions that I want. Also, you can do stuff like \sqrt \pi \theta, as well. If you can do it all from the keyboard it’s way better than if you stop, take your hands off the keyboard, click a few buttons, then type a few more characters, then click a few more buttons that it’s overly painful. 2. Freykin says: If you still need to do so, check out LyX. It’s got a great interface for doing math equations on a computer, beats the pants off of Word/Open Office. Plus it’s free! 3. Rax says: When I was in school in germany (three years ago, mind you) tests in programming classes were also done on paper (so not even “first paper, then go to the computer), the reasoning being that because of time restraints it could be better to turn in code that wouldn’t compile than turning in only half the assignment because you spent too much time looking for a missing bracket. Somehow I see the logic behind this, I still thought it was stupid. 4. Destrustor says: I was nervous for you while reading this. So much tension. awesome. 1. SoldierHawk says: Good lord, so was I. I kind of guessed from the description of his performance that he won, but still: when he said it, I literally pumped a fist in the air. It might be a couple of decades late, Shamus, but CONGRATULATIONS! :D 1. Dwip says: This. Brilliant, brilliant payoff from the last part(s), and puts those older stories into so much perspective. 1. Aldowyn says: I can’t wait until he gets to the harder competitions, and maybe DOES get beat, because he found something that wasn’t ridiculously easy. 2. Irridium says: I clapped. Shamus, you’re a great writer. You should write a book or something. 1. Knight of Fools says: My adrenaline started pumping while I was reading, too. I started feeling nervous, wondering if I… Uh, if Shamus would make it! Oh, and he’s already written a book! http://www.shamusyoung.com/shocked/ I’m going to wait until I get an E-Reader to read it, though. It’s hard for me to read for long periods of time on a computer screen. 1. Methermeneus says: Or you could get the dead tree edition. It’s also available as a free PDF, but that would also require you stare at the computer screen, of course. 2. Graham says: *cough* http://www.shamusyoung.com/shocked/ (Whoops, didn’t realise this post had been open on my screen for hours, and I’d been beaten to it.) 2. asterismW says: Oh yes. It was just like reading a good book. You know the hero isn’t going to die. That would just be wrong and unfair and disappointing. But there’s always that little niggling doubt that maybe, maybe the world isn’t quite as fair as it should be. And then it all turns out OK, just like you knew it had to, but still you’re overjoyed and excited and happy. Great work, Shamus, both on your triumph and in writing about it. 1. Fishminer says: Very good way of describing the feeling. Reminds me of the first time I read Lord of the Rings and was genuinely convinced that Frodo died from the poison. I had even seen the films. I just assumed Peter Jackson changed it to make it less tragic or something. 2. Yep, though in ensemble-cast fantasy books characters can and do die, which heightens the tension for the genre-savvy cynical types (Other genres can of course also do this but it’s more expected in fantasy, especially sweeping fantasy stories) 3. Aelyn says: Obviously you don’t read George R. R. Martin. 3. MrWhales says: As was I. Especially at the end. 1. Cuthalion says: Me, too! I was surprised at myself, but I was very nervous at the beginning and thrilled when you won. Perhaps because I have the same problem with non-multiple-choice tests: I’m always afraid I’m not giving enough information or that I’m missing the point of the question! 5. Kdansky says: I did a lot of programming on paper, and I must agree with what you say. It is very impractical, except if you learn to properly write pseudocode. Something like  while (more names exist) if (name matches condition) print name else continue to next name  Which is essentially just a diagram in written form. 1. Will says: Pseudocode is quite useful for planning things out, writing actual code on paper not so much. 2. Alan says: Wow, that is quite some achievement, Shamus. From what you have said, I know that your coding has gone from strength to strength. Has your typing improved? @Kdansky good thought. When I read about writing it on paper, I would have been tempted to ask the teacher what it was for, depending on the answer given, I would have been tempted to write something like “working program and the rules for doing it”, and then start on the actual test. “All of the girls from cosmetology and culinary arts are sitting around me. They've adopted me as the pet nerd” So you started assembling your harem early then? 3. Atle says: A while-else construction is too much for my inner autistic. 6. goatcathead says: post first then read FIRST done reading…… it’s just like the test! not really. why wouldn’t you win? really? You are the nerdiest blogger I have ever read posts from. P.S. blogger isn’t a word but nerdier is 1. Scott Richmond says: I’m sorry, I don’t usually do this, but did you SERIOUSLY post a blank comment, read the post, and THEN make the comment meaningful? For some god awful reason I really hate that there is a person that does that. Like it actually made me angry, which makes me disappointed in myself because I should have been desensitized by the internet by now. 1. Sydney says: This. What kind of lame-brained headassery is that? 2. SolkaTruesilver says: The Shamus will usually take care of this. The Shamus cares about Justice. No need to take this to the street… 1. Destrustor says: The Shamus did take care of it. That comment is now dated an hour or so later than it was when I posted above, which makes it not-first and thus a double fail. Yay for The Shamus! 2. X2-Eliah says: I don’t get this joke. You are clearly not on the first of the comment list. Looks pretty lame now. 1. Abnaxis says: I’m pretty sure Shamus has a policy of relocating “FIRST!” posters down the list, to make them look like fools. In a way, it breathes more life into the joke. I laugh as the Firsters try ineffectually to do their thing… 2. SolkaTruesilver says: The Shamus has exerced his Justice. The man was, indeed, first to post. But The Shamus simply changed the time stamp the man post, so his silly useless comment would now be lost in the middle of the comment sea. I was right to trust The Shamus :-) 1. Destrustor says: The way you say “The Shamus” makes me read your comments with a vortigaunt voice. Its so much fun. 7. Lanthanide says: At university, all of our exams were on paper, none on computers (actually now that I think about it, we had some tests for databases and SQL on computers, but never final exams). We didn’t really have many pure programming language courses though, just a couple, but they were on paper. Your answers were to be written in pseudo-code, and typically no more than about 15-20 lines and just focussed on solving a specific problem, rather than writing an entire program. IIRC the questions were asking about specific aspects of logic that you had to had a grip on in order to be able to answer them and they were really after the logic rather than the syntax or anything trivial like that. Seemed to work quite well, really. 1. Rodyle says: Netherlands over here. Some of the informatics courses I’m following for my minor do require me to indeed write out sections of programming. However, these are the subject which learn you the basics of a language, and are usually a minority of the questions. Other courses do often have questions on programming, but they want answers in pseudocode, which is easy enough to do. Also: over half your grade does not come from the exams but from assignments you’re going to make in your own time. 1. Jarenth says: As I’ve posted somewhere else, I’ve had to do this as well. And while I can think up a dozen half-plausible excuses as to why it’s done this way — to prevent cheating, because computers are expensive, because it’s fun to make nerds’ hands cramp up with unused writing skills — ultimately it’s just a very poor way to gauge programming ability. 2. Abnaxis says: To me, all programming tests should be done in pseudocode. Language syntax shouldn’t be the focus of a programming class, technique should be. I’ve had classes do it both ways, and it’s annoying as hell to miss points for a missing “static” or random missing line terminator or whatever, when the real focus of the class was overall programming concepts. 1. Aldowyn says: It depends on the class, I would think. A “Programming” class shouldn’t care about syntax, but if you’re taking a class that’s specifically teaching you how to use a new language and assumes that you already know the principles, then it should use syntax. And be on a computer. 8. Jjkaybomb says: Bwaha! I’m a chicken-peck typer too, and everyone always looks at my speed with horror. Sure, I’ll never be as fast as the proper way, but I am pretty damn fast, so its no big deal. Do you still type like that? Or was it easier to switch, seeing as how the computer is your job/life? 1. I still type that way and I am a professional programmer, so Shamus may well have stuck with it. As you say, it’s still plenty fast enough most of the time 2. Matt K says: I’ve been a two finger typer since forever. We took a computer typing class in like 4th grade (on Apple IIc’s) but I figured out a way to cheat the program (by failing the exercise repeatedly, on the 5th try it’d send you on). I can type pretty fast (and without looking at the keys) so not a big deal despite the fact that I type frequently for my job. However, my handwriting is terrible and I’ve taken many exams in which my hand would hurt pretty bad afterwards (3 hour written exams are not fun). 1. Chris Robertson says: I learned to type on an Apple IIe. In 7th grade or so, we took part in a typing class (couple week session?). It didn’t take long to find an exploit in the testing program. It counted the speed and accuracy separately. So we would type the required number of characters as quick as possible then backspace the whole line and type the requested phrase. For example, if the phrase the test gave to type was: Sally sells seashells by the seashore. All you had to do was pound out 41 (or more!) random characters (which would count as your speed score), backspace over the whole thing and peck out the actual phrase. Then hit enter. 156 words per minute with 100% accuracy? No problem. I didn’t learn to touch type properly until my college career. 1. Aldowyn says: Sucky program. Most of them just measure it all at the end, not separately. Shucks, there are GAMES (Typer shark, by Popcap. Others…) that measure you based on WPM and Accuracy during the level. 2. Matt K says: Honestly it may have been the same program. My wife decided to try and learn to type but I actually have a pretty high WPM just pecking so never felt the need to re-learn. 3. krellen says: I use a bastard hybrid typing system. I don’t use home rows, I “touch type” in that I know where the keys I need are, but anyone watching me actually type would probably wonder how the heck I do it. Several people I work with have “ergonomic” keyboards at their desks, and I have an extremely hard time using them, because my typing style is so erratic and varied that I simply cannot conform to using one hand for one set of keys and another hand for the other; both hands share duties on most keys, and often the left hand does far more work than the right. I’m not even sure how I type myself. 1. Falcon says: I pretty much do the same thing. It’s born because most of the typing I do is work related, and I work doing CAD design. As such a vast majority of my typing uses the same subset of numbers and letters. It is therefore impractical to have a standard typing style. My right hand gets mouse and num pad duties, my right gets everything else. When doing actual typing (like here) the unbalanced typing I do does bleed over. I type all my y’s with my left hand for example. My right hand does everything with the ctrl, alt, and shift keys. It’s not something that would grade well, but I do type fast, and it works. 1. Aldowyn says: I type normally :/ (Home row, all that). I can type at probably… at least 80 WPM with 99% accuracy or so. I have no idea how someone can type with one hand, :D 1. Falcon says: I don’t really, guess I could have been a bit more clear. When at work yeah I type with one hand, but I’m alternating between sets of numbers only, and short sentences. I type numbers more accurately using the num pad (muscle memory and such). I only ever type short (5-10 word) groupings in this mode. I do use both hands when doing actual typing, my left hand is just dominant on the letters. Usually left covers 60% of the letters, right 40% plus modifiers. Typing speed in the 60 wpm range. At this point I have no incentive to change. 2. Abnaxis says: I’m exactly the same. Taught myself typing playing Worms, taunting other players in chat at two in the morning while I was in middle/high school. It was dark, and a lot of the games I played you had ten seconds to type what you were going to say before it was your turn again. My speed’s not bad, but I always take a while to orient myself on a new keyboard. 3. anaphysik says: I tried to discern how I myself type (which is odd, because I do *not* touch type – I look at the keyboard and my eyes occasionally pop back up to the screen to make sure I haven’t totally screwed up – so I really should already know how I type durr…) and realized that I have no idea how my typing got like it is, or how I could properly describe it. I suppose the best I can say is that it’s like a two-finger pecking thing (index and middle fingers on both hands do most of the work, with the left-hand ring finger getting used only for the ‘A’ and ‘Q’ keys – maybe because of video games?). It’s weird, but it works. (And I’m a young feller who’s been typing for most of his life – touch-typing methods just never worked for me, I guess, despite having learned them first.) 4. TSED says: I learned how to type from… EQ. THAT game, yes, the MMO of broken dreams, etc. etc. When you’re trying to communicate with others while running at the fastest speed the game engine allows (BARDS HO) and you have some of the nastiest, most vicious things you can imagine barrelling towards you, unimpeded by things like “terrain” or “trying to figure out their way around the zone”, you learned to type FAST. And reliably. And, if need be, to type words while using arrow keys (and numlock, thank goodness for autorun). Anyway, some time in highschool I had a “computers” course. I hated the teacher because she wasn’t really a teacher, but one of those “I have a curriculum and I WILL FOLLOW IT!” types of educators – and I had only had a handful of them in my entire life at that point. She was seriously one of the first. Anyway, typing test came along, and she covered up the keyboard (to prevent look-typing) and said “go.” 85 wpm, 0 errors. Not corrected errors, but flat out 0 errors. I’m all smug and proud of myself, seeing as how getting 100% wasn’t anywhere near 80 wpm. “You fail.” ..! “Excuse me?” “You didn’t have your fingers on the homerow.” “… But I didn’t make any mistakes, and my wpm was high.” “You didn’t have your fingers on the homerow. You can do it again, but right now, you’ve failed.” I avoided Mrs. (or Ms.?) Larose’s classes for the rest of my highschool career. I was more than competent by all the standards that were measured, but because I had an approach that was more practical to me as a gamer (numbers, shift, tab, enter, and arrow keys were VERY important to me, so my hand took a weird position) I “was typing wrong.” This is like failing someone when marking on penmanship because they held their pencil funny, or failing someone on a technical level of instrumentation because they have different taste in music. 4. Irridium says: I alternate between touch-typing and the “proper” way. Honestly, I just don’t think about it, and let my hands do what they do. If I think about it, I screw up. 9. Tobias says: “Cosmetology and Culinary Arts are the largest classes in the school” This makes me wonder, what kind of test do those take? Do they have to do a written planning too? One reason for the written programming idea is, that tests on metalworking usually start with a test on drafting (drawing). Some people seem to think, that as software is a product, you have to plan it first, otherwise you waste raw material :(. As we are talking about a vocational school, the computer science parts are probably part of the technical courses, which are (were) dominated by metalworkers, plumbers and so on. 1. Zak McKracken says: At first, I was appalled at the idea of doing a programming test on paper, but actually it’s not a bad idea: The aim of the test is not to have a working program but to test your abilities of creating one. So if you force the students to write the first draft on paper, then let them actually do it on a computer, it’s easier to judge their ability to get it right the first time, and then the ability to find and remove errors. The good students have the correct structure on paper and few syntax errors, the not-as-good ones need to rearrange the algorithm before it works. Just hacking some code into the computer and then bugfixing until it works is the method I was using in earlier times, but having to write something on a piece of paper that will get graded, too, forces you to think about it before you start writing. At university, people use pseudocode, but after you’ve just learned one single language at school that’s not really an option. 1. Methermeneus says: The problem with this is that it would have been a better use of the students’ and the proctors’ time to have a test asking you to write short sections of pseudocode to match various cases. It also would have been a better test of ability than “write the whole program that you’re probably going to write at least a little differently on the computer.” Writing code isn’t useless, but it is kind of stupid to do a whole program that way unless writing helps you learn, and you’re doing it for yourself to help drive a lesson home. It’s not the only way to test if you’re good enough at coding to avoid the “kludge and debug” method. I do like the suggestion of comparing it to metalworking, though. The people in charge of the VITA competition were probably used to other VoTech fields that do, indeed benefit from putting exactly what you’re going to do on paper before you do it. (If I were in charge, I’d still have a short test in addition to that, asking for case examples, but for all I know that actually did happen outside of the computer programming section.) Yes, the culinary arts students probably also had a written section, possibly with a test asking things like, “At what temperature is poultry cooked, and approximately how long should you cook a whole chicken in an 350 degree oven to achieve that temperature?” (Answer: 165 degrees F, and it varies by as much as an hour depending on the size of the chicken, but they’d probably have been given an average size in class to work from.) If they were simply told to make some variety of food demonstrating, say, five techniques from a list of fifteen, then they would have to use their own recipe and possibly write out the procedure beforehand as well. (Hey, I think I just designed a decent culinary arts test!) I know next to nothing about cosmetology, but I assume that someone versed in it would know how to make a written section as easily as I did for culinary arts. 2. Patrick the Catastrophically Unmotivated says: I’ll tell you what kind of tests they took. They had to style my Mullet of Righteousness (thats right, I named it) and then they had to cook my breakfast. The written part came when I told them how to do it. They were made to do this, like all other second class students, to serve the mullet wielding alpha males in the school. “Just trim the back, thin the sides and feather it back. And then get me some over easy with wheat toast, woman” I actually miss the 80’s sometimes. All you needed to exert your dominance over the herd was a can of aqua net, a sleevless jean jacket, a tight pair of Levi’s and a rolled up pair of socks. Hell yea…*devil horns 1. Methermeneus says: What we now need is a deathmatch between the Mullet of Righteousness and MacGuyver’s Mullet of Ingenuity. 2. xXDarkWolfXx says: When ever i see someone ask for wheat toast i always get confused because i wheat toast. 10. noahpocalypse says: Ouch. That sounds very, very painful. I sympathize; my handwriting is pretty slow as well. Whoa, Shamus, looks you’ve got another side to you! I’ve never seen that before! 1. xXDarkWolfXx says: My handwriting is really fast but other people being able to READ it is really slow. Iv had people compare my writing to Egyptian (As in the ancient building the pyramids Egyptian) 11. Zak McKracken says: Some thing that occured to me over the course of your whole autoblography: It seems you spent a large portion of your live oblivious to what all this is about. You realize _after_ highschool that higher math would have been more interesting, in primary school you don’t know what school is about in the first place, in seven springs you’re unprepared, and the year after (say, what happened to mandy?), now you go into this test not knowing which town it is in and what the procedure is going to be… I know in part this is just your style of writing, but by and large you seem to have been unaware of the larger context of your life. I think “reactionary” is the word for this? While at some points I do wonder whether noone ever talked to you about why people go to school and what it’s good for (“non scolae sed vitae discimus”), or about making some conscious and informed choices (like: higher math or not?), but in parts this is something I feel very familiar with: Being in a situation, not really understanding what one is supposed or expected to do and why, wondering why everyone else magically knows what’s going on and what to do, deciding to just follow your nose and ending up either looking really really stupid or doing so much better than the rest … In retrospective it’s always easy to find the mistakes made, and to find out what the missing piece of information was that everyone else apparently had and that would have made everything so much clearer, but I’m still struggling to understand why some seem have this information _before_ the event, yet if you ask them, they’re not aware of it. Must be a herd instinct thing that I’m missing… 1. Rayen says: to be fair, when i was in skillsUSA it’s actually against the rules to tell your students about the test, provided you know anything to begin with. You can only know the subject. So yeah he didn’t know the procedure here because he wasn’t suppose to. However the rest of your post stands up, it is kinda weird. 2. Zak McKracken says: Funny theory I just came up with: Maybe there’s an uncanny valley of self-awareness, where on one side you just go along with what you’re told and/or what everyone else is doing and on the other side you’re perfectly aware of what’s happening and your own part in it, how people will react to to you and what the reasonable courses of action are. Somewhere in between, you understand that being a sheep isn’t what you want, but you still don’t understand enough to control the situation. Mind that my distinction of “sheep” and “self-aware people” isn’t meant per person (It may look as if someone has no will sometimes, but I’m sure that’s not actually the case). It’s per topic. You may know all about cars but vote for whoever mum and dad always voted for. Or you may be a genius scientist but listen to whatever’s on the radio. Being on the self-aware side of everything you do would make your head explode (think: Total Perspective Vortex), being on the other side in all respects would make you stop being a person. Does this make sense? Should I stop developing this kind of theory in the comments of other peoples’ blogs? 1. MichaelG says: I know when I remember my past, I frequently have that “what were you thinking?” reaction. Like I was sleepwalking through the entire thing. I’m not sure if that’s what comes from being a day-dreaming kid, or just being self-absorbed. 1. Mari says: Yes. 2. Patrick the Catastrophically Unmotivated says: You are completely and utterly overthinking this. This is not a matter of some bizarre self-awareness or deep emotional attachment to… well to anything. He liked computers. He gave two shats about the rest. It really is that simple. Really…. 12. Chuck Henebry says: Shamus said: 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. The mystery I’m waiting to see you answer is when you learned to write so well. As a kid, you struggled with how to tell stories, yet now you’re an engaging writer, able to explain complex processes to laymen in an entertaining way. 1. swenson says: Maybe it’s simply being able to write things down that helps? I find that I can speak much more eloquently in writing than when I try to talk out loud. I tend to ramble on and make no sense, mostly because I don’t know when to just shut up. But in writing, you can kind of edit as you go (or after you finish), which helps a lot. 2. Anachronist says: In the past, Shamus has credited this blog as a primary factor that not only improved his skill at writing, but showed him that writing is something he loves to do. 1. Paul Spooner says: Indeed. But not this blog, no… the Lost Blog, which No One Ever Read! It is there that he learned his skill. From what I’ve hard, it was a pretty rough learning experience. There’s a reason it was lost. 1. Destrustor says: Man, now I want to read that lost blog. 13. Rayen says: Man i remember skillsUSA. Sound Editing, first place, north texas regional. god the awards thing is a nerve shredder. Third not me… Second not me… first (there’s no way it’s me i didn’t win… nuh uh…) me… O_O i won? ummmm… didn’t prepare for this… Anyway, an entry i can really relate to you know having done the same thing in a different subject. also those buses were there really f-in early. 14. potemkin.hr says: Cool. Our high school video club went one year on the state finals with a documentary for which I did the montage, but we ended up fourth in the end, so no medals here. We had a short documentary (around 7min) which covered our student’s trip to Japan. Of course the favorited gymnasium team won with an inferior video -.- 15. Piflik says: I actually do code on paper sometimes, but only when I don’t have access to my PC…I have a little black book with me, and there are little algorithms written in there (instead of girls’ numbers, like real men have in their black books…) 16. ccesarano says: All of the girls from cosmetology and culinary arts are sitting around me. They've adopted me as the pet nerd. This can so easily be a good thing or a bad thing. On the paper thing: the only sort of paperwork I had to do in College for planning was UML Diagrams or other such things. For code, that’s what I’ll typically do. I’ll use paper to jot down what I might need in a class, it’s functions, etc. and mostly because I don’t have Microsoft Visio to do it with. I can’t imagine writing a whole program out. Of course, that was College level. I don’t remember my High School C++ class well enough. All I remember is our teacher was young, cute and busty (though she dressed conservatively, so I never quite got those typical high school dreams of nailing my teacher. That’s what most teenagers fantasize about in those situations, right?) In fact, I don’t even remember a lick o’ C++ out of that class. Which is good, because if I move on to real programming it’s going to be with C#, and if I had a bunch of old habits and conventions in my brain that could make it more difficult. 1. SolkaTruesilver says: In itself, it’s usually a bad thing if you are into any of these girls. however, it usually is a good sign of your natural ease around girls. Girls like to hang out with you naturally. It often means that you will be in the nice “friend” category, until you succeed at approaching a girl without befriending her.. We can easily surmise, with this reporting and with Pat’s comments on earlier post, that Shamus has the potential to be quite a lady’s man. No idea if he actually embraced the potential. Well, until we get to the part where he meets his (future) wife, isn’t it? :-) 1. Mom says: So, everyone is waiting for ever more Shamus history? Will this blog outlive me? Also, we demand a picture of you in your VICA blazer. We want to publish it in the dictionary, next to the entry “pet nerd.” 1. krellen says: A formidable legacy. It’s not everyone’s son who touches so many lives. 2. Mari says: I second the Mom’s motion for a picture in the +1 Blazer of Dorkitude. I call it that only because I’ve seen said blazer before on others and not even the coolest, most mulleted dude can look like anything but a dork in that blazer. Billy Idol would look like a nerdy little cretin in that blazer. 1. X2-Eliah says: Now I want to see that blazer on Patrick in his mullet-sporting era. 1. Jarenth says: Request seconded. 3. Susie Day says: yes! a picture of you in your blazer please! 2. Zak McKracken says: In fact, I don't even remember a lick o' C++ out of that class. Which is good, because if I move on to real programming it's going to be with C#, and if I had a bunch of old habits and conventions in my brain that could make it more difficult. That seems to depend heavily on what “real programming” means in your context. We just had an argument the other day with a colleague whether it would make sense to go from plain procedural C to C++ and use that new-fangled object oriented stuff for some rather big project (~20 regular coders and many more occasional contributors, modular structure, long term development). The other guy was against it, rather wanted to use FORTRAN. 77. Can any of the actual programmers here confirm that object oriented programming should make it a lot easier to code, test and maintain a large modular code? Modular means that there are interchangeable modules where the user decides which one is going to be used in one run. The whole thing is very very numerics-heavy massive parallel software. We’re using computers for computing stuff. 1. Robyrt says: Yes, object-oriented code is a lot easier to maintain. I won’t say easier to code, because it sounds like you have a lot of old-school programmers who can crank out old-style code just as quickly. 2. MichaelG says: It’s not really the object-oriented part that matters. You need to have clean, stable interfaces between modules. If a single programmer is working on a module, they can do what they like internally. What is important is that they are not pulling the rug out from under others as they work. Object-oriented programming makes you design interfaces for modules (good), but also for all the internals as well. Some old-school guys will find that tedious. 17. John says: Just think if that was today we wouldn’t question why there was a surprise task – after all Reality TV is full of extraneous challenges “Before you start your culinary masterwork to win$50,000 and prove yourself the Most Excellent Chef, there’s a twist… you might sing out loud a poem extolling the virtues of all of your ingredients, in ABBA rhyming structure, starting… NOW!”

18. Ruthie says:

Reading this, and hurriedly reading the end to find the results, I wanted to stand up and cheer for you.
hehehe. way to go big brother.

19. Arjen says:

The idea of a pet nerd actually had me laughing harder than I’ve laughed for a while. Even though I don’t laugh when I’m alone.

By the way Shamus, I’ve been silently reading this series up til now, but something bugs me. Past a certain point, most of these posts are about your school career. I know you might find it too personal, but why aren’t you telling us about your love life? I would be very interested in reading how the socially awkward genius came by his first girlfriend.

1. Ruthie says:

Whoa, she just called you a Genius.

1. Patrick the Catastrophically Unmotivated says:

I know. Sometimes it can get a bit deep in here…..

2. RTBones says:

Antarctica. House.

(Five points if anyone gets the reference.)

20. burningdragoon says:

I don’t think writing code on paper is a bad thing on it’s own. It doesn’t make a lot of sense for a contest like that and it doesn’t make a lot of sense to write the entire program on paper and the type it up.

Almost all of my college CS exams (note, not assignments or projects, just exams) had some section of writing code. They were usually only small portions of stuff though. The main reason for this I believe was more about not having access to the internet so you had to know what you were doing. I don’t know if it was normal, but in my school professors would never sit in the same room during the exam. I also think it forces you to think through the program so you know how it will work before you would run it instead of trying something and seeing if it works, rinse/repeat. I’d say being confident that what you have written would work without the computer telling you so is a good thing.

On programming contests in general: I’ve been to a few and they all seem to work the same way. It starts off *grumble* early *grumble* my whole saturday *grumble grumble*. Then on the way home I felt it was mostly worth my time and *gasp* pretty fun. Of course being in a group that has no problem cracking jokes during the whole thing helps a bunch.

Edit: yeah I didn’t think that would be as much as it was. whoops.

21. Mom says:

I was there. I still squirmed while reading this and breathed a sigh of relief when you announced the results.

1. Scott (Duneyrr) says:

A true sign of good writing.

1. SolkaTruesilver says:

No kidding.

Can’t wait to read that Steampunk novel.

22. Aulayan says:

I think the above comments show that you’re definitely a good writer. You’ve gotten your own family, who already knew the outcome, twisting in anticipation at how it’s going to end.

Let alone those of us who had no idea. (Because in an autobiography, the rules of story get thrown out the window). Congratulations on the win, though I do hope they’ve changed how they test programmers by now.

23. Robyrt says:

I used to do this sort of thing, hyperventilating over my results on something which I was clearly great / terrible at, when it was obvious what the result was going to be but I couldn’t admit it to myself. Good to see the story getting a little more drama, though :)

24. Meredith says:

It sounds like these competitions really taught you something. I’m interested to see what you did once the torture of school was finally over and you could move on. Way belated congrats on the win. :)

25. swenson says:

Oy, handwriting code. Quite possibly my least favorite thing to do in the world. Somehow, my brain doesn’t work quite right when I’m trying to handwrite code, I tend to mess it up horribly whereas if I could just type it out, I’d get it right.

Last year in one of my classes, we had to handwrite code on every single test… mostly code for adding to/deleting from stacks and queues and occasionally circular queues. The problem is, while this does test your knowledge of those particular bits of code, that’s all it does. So we all ended up just memorizing those particular lines. If the intent was to see that we know how adding/deleting worked, it could have been tested just as easily with asking us to draw out a flowchart/other diagram or writing some pseudocode, in my opinion.

But then, I’m not a programming teacher. Maybe he got something out of our handwritten code that I just didn’t see. I dunno.

1. swenson says:

Also, after reading the comments, I’m… kinda surprised. I knew programmers are traditionally horrible typists (which seems backwards, but it’s very true!), but… wow. I’m actually a fairly decent typist (which I attribute to one part multiple years of forced touch typing in school which I only occasionally cheated at and one part simply typing SO MUCH that I had to speed up eventually). I do a mixture of touch typing and looking at the keyboard; I never got the hang of using the little nubbins on F and J to center myself. Still, I can go faster than a lot of “real” touch typists who don’t look at all, so I’m happy with it.

26. Andrew B says:

Am I the only person who misread “comsetology” (so not a word) for “cosmology” and imagined Shamus surrounded by a bunch of Carl Sagans?

27. psivamp says:

I can recall very few times when I’ve written out code on paper. Most of it was on quizzes or tests for programming classes, but I did write a few whole programs while in boot camp.

Something you don’t hear much is how horribly, mind-numbingly boring boot camp is in the Navy. There’s a ton of down time where there’s nothing to do but iron uniforms, shine boots and study the pathetic academic materials. I didn’t care about any of that. My uniforms weren’t bad enough looking to get me chewed out, so why make them better. The academic stuff is silly, so again I don’t bother. This left me with hours of nothing. I filled a notebook with song lyrics and another with code snippets of C. I was losing my mind so badly that I was writing code and interpreting it just to try to keep busy…

1. Syal says:

There was a guy in boot camp that showed us a way to pass the time.
Make a circle with your left hand, put the index finger of your right hand through the circle, and then using your right hand, try to catch your finger.
He said he’d only ever caught it once.

28. Ben says:

I went through the exact same thing at a similar competition in high school. It didn’t occur to me that anyone would have any trouble with the assignment, but I ended up winning with a perfect score while others apparently hadn’t even finished all of the tasks.

1. Ben says:

BTW I assume the paper thing was a relic of paired programming competitions. There you are assigned a single computer to you and a partner, so one of you types while the other preps on paper. It does help a bit when its paper-or-nothing.

29. MichaelG says:

My version of this story was the science fair. We had one at the high school level, and the best went onto the nationals. The second best was sent to the state competition.

I had read about “perceptrons”, which were a precursor to neural networks. I wrote away for more information, and got back a huge listing of code in FORTRAN.

I converted that to APL (a very odd programming language, but the only one I knew), and then wrote my own automated teacher to train a small network to recognize letters of the alphabet.

That was my science fair project, and my description of it made the judges eyes glaze over. So I won second place and went to the state competition. Unfortunately, the New York state science fair was a really tiny deal, with only a dozen or so contestants.

I remember giving my talk again, in the hanger of an air force base. Funny, but I can’t remember how I did in the competition though.

30. acronix says:

When I had programming lessons at school (at somewhere around 2006, they made us write the code first too, but it was called “pseudocode” and you didn`t have to write with the actual language but put the general structure down. At first I thought it might be useful to save time, but once I became better at programming I realized it was probably less useful than I thought.

Also, our teacher was a math teacher who had done some kind of one year course or something, so maybe that was the reason.

31. William says:

Shamus: your entire early childhood and misadventures through the public education system being shoved around through a terrifying jungle of social dominance sounds eerily similar to mine (right down to the middle school special ed classes and being on drugs in early childhood, social misfires and being aggravated by rote memorization and busy work, down to my test scores being waved in front of teacher’s faces if they ever questioned my intelligence), if you substituted music for programming. It’s good to know there are others out there that have made it out alive of this maelstrom of chaos and horror that is high school and went on to have happy and successful lives.

32. Rutskarn says:

My dad, also a long-time student of computer sciences, related that his experiences with writing out programs were pretty similar. In one case, his final exam was being presented with a complicated problem, then being asked to write out a program onto the exam paper to solve it. Apparently he’d been experimenting with something similar very recently, and already had the right approach down.

I suppose at that level, there were probably more students than there were computers to test them on, but this still seems an embarrassingly silly way to do it.

33. EÃ¤rlindor says:

WOOOOOO0000000O0O000Ttt!!!

Sorry, I wish I had something more intelligent to contribute, but I don’t.

Anyway, way to go!

34. Rosseloh says:

You either didn’t mention it, or were lucky to participate before they started doing it: when I was in SkillsUSA just last April, I remember that the majority of the day was the stupid ceremonial crap because apparently Skills is this big organization with rules and codes and ugly red blazers and….well, if it isn’t apparent yet I didn’t care about all that, just my competition. 2nd place in state Internetworking, would have been first but part of our test was a phone-support section, which I suck at. Still, I’m happy I didn’t go on to nationals because it would just be more of the ceremonies.

That’s awesome! It almost sounds too easy. Perhaps I should enter some competitions like this…

36. Regiment says:

I wanted to jump up and start cheering for you before I remembered that this all happened already, probably around the time I was born.

Still, way to go.

37. Dasick says:

NOTE: My nick is not Da Sick. It’s Dasick.

*sigh* handwritten code… when there are computers available… *shudder*

Don’t get me wrong, thinking code through is very important, I’ve done that before on my own accord, but here is something that most people don’t realise:

Programmers are designers.

A program is NOT a product, it is essentially a design of instructions the computer reads. The product of a programmer’s work is when the computer interprets/runs the program, but the program itself is just one big design document. And because processing a program only costs the electricity it takes to run it, prototypes of the final product are a must have to facilitate the design process.

Whenever an instructor asks you to write out the program first and you wonder what the hell do they want that for, please use the following clueless-to-normal translation:
“Yo dawg, I heard you like designs, so I’m making you design the program on paper before you design before a computer, so you can design while designing and think it through before you think it through”

Yep, Shamus you were being trolled a couple of decades before that meme showed up :D

I’ve done paper programming before, and my high school computer science teachers, while definitely very good programming teachers, did feed us the dinosaur age tales of how they had to write out their programs to send off to punch card people, and I did hate the fact that we had to write a program on paper during the exams before touching the computer very much, but I’m a grin-and-bear-it kind of person, so I just… yeah. I understand the need for UMLs, pseudocode and Flowcharts, since they’re more of a broad, overall design and they really help with understanding and working out the flow of the program, when it’s either visual or written in a language you speak and think in fluently.

I remember a time when I actually did the UML designs for a program. It was an RTS done in C# (using the XNA library). It was partially a bonus mark assignment, partially an exam review question, and partially something I wanted to do really bad. Teacher provided the design doc, and it was a pretty weird one. My GR12 CS teacher was a console fanboy, and he hasn’t played RTSes (at all I think), so there were a lot of design faults with it, mainly in the balance department. At the same time, it was a fresh view of someone who had an idea what an RTS is but who didn’t understand RTSes at all… and as such there were some pretty original takes on the formula.

Anyways, I sat down early on the weekend to design a UML, then spent the next two days building it. And it was the most amazing programming experience I ever had. There were only minor bugs that I’ve encountered. I had a functioning prototype at the end of it. The framework for the game was in place I just needed a victory condition and some unit abilities.

Here is the question I still ask myself, and think it’s very important that I find an answer – why was I so productive in those two days? Was it a freak occurrence? The result of good planning? Or was it that I was just so good with C# that I managed to do something I’ve never done before with such ease?

And more improtantly, what do I do to make it happen again? :D

1. Syal says:

…I just wanted to see if we can call you Das Ick.

1. Jarenth says:

Or maybe Dasi C.K.

38. Alan says:

i competed in the skills usa programming last year and are happy to report you no longer need to write your code on paper. the programs are still quite simple though and not difficult at all with a basic understanding of a modern programming language.

39. Alex says:

I’m not going to lie. I actually pumped my fist in a congratulatory gesture when I finished reading this.

Also, I wish I could have been a pet nerd at some point. Sounds like a nice gig.

40. brunothepig says:

I know this is two years late and all that, but I just wanted to say that “programming on paper” was a major problem I had in my brief time at University. This was justifiable in their case, it was a matter of their not being enough computers available for the ~100 students at once to sit an exam, I’d even had a lecturer apologise about it before. But it was still huge to not only have to write out code, but we never touched a computer so it was impossible to know if our program was working.

So yeah, I am very familiar with what you were feeling then.
EDIT: After reading the next entry, just, ouch. Here I was thinking “at least you got to properly test the program after”.

41. Aaron says:

“I don't want to be disqualified for something in the written potion of the test.”

42. We feel proud of you Shamus!

43. Mr. Wolf says:

When I started some coding classes in uni (circa 2007), one of the more frequent requirements was to write and submit pseudocode at least a week before actual assignments were due. The problem was you couldn’t tell if this solution was correct or not – you usually needed to go back and rewrite large portions while coding. I tended to lose marks because my submissions were “too code-like”, and fair enough, as it was meant to be about program flow rather than program structure.

That class had a lot of old-school throwbacks: we would SSH into a Unix server, navigated by command line, wrote our code using Vim and compiled it using the GNU C Compiler. No fancy IDEs for the novices.

Fortunately all this was only for the first semester. It wasn’t the most efficient way to program, but I enjoyed it. If nothing else it meant we truly appreciated how good it is to have a debugger.

You can enclose spoilers in <strike> tags like so: