About the Author
Mass Effect
Final Fantasy X
Batman:Arkham City
Borderlands Series
Weekly Column
Champions Online
World of Warcraft
DM of the Rings
Good Robot
Project Frontier

Autoblography Part 28: VICA State

By Shamus
on Thursday Oct 13, 2011
Filed under:


This is the morning of me leaving for VICA state. I was lugging around a suitcase AND a gym bag?  For a three-day trip?  What was I carrying in there?
This is the morning of me leaving for VICA state. I was lugging around a suitcase AND a gym bag? For a three-day trip? What was I carrying in there?

The other ten kids in this room are from all over the state of Pennsylvania, each of us representing a Vo-Tech school. We’ve met in the middle of the state, in this small shabby classroom, to find out which one is the better programmer.

It’s been a long road to get here. I’ve been captivated by computers since before I understood what they were. I’ve wanted to program them since the day I discovered such a thing was even possible. While the adults in my life have been cramming worksheets and busywork down my throat, I have been driven to pursue this body of knowledge. It’s been my focus and my passion for nearly my entire life. I bought my own machines. I taught myself the languages. I learned about the hardware on my own. This isn’t just a chance to win some medals or scholarships. This is a chance to validate everything I’ve been working towards. Not for everyone else, but for myself. I want to see how well I’ve educated myself.

This is a three-day event. The first day was spent travelling, and ended with some sort of general assembly to welcome us to the event and let us know how lucky we are to be here. Today we will compete. Tonight we will have another assembly where they will no doubt impress upon us something obvious and profound. “You Are The Future!” is a safe bet. Then there will be a dance. Tomorrow we will have another assembly, the winners will be announced, and then each of us will go home to our glory or shame.

I try not to think about the ride home. I need to keep my mind on this competition, which is off to a very strange start.

This computer lab is older than what we have at home, but… where are the computers? It’s mostly desks and empty space in here. There are just four machines on the far side of the room, and they are switched off. Where is the rest of the lab? Is there another computer room around here?

The instructor was fiddling with the computers when we came in, and he’s having a disjointed conversation with one of the officials running the event. I catch a few snatches of their conversation, and from what I gather his computers are down, or having some problem, and he’s working furiously to get them working again. Apparently he needs to get them working so that the Data Entry competition can take place. (Data Entry is a test of typing speed and accuracy. I knew better than to attempt that one.) There is no mention of other computers, or about what machines our group might use for the programming test. We are made to sit at desks.

I gaze longingly at the machines on the other side of the room and realize that things are about to go very badly for me.

The teacher gives us our assignment. While nothing compared to the games I’ve written, it’s vastly more complex than the previous challenge. We need to make a program to read in input data, and print it out a line at a time. While printing, if X happens, do a page break. If Y happens, do a page break if more than N lines have been printed. If condition Z happens, we are to discard the remainder of the page and move on to the next one. No page can contain more than 40 lines. Every page needs to end in a summary line, totaling up some of the data on that page, and then print a summary of the entire report so far. Every page should begin with a heading and page number. We are to write out the program. There is no computer portion to the test. This is it.

I feel like I’m going to throw up. After years of scorning worksheets, hating handwriting, and begging someone in the education system to let me at the computers, the ultimate test of my computer prowess comes down to a very long writing assignment.

This is a textbook COBOL program. The competition supposedly allows either BASIC or COBOL, but he makes no mention of what variant of BASIC he has on the broken computers, and he leaves out bits of information that a BASIC programmer would need to know. What does the input data look like? Where is this data is coming from? Does my program supply it? Does the user type it? Am I supposed to read from a text file, and if so, what is the filename? Is it separated by commas? This stuff matters, and if I don’t make my program match, then it won’t work.

If I was at a computer, I’d make one loop to read through the whole file, then insert lines to do one thing, then insert more lines to do another. Conceptually, you start out and work your way in, writing the beginning and ending of the program, then working your way to the middle. But since we’re writing this on paper I can’t program like that. I have to start at the top and work down. This is like being asked to build a house left-to-right instead of starting with the foundation and working up to the roof. This isn’t how you write software. This is stupid.

I assume the teacher will type the programs in later, in order to grade them? That is, assuming he can get one of his four broken computers working.

As I scribble and erase furiously, a lot of questions are eating at me. How will this be graded? It’s impossible for someone to write a program of this complexity and have it come out perfectly bug-free on the first try. Perhaps not impossible, but it’s not likely. The scoring of this test must allow for the fact that everyone will probably have multiple bugs, and so scoring would need some way to rate the “buggyness” of a program. This is very suspicious.

The previous competition judged us on the correctness of the output data. (And in the event that more than one student had perfect output, the victory could simply go to the person who turned it in first.) This one is supposedly judging us by the relative brokenness of our programs, but I have no idea how you could score such a thing.

It’s possible to have a small, trivial flaw that prevents the program from running at all. It’s also possible to have incorrect design that would produce nearly-perfect output, but would require a re-write to fix. Which is better: To have a nearly perfect program which fails to run, or to have a program which looks nearly perfect but requires an overhaul to fix? If we were using a computer, the first kind of flaw wouldn’t appear because the programmer would notice it and fix it. How do you score these relative to each other? In fact, how do you rate the seriousness of a bug at all? In the end, it all depends on what the judge thinks the student was trying to do.

When the judge types our program in, will he fix these trivial errors so he can grade us on our overall design? How will he tell the difference between our mistakes and his typos? What if he can’t read my handwriting? Are we being graded on neatness as well?

I can’t believe that a computer programming competition is going to have subjective judging. Of all the events going on today, this is one where the winner should be obvious, as determined by cold facts and logic and mediated by an impartial machine.

I’ve been working on my program for about half an hour now. I look over to the dark computers and I am hit with a revelation: He’s not going to type these programs in. This software will be judged solely by reading the source.

This is complete bullshit.

Imagine if you’ve spent your entire high school career on the swim team. You manage to distinguish yourself and wind up in a competition at the state level, the final match of your career. When you arrive you learn that this school doesn’t have a pool. Instead, they’ve filled a small ditch with water, and you are asked to jump in and demonstrate your ability. There’s not enough room to do laps, so you’ll need to make swimming motions in place. The school doesn’t have a stopwatch, but coach Ray is really good at counting “one Mississippi, two Mississippi”, and he’s going to time you.

You could argue that the best swimmer is more likely to win this activity than the lesser swimmers, but that doesn’t make this a proper test of ability. We don’t have the right equipment, we’re not testing all of the skills involved, and there is no explanation for how our performance will be judged.

I’m eighteen, and too old to cry in public, so I have to be very careful to keep that from happening. I hate this place, I hate this stupid test, and I hate this instructor with his four-machine computer lab of disgrace and inadequacy. I can’t believe that of all of the dozens of schools across the state, this is where they chose to hold the final contest.

I was afraid of losing, but this is actually worse. If I had lost, I’d have some sense of closure. If I came here and didn’t make the cut, then I would know I wasn’t the best. I’d love to win, but losing is preferable to this invalid and unfair test with no rules.

I stop writing. I’m about halfway done. I turn in my incomplete program and shuffle out.

Even as I leave, I know I’m being petulant. I should stick it out. I should do the work and see what happens. I should try, if only for the sake of a scholarship. But the test has no value to me, and I’m embarrassed to be taking part in such a ridiculous sham.

When I get back home, Miss Shack has a mug and balloons for me. She is truly shocked that I didn’t win. She believed in me. When she asks, I make a big deal about how the task was kind of COBOL-focused, and offer that as an explanation for why I didn’t win. I tell my mother the same thing. There’s a grain of truth to that, and it’s easier to say that than try to explain what was really wrong with the test. But deep down, I know it was possible to complete the program in BASIC. I could easily have done this assignment on any of the many versions of BASIC I’ve learned over the years, if only I’d had access to a computer.

I don’t tell anyone that I simply gave up. I’ll keep this secret with me for the next twenty years. I feel shame for quitting like this, but my shame is minor compared to my anger and bitterness at how the test was given.

This is how it ended. Not with a bang, not with a whimper, but with a facepalm.

Comments (203)

  1. Tuck says:

    “I’ve been captivated computers”…missed the “by”.

    • Syal says:

      “What do you want to be when you grow up?”

      “A captivated computer!”

    • theLameBrain says:

      I have this image: A Shamus-tribe hunter stalking through the bush, lush grasses brush his sholders as he slowy slides through them, travelling with the grain, to mark his passage as little as possible. Around him the wind blows through the plain, whiping the grass into waves like a shining sea of green.

      He freezes. Just ahead of him, hidden in the grass, there is a computer nest. He can hear their tamagochi chirping. His fingers tighten on his net in one hand, the spear in the other. He will only have one shot at this, his greatest test…

      to captivate a wild computer!

      • Ashnak says:

        The Shamus tribesman looks up at the computer, then back at his father, his mentor, his friend. He grimaces and says, “I would throw the net over the computer, then impale the keyboard with my spear.” His father nods proudly, and they walk home.

  2. Tuck says:

    Also, in this entry you state you were eighteen, but in the Seven Springs one you state you were nineteen.


  3. Sean Riley says:

    … man. That smells entirely of committee based rules and regulations. The kind of thing where it rotates around schools regardless of capacity, and where nobody has actually put in the thought as to how different contests have different needs.

    • blue_painted says:

      … and you just know that “Geoff”, who knows ALL about the computers in this school, can’t get in today because of a cold and so Mr Porridge, the instructor who is going to judge this splat of cold vomit, doesn’t actually work at this school at all and he only “does” computers because he teaches maths, won’t know that you have to plug in the four-block in the next room … and anyway he knows that computers should be used for data entry … no one will ever pay to play games on computers … kids these days need to learn neatness …


      … take off and nuke the site from orbit, it’s the only way to be sure!

      On seconds thoughts: Maybe I’m projecting how crappy it would have been in 1970s UK, but I bet I’m not too far off

  4. Kdansky says:

    I was afraid this would happen after reading part 27. Programming is very hard to test, because you either create an atypical environment (like in your story) or you have huge difficulties measuring results. On top of that, programming is actually very slow. If you manage to finish even a small program in just a day, you’re in the top 1% of programmers. Any bigger piece of software takes dozens of hours until all the bugs have been found.

    That is one of the reasons why most courses focus on mathematics instead. We also had a few clever questions, such as “Find all the errors in the following program” or “suggest ways to improve the program structure of following example” which actually work well on paper. If you want to grade programming, you’ll have to do something like a project.

    • Simon Buchan says:

      Estimating from the very rough description of the program, I wouldn’t want to work with anybody that *couldn’t* implement it in a few hours on a real machine, and that’s being generous. I’d also hope they could pseudo-code out an implementation in 15 minutes or so that is close to correct in the number of changes sense.

      Of course, given how he describes the complexity of it, compared to the local competition and that he couldn’t just write it out, I’m assuming Shamus is significantly simplifying the program description, especially since I don’t expect he actually remembers it terribly well.

      • Robyrt says:

        Remember, these are also 18-year-olds, writing in COBOL, several years ago. On top of that, even a relatively straightforward program like the one Shamus describes would be difficult to write by hand, although I could probably type it up in Notepad within a time limit.

        • Rick C says:

          Actually from the description this is sounds exactly like COBOL bread and butter: control-break reports are one of the big uses, and any competent COBOL programmer could do this with his eyes closed. I wouldn’t expect a high schooler who’s never had any experience with that kind of thing to have such an easy time, though.

      • Kdansky says:

        I have to admit I am using different standards in my comment. It is certainly possible to write such a program which works for your one demonstration data set, if massaged a certain way only the programmer knows.

        But can it do Unicode? Can it do 日本語? Can it live with exceptions during read over network? Can it recover from a crash? Can you specify both input and output directories? Will it cope with a sudden drop in memory or cpu due to other processes? Can you install it on another machine? Is it easy to change parameters such as delimiters, or line numbers, or even rules? Will another programmer understand how it works? Can he change it without asking you? Is it well commented? How do we integrate that piece of code with our existing SQL database in Hongkong? ;)

        Real code and academic code look quite different. It’s that evil 80/20 rule that always gets you in the end.

  5. sab says:

    It’s truly baffling to read this. And what was the real reason of judging the programs this way? Was it really just that there weren’t enough computers for everyone to write their program? Or was it (possible worse) that they actually thought that this is how you are ‘supposed’ to program?

    The injustice and retardation is sickening.

    • Sean Riley says:

      Judging from the previous story, I’d bet there was a requirement in VICA that said there needed to be paper work of some sort; the girls needed to write up their recipes, etc. No idea how that’d work with the data entry, but maybe they had an exception. But this smacks of a requirement that was thought up to blanket cover all disciplines.

      • 4th Dimension says:

        Most probably they had a rule that every test that a student takes needs to be archived in case somebody later complains he was cheated of his place. And since at that time you could only archive paper… And printing out the code of a program wouldn’t work because this also prevents zealous instructors cheating on their students behalf.

    • What is going on is that the school won politically, regardless of the physical plant.

      • 4th Dimension says:

        Depends. Maybe that event wasn’t only for programming but for other subjects too. And this school might be really well equipped for those challenges, and is only lacking in computer labs. Add to that, that most of people at that time (eve now too) had NO idea what this thing programming is, and you get that this school was awarded hosting privilege because it had highest overall suitability.

        Or it was more or less a political decision.

      • ehlijen says:

        Physical location might simply have been the reason to select that school. As Shamus said, it was ‘the middle of the state’. You’d need a very good explanation as to why one side of the state has to travel significantly further than the other and it seems ‘has enough computers’ was sadly not on that list.

    • Jjkaybomb says:

      I kindve thought it was because computer programming is still new, and they didnt know how to adjust the tests for it.

    • Alan De Smet says:

      My money is on 1970s mainframe thinking influencing this foolishness. Schools move slow. (See also: Pascal still being taught in the 1990s.) The develop style Shamus describes, add a little bit of functionality, test, debug, repeat, hasn’t always been how it was done. It required cheap, reasonably fast computers that could afford to “waste” time. Prior to that, access to computers was valuable. A simple mistake could cost Real Money. You planned ahead. You wrote your program in advance and debugged it my hand. Then you entered them into punchcards or later directly into a terminal. Then you submitted it for processing.

      From that mindset, the VICO test was reasonable. But they were testing for a skill set that was already on its way out.

      As an undergrad, I had the misfortune of doing mainframe development for a year in the 1990s. Each test run I did cost something like $5. I was much cheaper per hour than the CPU time I was using.

    • Zak McKracken says:

      Hmm… Shamus, why didn’t you just ask those people why they were doing it like this? I really would have liked to know.
      Also: Even my CS exam at university involved (in addition to a home assignment and some stupid simple knowledge questions) writing code on paper. That was in …. 1999 I think. There were just not enough computers for 200+ people.
      Also, the exams on other topics also weren’t similar to how you would apply the same knowledge in you job, either. In my job, I’m allowed to look stuff up, to use a pocket calculator and so on,. During the exams I usually wasn’t, for a similar reason: They want to see how much of the subject matter is in my head.
      … not claiming that all of my exams were reasonable ways of testing what should have been tested, though …

      • Tomas says:

        Well, on my computer science exam (back in 2000) we had to do a simple program on Pascal. The “having paper for archiving purposes” was solved by saving the program on floppy disk AND writing it down on paper. The good thing – you can create the program on the computer, debug it, only then write it down on paper.

  6. dhx0 says:

    Shamus: I get it. I would have done the same thing.

  7. DaMunky89 says:

    Well, that’s garbage.
    I know how you feel, though. When I competed in SkillsUSA for computer electronics, I apparently did well enough for 2nd place at the state level.

    But I SHOULD have WON. The only part I bungled was the written test, and I bungled that because half the questions weren’t about computers! They were about the history of the SkillsUSA organization! Like, wtf? I was told after the fact that my teacher was supposed to give me study materials on that subject, but I ended up just going into it blind instead.

    I just think it’s so much bullshit that I was expected to know when SkillsUSA was founded, and what their governing principles are, yadda yadda etc. What does that have to do with the subject I’m competing in? It felt like they stuck banner ads for themselves right in the damn test.

  8. NonEuclideanCat says:

    The computer competition doesn’t require interacting with computers.

    The programming contest involves no demonstration of actual programming.

    Who the heck thought this was a good idea? This is like if, on one of those cooking contest shows, instead of actually cooking the main course, they had you draw pictures of yourself cooking it and graded you on how appetizing your drawings are, or (if Shamus was right in that they’d just copy what you wrote in and graded you on how bug-free it was) on how well someone could prepare the dish based on what you drew. Yes, it has a relation to cooking, in that it demonstrates that you know the steps to making the dish, but all the important details like taste and texture and smell are not considered in the judging process.

    What kind of rational was used to justify this test?!

    Also, you had a lot more self-control than I would have been able to muster. I would have wound up explaining to the proctor, in the middle of the test, exactly the ways in which the test was bad and how it should be changed. Retroactive “good job”.

    • DaMunky89 says:

      I think the test was made up by bureaucrats and not actual programmers.

    • swenson says:

      Well, not quite like drawing a picture. More like having to sit down and come up with a brand new recipe on the spur of the moment, with no access to ingredients or an oven, and then being graded by having the judges read through the recipe and say whether or not they thought it’d be good.

  9. Syal says:

    I’m left wondering how much of the story’s repugnance was in the actual grading process being used and how much was just in your description of your dream being trampled.

    (I’m picturing a painting competition in which everyone is given a paper and pencil and told to write a thousand words to describe what their painting will look like.)

    • TSED says:

      I am only empathizing here, and correct me if I’m wrong, but I am pretty sure the worst part was how Shamus’ validation for his life-long pursuit was not found.

      As he mentioned in the write-up, losing would have been better. It would have meant “you need to get better at programming.” Instead, what he got was “haha, computers? You?” Young Shamus was FASCINATED by computers, and he got into a thing that said “hey check it out – computers!” and then ripped them away at the moment of truth.

      Cue Charley Brown and his football. He was REALLY gonna kick it, this time. He was really gonna kick it.

  10. Jarenth says:

    So you gave up on the programming contest when you discovered that it was, in fact, not a programming contest?

    I can fully imagine why Young Shamus would feel some shame in just walking out like that, but I can only respect the fact that you actually did so. Me, I would’ve most likely sat there grumbling for the duration.

    I know the last comment thread had some pros and historical explanations for paper-based coding, but I’ll still never understand why that custom has persisted as long as it has. Creating a program by writing words on paper is like composing a piece of music by painting notes on canvas. While wearing headphones.

  11. EwgB says:

    I’m studying computer science in Germany right now, and this kinda reminds of my basic programming course in the first semester (basic not being the language taught). For the assignments during the semester we had to write programs on computers, send in the source code to the tutor, and hand in some written assignments (had to be hand written, not typed) and the printed out source code (which is a little stupid in it’s own right), also to the tutor. This was kinda ok. But at the exams we were all sitting in a big auditorium and writing our programs on paper! It wasn’t as bad as Shamus’ experience and I can certainly understand why they did it like that (it’s hard to find enough computers and rooms for some 500 students). But my hand was hurting after I finished the test. And the grading was pretty strange, too. I was writing the first test (we had two, one in the middle of the semester, which was necessary to qualify for the one at the end) with two friends of mine, who all had experience in programming prior to college (like pretty much 90% of all people taking the course), just as I had. I managed to get a C, another friend barely got a D and the third failed altogether. And it was like that for many other students. The test wasn’t even a real test of programming ability. I still don’t understand what they were actually testing for.

    • Zak McKracken says:

      In my construction course we had assignments and later even an exam where we had to do technical drawings by hand. To scale. In this millenium.
      Many complained that we didn’t even learn to use proper CAD software, but the advantage was that after that we were able to really quickly draw a small sketch while explaining something to someone. Also, you gain a much deeper understanding of technical drawings if you’ve spend countless nights drawing each line by hand.

      But yeah, it sucked.

      The actual sad thing is that there are two ways of getting through most exams I’ve had, and only one involves a solid understanding of the subject. This didn’t help my grades much, but I earned the price later. Non scholae sed vitae :)

  12. ENC says:

    What exactly are these organisations?

    Do they offer diplomas or something, like a TAFE, or are they external qualifications like first-aid/food handlers…?

    I’m also thinking this is analogous to showing up for a music audition, then being told you have to play their instrument, or you can’t use your accompanist. It completely throws you and isn’t a true judge without a proper environment.

    • Fizban says:

      I’d say more like showing up to a music audition and finding out you’ll be graded on your ability to verbally dictate music. For a different instrument.

      Man, that is a painful ending to that story. Especially getting to the end and thinking, “He should call them out on this crap,” but knowing that I wouldn’t have done any different either. Getting stabbed in the back right after being told that it actually was worth it.

      • ENC says:

        Oh they do this.

        University: Aural Exams, being judged how to sing despite it being a different instrument. Singers cruise on through and the only added challenge is they have to memorise all 20 bars every 4 weeks.

        Then when you only want to be a performer, they also force academic writing subjects down your throat as we should all be able to write scholarly essays!

    • Rosseloh says:

      In the case of SkillsUSA (which is the current name of the organization Shamus was competing in) it’s just fame and prizes, as far as I could tell. You only get to the really good prizes when you win state and go to nationals, but they exist. There’s also a whole part of the organization that has nothing to do with the competitions, but as I stated in my comment on the last post — I don’t care a bit about all that and as such am not really the best person to ask about it.

  13. Carl says:

    Maybe I’m just childish, but I don’t really see why you ought to feel any shame in realising something is completely pointless and simply not doing it.

    For reference, I’m a teenager and therefore lack any wisdom you may have gained since you were my age, however I like to think that if I were in your shoes, I would have handed in the work incomplete, and told the truth back home. It wasn’t your fault that you were at the mercy of incompetents, and you wouldn’t have “won” anything by winning a pointless contest.

    As a matter of fact, this entry and the mentions to not doing silly busywork strike pretty close to home. I have a huge problem with the awful school system I’m stuck in, and instead of giving in and going with the flow of pointlessness, I just learn at home and let the educational system be damned.

    Oh, and your hypothetical swimming scenario lacks one point unique to the programming contest, in that you can’t accurately test a program by reading it, whereas Coach Ray can probably count reasonably close to actual time, and the problems assosciated with reading a program are more numerous and complex than counting.

    It’s more like, “Coach Ray will chalk up a tally for each 7.6 seconds of swimming he thinks you’ve done, but the chalk will break a lot and we’re going to distract Coach Ray with a display of puppetry.”

    • Pete says:

      I would have gone with putting a curtain between coach Ray and the swimmer, with Ray counting the splashes he hears, myself.

    • Dwip says:

      Heck, I’m thirty, and I’d be tempted pretty strongly to do pretty much what Shamus did now, then feel pretty morally justified about it, and this despite the life experience telling me that sometimes you’ve just gotta go along with the BS to get anywhere (all of high school, among other things).

      Eighteen year old me? Man, my life isn’t riding on what these people think of me, and if the whole process is this incompetent, eff ’em. And then I’ll let the whole world know what I think of their “test”.

      • decius says:

        I would have progammed properly, but using paper. My handwriting might not be very legible at the end, since I would have trouble guessing how much code I would put in each portion of the loop. I might even have used goto or gosub abuse, (assuming BASIC) and write code top-down that executed in a crazy order.

        For that matter, PLEASE COME FROM 30 might make more sense in this context…

    • Piflik says:

      I wouldn’t even have started the test…I would have told the instructor how pointless/stupid it/he is and then left…heck…I even did something like that during my time at university… :|

      • Carl says:

        Well, in all fairness, he only realised exactly how massively stupid it was after he had started.

        Even I’m not stubborn enough that I’d refuse to start a test in case it turned out to be pointless half-way through ;).

        The more I think about this, the more it enrages me. Why do it this way? If you don’t have the equipment for it, then don’t host the damn test!

        Any answer to why this happened other than, “We physically couldn’t provide computers” has to be either insulting or that special kind of idiocy which makes my head explode with rage.

    • The ability to swallow pointless activities is a major skill for adulthood. No, really it is. Unfortunately, by the time most intelligent people learn this, they’re 35 or so. Rebellion is pointless. So is mindless conformity.

      I really, really admire people who know the pointlessness of the hoop-jumping, but also can look at said hoops with an untroubled soul and even have a little fun for themselves in getting through with it. I’ve never been able to manage it, even today. I get so outraged that even simple tasks like filling out job applications will leave me incapable of functioning. I mean, really, it’s a fast food restaurant. Why do they need the address and phone number of EVERY COMPANY I’VE EVER WORKED FOR EVER IN MY ENTIRE LIFE?! And why would I even remember that information, anyway? I don’t even know addresses and phone numbers for my personal friends.

      And here’s the thing–nobody even calls to check on that stuff anyway, and most companies won’t give out information other than “yeah, so-and-so worked here”. So what is the point?

  14. MadTinkerer says:

    Could be worse. No really:

    Let’s say you’re given a programming assignment, one that requires you to work with a partner. It’s in a language neither of you know, but you have all semester to complete it. You’re told you need to work together.

    [Long, complicated bit redacted because it’s far too complicated to go into all the details.]

    So anyway, at the end you’re basically told you failed. You know you worked your butt off, but all throughout the semester, your partner is accusing you of slacking off and attempting to steal credit for his work. Meanwhile, you’ve been frustrated to the point of rage by the fact that your partner refuses to communicate with you about even basic things like variable names, and the most recent code you get is perpetually two weeks out of date. The professor doesn’t look at your work at any point.

    And then at the beginning of next semester (the next class requires you to work with the same group), you find out your professor told your partner to deliberately “cut you off”. (His words.) So according to the professor, who never looks at anything you produce, you failed to work with your partner adequately even though he told your partner to stop cooperating with you. You get a C and are told he’s being “merciful”, despite that C screwing up your GPA and you know from experience that a C from this guy is essentially a slap in the face.

    The reason the professor gets away with this seems primarily because the school simply doesn’t have a way of dealing with the problem. If a student has a problem with another student, that’s one department. If a student has a problem with a professor, that’s another department. And the Dean won’t see you unless you’ve dealt with it the way the bureaucracy wants you to deal with it. (?)

    Another reason the professor gets away with it is that he never gives out failing grades. He tells you you deserved to fail, but hey, you got a passing grade so suck it up. Nothing wrong with having to go through the exact same thing with the exact same people for another two consecutive semesters, right? You’re guaranteed a passing grade anyway!

    There is a bit more to the story. There’s the whole Music Man angle (I realized in retrospect at least one other reason he gets away with it is because he’s set up the situation precisely like the scam in The Music Man.), but this is threatening to turn into another caffeine-fueled rant I’ll regret later…

    EDIT: Oh, I should add in that I dropped the class, the program, the school, and organized higher education altogether when I found out what he was doing behind my back. There was no way to finish the program without taking his classes, and way the bureaucracy was set up, I couldn’t even make a formal complaint. Possibly worst of all, my scholarship was toast.

    So now I’m sticking to self-education. The Game Institute has been pretty helpful so far. That, plus a ton of books on C, C++, OpenGL, SQL and so on that I’m slowly going through.

    • Gruegar says:

      But why the hell would the professor do that? And why would your partner agree… This is just bizzare.

      • MadTinkerer says:

        Yeah, I know. I might not have believed that part if they hadn’t told me themselves.

        Basically it went back to a misunderstanding at the start of the semester regarding the fact that we had no idea how to put our code together at first, and the professor also didn’t know because he never used the language himself either. (This is where part of the Music Man angle comes in: the professor had zero relevant technical knowledge.)

        I tried to focus initially on the technical aspects of how the fuck to put the code together, instead of putting all my effort into making what would have been essentially a separate project to start with. Because I was the only one who even realized it need to be done, I was accused of not doing what I was supposed to be doing. Any effort other than making content for the game was seen as wasting effort, and trying to fix the overall technical issues certainly didn’t count as working on game content.

        Actually, let me rewind and clarify something. This was a class called Game Design II. If you chose to be in the Design Group, you were graded on your ability to produce design documents and helping out with the Game Presentation at the end of the semester. If you were in the Art Group, you were graded on your art. If you were in the Sound and Music Group you were graded on your music and foley artist ability. If you were in the Programming Group, you were theoretically graded on your programming ability, but it turned out that you were actually graded entirely on the professor’s opinion of what you did.

        Without the professor looking at it.

        And by the way, there were just two people in the Programming Group.

        I realize this still doesn’t make any sense. Okay: go watch The Music Man. You know the concert they throw at the end? In this class it’s called the Game Presentation and it goes pretty much the same: no one ends up caring how crappy the game is because “That’s my Barney!”.

        Basically, because there’s no prior standard for teaching the class (in fact this guy was the first professor in New jersey to ever teach “Game Design” as a college course), no one’s caught on that he has no idea what he’s doing.

    • Dwip says:

      That’s…pretty amazing.

      Had a teacher in high school who used to do that sort of thing, except she’d pick a senior she didn’t like and set out to fail them. Same sort of deal. But that’s HS, and you’d like to think higher academia is better than that.

      Of course, having my department and the school registrar purposely delay my graduation for a year (nicely forcing me out of a few jobs in the process) pretty much cured me of that misconception, so I know how that goes.

      That partner thing is just epic levels of specially bad though.

    • Tizzy says:

      OK. So it seems like the school was not able to handle the situation that arose. But you know what? If something similar happened in a business environment, you would probably be equally screwed.

  15. MadTinkerer says:

    “He's not going to type these programs in. This software will be judged solely by reading the source.”

    Actually, if the professor is really good, this might not necessarily be a problem. In my introductory C++ course (Same school NOT same professor as above) we weren’t graded on how the source read or any bullshit like that, but when something was going wrong with a homework assignment, she could tell you where the bug most likely was by going though it with you line by line.

    The tests never involved writing out whole programs, but a couple times we did need to write simple functions and the most important part was syntax. Simple stuff such as making sure all the ()s and {}s were in the right places.

    One time I accidentally created a fork bomb (without knowing what a fork bomb was at the time) that windows kept threatening to report me for running, despite it compiling with no errors. Sometimes you need a professor who can look at a program and tell you how badly you’re screwing up.

    • burningdragoon says:

      I agree here that there is value in reading the source code as long as it’s not the source *snicker* of the grading. My programming assignments always came back with notes on the code on missed bugs and optimizations etc. Of course the code itself was all submitted electronically.

  16. burningdragoon says:

    Last post I was pro programming on paper in some cases. That is definitely not one of those cases. That is large amounts of bullshit.

    I can understand why you would be ashamed of walking out. If it was me I felt the way you did instead of walking out I would written my program in a way that did nothing like it was supposed to but the result itself would be clear protest of the whole thing.

    Semi-related: on the ‘free response’ section on my AP Physics exam I drew a comic about how the exam was too tough for me. I was amused. I hope whoever ‘graded’ it was as well.

  17. I hate this place, I hate this stupid test, and I hate this instructor with his four-machine computer lab of disgrace and inadequacy.

    I love your style of writing. I’m just imagining you at your seat with the occasional longing glance at the computers as these questions fly through your head. This is really poetic.

    It’s quite unfair that the contest happened like that. I understand completely how it would discourage you, and the complete inanity of it.

    • MadTinkerer says:

      On the other hand, maybe they didn’t have the budget to get enough decent computers capable of actually running the programs for Shamus’ competition.

      It could easily have been a failure of administration/logistics rather than a lack of understanding on the part of those trying to run the competition. Remember: this was back in the days when every computer was ridiculously expensive by today’s standards.

  18. Aelyn says:

    Clothes are in the gym bag, laptop in the suitcase natch.

  19. Chuck Henebry says:

    Shamus said:

    This is how it ended. Not with a bang, not with a whimper, but with a face palm.

    What a shame. So much youthful rage and idealism there. I’ve been there, done some of that.

    I hope, though, that this isn’t the end of your story. You’re going to pull us forward up to the present, yes?

  20. Ruthie says:

    This is one of the saddest entries yet. I could cry. I’m angry for you, I [like all your other readers] wanted you to be victorious, so I could cheer, and the notion that my brother is freakin awesome could be validated. You’re still awesome.

    • Mari says:

      And that, to me, is the essential difference between fiction and non-fiction. In non-fiction life is arbitrary and unfair and likes to kick the protagonist in the teeth (or other pieces of anatomy) a lot. In fiction the world is orderly and good things happen to protagonists even in the midst of a huge story arc about something bad simply because the protagonist HAS to win. Somehow for me, though, a fiction “and they all lived happily ever after” is thoroughly unsatisfying while I have the satisfaction of seeing this non-fiction “and they all lived happily ever after” because I know no matter how many times life might kick Shamus in the teeth he’ll still triumph in his spirit.

    • Eärlindor says:

      I agree, this is a real bummer. :/

      I remember thinking when I gave a congratulatory ‘whoop’ last post: “I hope this doesn’t go down hill…” Sure enough…. Darn you, Shamus, for not having a life event that doesn’t play out like a story. :P

      But I also agree, that you don’t need some piece of paper or a trophy from a contest to tell you that you’re good at what you do. :)

  21. Ruthie says:

    Although, this does make me like Mizz Shack. I love that she bought you a mug and balloons. I think I’d do the same thing if I had a student like you. I’m glad she was your teacher

  22. swenson says:

    Wow, that’s got to be the most terrible way I’ve ever heard of to run a programming competition. Grading it on handwriting, in essence. Ridiculous.

    The computer club at my university hosts a regional programming competition for local schools (and do I ever wish I’d heard about it when I was back in high school!), but as far as I know, there’s no written portion at all, it’s just several hours of actually being able to write and test code. Winners are based on ability to successfully pass test data (their own, sample data they’re given, and test data only the judges have seen) and are allowed to write in several languages. A much superior way to do it, in my opinion!

  23. SolkaTruesilver says:

    This would be quite a depressing entry if I didn’t knew you turned out so well.

    So, is this post your coming out to your Mom and family? Or they had 24 hours of beforehand knowledge?

    • Mom says:

      He talked to me about a week ago. I was hoping he would win but I never thought his future depended on it. His impending graduation (or not) was my chief concern at the time.

  24. Rayen says:

    i said in the last entry that i competed in the skillsUSA compitition and i did. reading this i’m a little more infuriated about my loss because the same sort of thing happened. an inadequate setup not testing ability to produce the results required in the field but the ability to put up with BS. I rode a bus for an hour at 5 am to get to the regionals, the state comp was in my hometown convention center. normally this would be fine but while we got to do our regional comp entry in a half-decent recording room connected the band room, this time at state we are given a mic and a laptop in a conference room and we have to keep the door open. did someone forget to inform them that audio production requires quiet? THIS IS NOT HOW YOU DO THINGS IN THE REAL WORLD. heck this isn’t even how we do things in class.

    something is severly wrong when the enviornment to learn is better than the enviornment to compete. competetion should be at least as good or, preferably, better.

    *quick note yesterday i said i competed in sound editing, i looked into it and that isn’t quite accurate. the contest name was actually “audio/radio production”. so basically the same thing but broader and more vague.

  25. Destrustor says:

    You stopped writing in the middle of the test, walked out, and quit.
    You SHOULD HAVE stopped writing the code and filled the rest of the page with a detailed, point-by-point explanation of how their stupid test was bullshit, entirely inadequate, and counter-productive in every way.
    THEN walk out and leave these idiots to their worthless dickfacery.
    Maybe you would at least have felt a little better.

  26. Raynooo says:

    As late as 2004-2005 I’ve had an exam involving programming for which half of the exam was writing code in a made up language supposedly easier for algorithmics.

    Why would anyone do that ? I mean rating code is already hard enough (so many ways to reach the same results), why would you ask for code that CAN NOT be tested by the student ?
    I mean what programmer always succeed on first trial when for example looping on something that sometimes starts at 0 and sometimes at 1 ? Especially since languages don’t all agree on that…

    I don’t think I would’ve been shocked to know that you had cried because that’s really REALLY unfair. And the lack of precision on the formatting of input (user inserted ? file ? what format ?) is proof that no one must have tested the exam…

  27. Rob Conley says:

    I would say this situation is typical of the days of big iron i.e. mainframes. This period of Shamus’ life is just beyond this time period. So it is not surprising to me that he ran into this at some point.

    Basically to program in the time of Big Iron is that you WRITE your program down, goto a punch card machines, type it in a line, get a card, type in another line, get the next card. You do this until you have a stack of cards that is your program. Then you go to the job desk, turn it in, wait an hour or so, and then get your cards back plus a printout of the run.

    If you had a bug you saw the compiler dump highlighting the error. If there is no compile time bugs then you saw your output. In both cases the issue had to be fix, the offending cards fixed, and the job resubmitted. Cycle, rinse, repeat until your program worked.

    To say the least this workflow put a premium on folks who could write down program on paper and simulate it in their heads so that you minimize the time spent at the job desk and waiting for your output.

    I went to college in the fall of 1984 and my freshmen class was the last class that had to use punch cards. My school had the latest equipment but also recognized that in the real world many companies didn’t. So they want to do part of our initial introduction on the main frame with punch cards. Later in the semester they moved us to terminals, and the later still to the Unix lab (which then was like a DOS PC on steroids).

    It is likely the judge of the competition was an old hand at this and probably could accurately look at the source and spot any issue. Especially if a program that generated a report. The Cobol would be easier than the BASIC program. I know by my last punch card project my ability to sight simulate my code was vastly improved over the beginning of the semester.

    However I infinitely preferred being able to sit at a terminal or computer and actually interact with the damn things then use punch cards.

    • MadTinkerer says:

      In 1984, I was four years old and Frogger on the Apple II was my favorite program. I consider myself quite lucky that I had a relatively early-era computer-saturated childhood (learning batch file programming to get my DOS games working as a preteen). Just young enough to remember messing with Config.sys to get the higher-end games working, and old enough to not be so spoiled that I think watching Youtube on my iPhone is normal.

      • Bryan says:



        himem.sys (and emm386.exe) always sucked; they never allowed loading enough TSRs high to get any games to work. qemm.sys (…or was it 386max? crap, now I forget… well, whichever it was), on the other hand, worked *way, way* better — I got the sound, CD, and mouse drivers all loaded, with IIRC ~635K low RAM still available. More than enough to play whatever random flight simulator I was running at the time. :-)

    • Rick C says:

      I had access to an Apple IIe in grade school by 1980, and my school wasn’t particularly cutting-edge. I didn’t make this point in my comment way up there, but this was a bogus test.

  28. noahpocalypse says:

    Man. Forget them.

    TSA (Technology Student Association) sounds much better than that, but I’m not sure the programming will be much better. The difference is that the only programming thing is a game design event. A team between one and three people design and create a game. It has to run on any computer they stick the disk into, as well as have ‘modern’ graphics. Eek. I’m very afraid I’ll design it for Windows and a 2007 computer, and they’ll try to run it on a 2005 Mac. Or maybe it’ll use a double processor but be tested on a single. If it doesn’t run, but I show them a bunch of incomprehensible code and some art, do you think I’ll get a little bit of credit?

  29. Ski says:

    This reminds me of the Java certification exam that I need to take soon. The exam tests you on how good a compiler you are, but why should anyone care how good a compiler you are when compiling is the computer’s job?

    • Retsam says:

      Well, that depends on what you mean. If you mean “being a compiler” as in generating byte-code from a given source file, then yeah, duh, that’s a compiler’s job. But if you mean being able to look at a program and tell what it does, that’s definitely a programmer’s job, as well as the compiler. That’d be like an author who can’t read.

      • Ski says:

        Kind of in between, I guess. A programmer should be able to look at a program and figure out what it does, yes, but a programmer in this day and age should not have to worry about syntax errors as much as these Java exams do. Unless you’re using a computer from 10+ years ago, the compiler will figure out compilation problems quicker than you.

  30. Even says:

    I have to say I really enjoy the way you write this “series” if you can call it that. Even if I’ve never touched a programming book, it makes it easy to imagine being in your shoes. It’s baffling why they’d even do it as writing test. Only benefit I could imagine you might ever get from writing it down like that might be some way learning to visualize the outcome of the written code and through it glean some level of insight to the coding process. Like you can look at a piece of code and immediately determine how it will work.. or something. I don’t know if that would even be useful.

    • Destrustor says:

      I don’t think it would be useful to learn it DURING the test made to see if you learned it.
      ” -Okay children, today we learn to do mental calculations! Timmy, what’s seven plus twenty-five?
      -FAIL! You didn’t count in your head! You should know this by now, I just told you.”
      You just can’t teach AND grade at the same time, everybody loses.

      • Even says:

        Yeah not during the test obviously. I meant in general, writing it down. Given that they felt it was appropriate for the test, they should have taught the kids to do that in the first place.

  31. Jock says:

    As a programmer I can definitely say that you can get a fairly good impression of a program by looking solely at the source code. The efficiency of the layout, the algorithms used, major showstopper bugs that like shamus mentioned would require a total rewrite, etc. In fact pretty much every job I’ve interviewed for had a ‘written portion’, though granted it wasn’t anything like an entire program, at most several functions and their interactions. If you know what you’re doing it shows.

    That being said, I have no idea how they’d decide between two people who know what they’re doing in a situation like this, but if they can assign English papers a numerical grade I’m sure they can figure out a way to do it here too.

    • Jock says:

      Gah, can’t edit this on my iPad, but it occurred to me that a written test actually BENEFITS the good programmer. The reason why is that NO ONE can write a program of any complexity without bugs. Whether it’s reading in the file wrong or some error in the logic or some error in the output or some silly little syntax mistake a program’s first draft is never its final one. and as anyone who programs knows sometimes those bugs can be pernicious and well hidden, taking hours if not days to find.

      If the code is tested solely on the computer you can get examples where a program that is garbage still outputs the correct result while one that is well designed is hung up on a single bug that you have to painstakingly hunt down, potentially producing no results within the test period. On the other hand, if it’s entirely written you can see where the writers head is at at a high level, and you can actually reward good code, even if it would require polishing to actually put it into the computer.

  32. Meredith says:

    I hate being given an assignment with such little guidance. All those questions you had about what exactly they expected you to do and how the data file worked are infuriating. They really didn’t give you this information or allow time for questions? I’d probably have left in frustration too. That was stuff you needed to know in order to produce the work they expected.

    (I’m really curious where you were for this. I’m unfortunately rather familiar with central PA.)

  33. Noumenon says:

    I can’t believe how supportive all these comments are — surely it’s clear to someone besides Shamus that this was immature (he called it “petulant”) and self-destructive behavior that closed off career paths for no good reason? These things have real-life consequences. You don’t rage quit.

    I would have taken “Ender’s Game” as a model and tried to beat the test even though it was stacked against me (and not in an unfair way, either; just because Shamus’s preferred programming style is outside-in doesn’t mean it’s a crime to ask someone to type lines in order. Hell, you could design it outside-in on scratch paper and then copy it over.)

    • Van Tuber says:

      Well, I doubt it was a full-ride scholarship. It would have helped, but this probably didn’t keep him from college. (or did it?) That said I generally agree that it was immature; on the other hand, I can’t tell another man what his pride is worth.

    • asterismW says:

      Exactly what would you have done to “beat the test”? Fired up one of the broken computers? United everyone in a strike? Done a James Kirk and changed the parameters of the test? Oh, right, you can’t.

      I dunno, I think sticking up for what you believe in is a pretty good reason, and not at all immature.

    • MichaelG says:

      Shamus had all the ability he needed to finish the test and probably do very well on it. It was a shock not to be able to program the way he was used to, so I understand his rage. But he still gave up rather than adapt.

      I am very glad that I am mostly self-taught as a programmer and didn’t have to take classes or pass tests in it. I could just do it for fun and learn by doing.

      In grad school, I finally took a class requiring programming. I obsessed over the first assignment, adding features until I couldn’t finish it. Since the program didn’t work, I didn’t turn it in. When I explained this to the professor, he demanded to see what I’d done. It was fine by his standards even though it didn’t run, and I got a good grade.

      That’s the problem with nerds in general and with self-taught people. You can end up a little rigid and uncompromising. That’s not the best path to success, sad to say.

      • Knight of Fools says:

        The big difference is that you knew the difference between good work and bad work. Most young guys who just finished their first class of programming think that they can dominate the world with their elite skills. People who actually know what they’re doing know what their capable of and know what their weaknesses are, and whether or not something will work or not.

        From what I’ve heard, it’s a fairly common workplace problem if assignments are done on a volunteer basis. An assignment is brought up, and the guy who knows his way around that kind of stuff hesitates because he has to assess his skills before accepting. While he’s thinking about it, some guy who thinks he’s on top of the world volunteers and ends up doing a much worse job than the skilled worker would have done.

        To the boss, though, it’s all the same: As long as the the work got done and wasn’t a complete mess, and the client and investors were pleased, everything’s good. Next project.

        School does a terribly good job of simulating that environment, and I mean the “terrible” part. Even when it’s competitive, the boss is the one that makes up the rules, no matter how stupid or inane they are.

        • From what I’ve seen, a lot of the time the projects that come down from the boss and/or clients are a waste of time, anyway, so better to let the mediocre people handle them, so the good people can work on things that are actually important/valuable.

          At one of the places where I used to work, I took the multiple, multiple spreadsheets our department maintained and turned them into a huge Access database. This was entirely my own idea–I bought a book, taught myself Access, created the project, and did it all on my own initiative. I couldn’t get management support because none of them had a clue what I was doing or how it was actually going to work in the end. It saved us hours a week because it completely automated our report-generating process. Management liked it so much they wound up finally okaying a switch from our ancient, decrepit database system to SQL.

          Me, I got passed over for a promotion. Twice. But I enjoyed doing the work and learned something, anyway.

    • Paul Spooner says:

      Indeed. Walking out on the test half way thru just because you aren’t sure what they want and don’t like how it’s being administered is pretty childish. I’m glad Shamus portrayed it that way in his post. I too am a bit shocked at the vast number of “Yeah, forget them man!” comments. This was not a victory.
      And Shamus, Yeah, bummer. Sorry it turned out that way.

      • asterismW says:

        Ok, yeah, I can concede that walking out on the test was not perhaps the brave and noble act I thought at first. In the real world, especially in businesses, you have to conform to all sorts of stupid rules created by people who don’t know what they’re doing. If you walked out of every job where idiots were making the decisions, you’d go through a lot of employers. So learning to adapt is key. Still, I don’t fault Shamus for what he did. And one way or another, he learned a valuable lesson.

      • “Walking out on the test half way thru just because you aren't sure what they want and don't like how it's being administered is pretty childish.”

        I’ll agree with the latter, but read only the former out loud and you’ll realize just how silly it sounds.

    • decius says:

      Right, because Shamus was the second-greatest programmer of all time, so he simply had to figure out that writing the program wasn’t the point of the test, and prove that he could program perfectly even in situations that aren’t even remotely fair, because in the real world everybody will die if he goes to his boss and says ‘I would be more effective at my job if I could use a computer to program.’

      Yeah, that’s a run-on. It didn’t close off any career paths. NOBODY CARES what you achieved in high school.

    • BenD says:

      I’m not sure Ender’s Game was in print when Shamus was taking that exam – not that this is your literal point.

      Of course his walk-out was poorly considered. He was eighteen. But he didn’t flip off the proctor on the way out. Nor did he make a big fuss of it in any other way. He just opted out.

      That’s not immature. Ill-considered, perhaps. Possibly even a mistake. But not immature, not any more than it would be immature to choose not to apply for a scholarship from an organization whose morals with which you disagree.

    • Syal says:

      He was doing it because he thought it would finally allow him to do what he had always wanted to do. It didn’t, at all. If you’re only doing something because you want to, finding out it isn’t something you want to do is a valid reason to stop doing it.

      Ender quit multiple times in that book, and spent a fair portion of it trying to piss off the instructors enough to leave him alone.

  34. RTBones says:

    Facepalm…yes, that reminds me of an experience in university.

    This was a team competition. Essentially, four programmers are given sets of assignments to write programs for. The team then was supposed to, in whatever way they chose to parse the problems out, complete the programs and turn them in. The programs were to be written in PASCAL. The first team to turn in all the assignments and have their programs work correctly won. If a particular program didnt work, the officials would return it to you in order to allow you to fix it.

    We lost. But not because we couldn’t code. We couldn’t SPELL. Let me explain.

    One of the assignments was to take some monetary value, and convert it to words as you would write on a check. So for example – if you gave the program an input of $40.21, it should return a value of “Forty one dollars and 21/100”.

    Yeah, why did we lose? We spelled “forty” as “fourty”.

  35. Irridium says:

    Speaking of programming… it seems that Dennis Ritchie, the creator of the C programming language has passed away.

    Hate to be a captain buzzkill… but after reading the story it’s already pretty sad.


  36. Shamus says:

    Thinking about this more: This outcome wasn’t actually the worst. It would have been worse still if I had finished the test and lost anyway. The doubt would have driven me crazy. Did I fail because my coding wasn’t good enough? Or because my handwriting was too messy? Or because the instructor was biased against BASIC?

    Considering that possibility, I’m relieved I walked out. That really would have been dreadful.

    • krellen says:

      Speaking entirely personally, if I handed out a clearly-biased-towards-COBOL assignment like that one, and one student handed in a BASIC program that met all the requirements and was not ugly or kludgy, that student would win for sheer magnificence. It’s one thing to know how to solve a problem given the perfect tools for the job. It’s quite another to know how to solve the problem given the tools at hand, which often are less than perfect.

    • Aelyn says:

      As bad as BASIC is (or was, at least) it’s hard to believe anyone would prefer COBOL. My wife worked in retail and always wanted to manage a store. I told her that as long as I didn’t have to work in a bank writing COBOL I would move to allow her to do that. I eventually had to live up to the promise, but New Orleans is plenty big enough that I didn’t have to write COBOL.

      There are just some things I won’t do for love.

      • krellen says:

        There are some things for which COBOL is the right programming language. Many of these tasks today are better accomplished by using other programs already designed to handle data, rather than programming, but if you have to program a report, COBOL is definitely well-equipped to handle doing so.

        • Aelyn says:

          I don’t deny that there are some things that COBOL is useful for. However, I didn’t want to code those things and I didn’t want to use the language. Therefore, COBOL is and always has been dead to me.

    • Paul Spooner says:

      I’m sorry you feel that way. The honest truth is, even if you were the “best” programmer at the competition, you are very likely not the best in the country, or even the state. Pitting the validation of your efforts on the outcome of a test is poetic, but not very realistic. Couldn’t you have gone crazy from not knowing why you won, just as easily as if you lost? Your expectations were already unrealistic going in to the test, even if it was everything you expected.

      Of course, I don’t know you that well. IMO you should have stuck the test out, but it’s over and done years ago. I was two years old when you made the decision, so who am I to judge?

      • Garci says:

        You can’t know that. He might have been the best programmer there – hell, he might have been the best programmer in the state, there’s no way for you to know. You could go to every single living person and tell them “it’s very likely you’re not the best”, and though it’s right, you can’t say for certain that he actually isn’t, and it’s quite discouraging to do such a thing.

        I think this was Shamus’ first real validation chance for everything he strived for, and given 18 years without a chance to validate my passions, I’d be quite frustrated had I been in such a situation. He didn’t go “oh, screw programming” because he didn’t do well, so it wasn’t a make-it-or-break-it ordeal, more of a “finally, my efforts paid out somehow

      • Shamus says:

        “Couldn't you have gone crazy from not knowing why you won, just as easily as if you lost?”

        Victory would have been hollow for me. Which was why the test had no value to me. Which was why I quit.

        “Your expectations were already unrealistic going in to the test, even if it was everything you expected.”

        I just wanted to program on a computer. I don’t think that was an outlandish expectation. Like using a stop watch for a track meet, I see it as required equipment for the event.

        • Jock says:

          If you’re programming for fun, then no, expecting to be tested solely on whether a program actually works on an actual computer is not outlandish. There’s in fact an entire contest dedicated to producing unreadable but fully functional code, and that could only be tested on a computer: http://www.ioccc.org/

          However, if you’re programming for a job (which I am assuming a vocational school is geared towards) then I don’t think it’s unreasonable to expect to grade you on code comprehensibility. It’s very rare that a programmer in a paid position will be judged solely on whether their code works. Yes, it would have been nice if they’d warned you about the format, but you don’t need a computer to be able to be tested on your ability to write readable code.

          The fact that they didn’t have a portion dedicated to actually implementing the program could be something as simple as ‘Alright, we know you can write a functioning program or else you wouldn’t have made it to this stage’.

          • So under your criteria over half the OO programmers out there would not have passed, of if only that was true, I’ve seen way too much “pro” code that is a nightmare to read, it’s just faster to re-write the whole thing using procedural programming instead.

            Also, I only program for fun as well. (probably why it’s sucks to be me as a freelancer but…)
            But if I didn’t like the programming task I would not do it for several reasons.
            1. It would not be fun.
            2. The result would be poor.
            3. No originality.

            If I do a project I prefer to
            Have fun (moderate is fine or even minimal, just coding is fun sometimes).
            Due to interest in the project I don’t mind “overtime”.
            Originality increases, bonus features, optimization.
            Project followup.

            By pure instinct I try to avoid all forms of activity or thought that is not “fun”.

            Proper programming grading should be based only on logic thinking to be fair.
            I have seen people that make programs but actually still do not fully grasp the concept of if/then/else for example.

            I pride myself in being able to read ANY programming language.
            Unfortunately this does not mean I’m able to read every source code, because many times a source might be written by someone that knows how to program but lacks almost any level of logical thinking.

            You can see a lot of examples of such on http://thedailywtf.com/
            Makes me laugh but also cringe as it may look like it’s all ludicrous, but I’ve seen source just as bad as those.

            If the test had been properly set then…
            The students should have been given a task, the set of requirements that need to be met, told that they must plan the programming before making the program, and simply let the students decide what/how to do it from there.
            A time limit should be set, but those going over would not fail, instead their score would be somewhat lower.

            I’m just guessing but Shamus probably can visualize program flow in the head, but which doesn’t feel fully tangible until one sit down and starts hitting the keys.
            I recognize the need to make a shell/skeleton as a programming foundation.
            It’s also much easier to test tings out as you can just toss in a direct debug print command wherever you like.
            Also helps when doing loop tightening.

            The grading would be based on; source length/size, readability, logic, executable size, efficiency/overhead, functionality/features, lack of features, bugs/flaws/crashes vs solidity, you know important things like that, good programmer vs bad programmer criteria.

            Not sure how many schools or grading tests actually use criteria like that though.

            • Jock says:

              Yes, under my criteria many people would be failed (not a negative result, as it is supposed to be a skill based competition after all). The sad fact is that I’m sure many people who are earning a living writing code do it terribly, that doesn’t mean that the winners of national competitions should too.

          • MichaelG says:

            It depends on the company. I did some startups in the 90s where they couldn’t have cared less what your code looked like as long as it worked. Of course, if I had had some obvious problems, perhaps they would have looked more carefully.

            Some of the contract stuff is that way too — you are working for non-programmers who couldn’t read it if they wanted to. On those projects, I went years without anyone reading my code.

            The kind of thing Shamus was being tested on was big company Cobol report-writing code. There you are probably working in a group of similar people and they do expect to see the work, insist on coding standards, etc.

            • Jock says:

              Fair enough, but I’ll bet you dollars to donuts that the start ups that survived and didnt die in the crash or get bought out for their IP or workers were kicking themselves later on for the ‘just get it done’ style of code. I worked at a company that was JUST getting done with an end to end rewrite in 2006.

              Also, true, you can get paid even now for code that simply works without needing to care about standards, but you can also get paid for lots of work that’s “good enough.”(Who cares if that backyard fence is a few inches off level over it’s length?). If you want to work on bigger projects that require a team of people then you can and should be held to a higher standard. (Note I didn’t say Will, mores the pity)

          • Kodra says:

            The problem here isn’t that Shamus feels he was slighted because he could write functional but unreadable code. The problem is he was given pen and paper and asked to produce computer code.

            Coding doesn’t happen that way. The best thing you can do with pen and paper is come up with psuedocode that ignores all of the finicky details of a program, but until you have an editor and compiler, you aren’t going to be able to reliably come up with good code.

            It would be like asking an author to write his next novel on an the world’s largest etch-a-sketch. Sure the author could write it, but that would be silly.

            • Paul Spooner says:

              You know, you’re right. He brought up the point several times that you “start from the outside and work in” and I totally agree. Writing a program out from top to bottom IS silly. It’s not how you write good code, and it’s not a fair test of programming skill. It certainly doesn’t allow the kind of quick feedback that is required to produce excellent refined code.

    • Jock says:

      Maybe it wasn’t the WORST, but it was still far less than optimal. Based on your self description it sounds like you had an excellent chance of straight up winning. I guess it’s one of those Glass Half Full vs. Glass Half Empty kind of things

    • Mistwraithe says:

      Marking software by reading it is actually not that terrible an idea. I’ve done it before and a smart developer can spot mistakes in a pre-set exercise very easily, including sometimes mistakes that might still pass the standard test data but would cause bugs/crashes in corner cases.

      It also means that things like coding style, readability, etc can be taken into account. Of course maybe these factors shouldn’t have mattered in your test but they are important in the real world if you are trying to decide who is a great programmer.

      Having said that the best way to test a software exercise is to read it AND execute it. It is also very true that writing software on paper is a somewhat different exercise to writing and testing it on a computer (both valid tests IMO but not great if you were expecting to have a computer and ended up having to do it on paper).

      Lastly commiserations on getting a cobol targeted exercise. That on its own would suck.

    • William Newman says:

      Heck, it sounds bad enough that any result — win or lose — would be pretty discouraging. “So *this* is what succeeding in programming is like?” Gah.

      It’s generally useful to err on the side of trying hard. It’s good that you give your 18-year old self a careful grilling about whether he was rationalizing a lazy cop-out. But it’s also useful to recognize sufficiently messed up situations for what they are and walk away instead of trying harder or otherwise supporting them. (That’s something my 20-something self didn’t fully appreciate, alas.) It sounds to me like your 18-year-old self may have made a pretty reasonable decision.

    • Patrick the Catastrophically Unmotivated says:

      That’s absurd. Quitting was the best option? Go ahead and say that out loud:

      [b][i]”Quitting really was the best thing I could have done.”[/i[/b]

      And see how silly you sound to yourself. If you had finished, you would have won, no worse than 3rd. You know it. Hell you came in seventh and you didnt even finish. Imagine how bad the guys who finished lower than you and actually tried were.

      I understand the frustration, everyone did. Remeber how Ms Shack and every other teacher went nuts when you guys got back with zero 1st place finishes? They changed the entire way that competition was held the years after that because of that debacle. But don’t say you were relieved you quit. That just sucks.

  37. Adam says:

    This, then is my picture of Shamus Young: A man with the audacity to flatly ignore things that don’t interest him, and the skill at what DOES interest him to make up for it. This has been a fascinating read so far, and I can’t wait to see what happens next. ;P

  38. Steve C says:

    If you were willing to walk out in disgust, I’m surprised that you didn’t spend a few pages telling them they were incompetent morons for having organizing the contest as they did. You had time to think about these issues (testing via bad programming practices and worksheets) from the regionals so I’m guessing it was already clear in your mind when you walked out.

    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.

    If I was responsible for judging/organizing this contest, I would have been shamed by the truth of that paragraph.

  39. Daemian Lucifer says:

    Ah,writing a program on the paper…Reminds me of high school.We had numerous different computer courses,and almost exclusively were graded by how we can write the programs on paper,which was idiotic.Even more idiotic was the fact that we had 3 computer labs with over 20 computers in each,and yet rarely were we graded on actual work.Unfortunately,I didnt have the option of leaving.Fortunately the programs we wrote were usually basic stuff.Still,very frustrating.

    • 4th Dimension says:

      When was this? Because I think you are from my “region” and 3 comp labs sounds like a lot.
      Also, what school was it, today there are only one year CS like subjects and they mostly focus on Windows/Word/PowPoint.

  40. 4th Dimension says:

    I know it’s off toppic, but where is this week’s Spoiler Warning?

    • Daemian Lucifer says:

      Delayed for 7 days as a sign of respect for steve jobs.

    • Velkrin says:

      The ‘staff’ is too busy edit and post the episodes.

      Ruts is at the library researching the history of famous assassins so he can make puns that will need to be explained in the comments.

      Mumbles has been watching My Little Pony: Friendship is Magic in an attempt to not be the most manly of the staff. She recently looked up the term ‘Bronies’ so she’s back to square 1.

      Shamus is busy writing his bibliography and planning a shopping trip with Ruts and Josh so they can cosplay as Ezio, only with different colored outfits.

      Josh found a guy wearing a ‘free hugs’ shirt and took him up on his offer. It didn’t end well.

    • Ramsus says:

      Still being written by hand?

  41. Jericho says:

    I like to think that in your place, I wouldn’t have quit half way through. I would have walked out in the beginning.

  42. SteveDJ says:

    It seemed like the competition went downhill with each stage. The Local test started with written code against some specs, but did let you finish on computer. The State test was all written with no specs, with a handful of broken computers along the wall. Had you won, then at the National competion — not sure I want to think about that one — Assignment: Just write a program we like, and here are some cards and a paper punch…??? :)

  43. Kyte says:

    Bah. My dad told me he always had to turn in his programs on paper. Computer time was far more expensive than human time. (He’s on the same generation, but being chilean, assume all technology’s lagged around 5 to 10 years. Punch cards and whatnot)

    Hell, I’ve turned out a good dozen of snippets on paper, since that’s how you do the majority of tests (homework are usually on the computer and sent through email). Always made sense to me (and harder to cheat!) In a way, if you can code, trace and debug on paper, you’re far more capable than someone who can’t.
    You just need to accept you’ll probably have to write the thing twice. ;)

  44. Blanko2 says:

    Every single exam i have done with programming has been written by hand, but, to be fair, i dont think any of them had the complexity of that. Essentially youre just forced to go through several iterations of writing crap then shoving lines in and then re-writing the whole thing because you cant read any of it anymore

  45. Jonas O says:

    The structure of that competition sounds awful. In all programming competitions I have been part of, we have written (and been able to test) or programs on actual computers. Also, all the tasks have been really clearly formulated (Example from the IOI this summer: http://www.ioi2011.or.th/hsc/tasks/EN/garden.pdf). Hopefully this means that a few lessons have been learned over the last few decades ;).

  46. Ravens Cry says:

    I am so sorry Shamus. That brought a tear to my eye and a punch in the gut kind of feeling.
    It’s, just, wow. . .
    Words fail me.
    They do not have the strength, the weight, to hold what I am trying to say.
    I am sorry. I am sorry this happened this way.
    You express so well the anguish of this moment.
    I am deeply honoured you have been willing to share it with us.
    This quite obviously took a lot of courage.

  47. Jamas Enright says:

    Hey Shamus, rather oddly I’m seeing your “Posted By” picture in the middle of the text under the picture. This is on IE7 (at work).

    I’ll try to post the code to show what IE sees (using [] for html code):

    [div style=’font-family: Sans-Serif;color:#246;font-size: smaller;background:#feb;border:1px dotted #888;text-align:justify;padding-left:5px;padding-right:5px;’]This is the morning of me leaving for [a href=”http://www.shamusyoung.com”][img class="author-pic" src="http://www.gravatar.com/avatar/c931d01ed6734679f51fcda738075264?r=x&s=60" align="left" valign="top" title="Posted by Shamus" alt="Shamus" border="0" /][/a]VICA state. I was lugging around a suitcase AND a gym bag? For a three-day trip? What was I carrying in there?[/div]

  48. Amadan says:

    Loving this whole series, lots of interesting parallels in my own life.

    I did the petulant-but-totally-justified ragequit thing myself, and like you I kept it to myself for quite a while. It wasn’t until the midterm grades and my looming “F” in social studies that Mom investigated and found the smoking gun… The report I’d “failed”.
    The Book Report.
    I’d been reading above University level for years, but I failed a book report?
    The assignment was to “Read the biography of a famous person and write 2 pages.”
    I chose “Nikolai Tesla: Man Out of Time”
    She failed me because “I’ve never heard of this man, so he can’t be famous.”
    That was the point where I realized my new goal was to waste as little of my time on this idiotic institution as possible, until I could get the hell out and go someplace where I could actually learn what I wanted.
    Almost failed European History the next year because I knew more about the subject than the teacher, and thus refused to do homework.
    Yep, this series is certainly ringing bells.

  49. Dys says:

    Large portions of this experience read to me like a horror story. Clearly your mind is somewhat more flexible than mine, but I still think you probably feel at least part of what I do in such circumstances.

    I would have fled that room, without hesitation. I probably wouldn’t have been able to enter it in the first place, but that’s caution born of painful experience.

    When I encounter something which doesn’t make sense to me, my mind locks up. Any one of that endless stream of questions would have been a steel wall in my path. How can anyone complete a task without knowing what the task actually is, or what completion would even look like?

    I can solve problems with a high degree of effectiveness, one of the reasons I enjoy games as much as I do. That talent comes at the cost of being completely unable to, for example, fill in most forms that get placed in front of me. When asked a question with no verifiable answer, I lose all traction, internally. I simply can’t follow, can’t answer.

    I wonder if any of this sounds at all familiar. I know I’m pretty strange, after all.

    • Matt Downie says:

      I believe there has been some work done on the psychology of people who find it hard to fill in forms. (They rarely become international corporate billionaires.)
      I find it helps to say to myself, “If I do it wrong, it’s not my fault; it’s the fault of the form. And it’s not my problem; it’s somebody else’s problem.”

    • Caffiene says:

      Testify, brother! (Sister?)

      Im the same way. Whats the point of filling in a form where you dont have the appropriate information to discern what youre supposed to fill in? If I dont have enough information to figure out what Im being asked, how can my answer in any way be useful to someone reading the form?

      I might as well just literally fill in the boxes with “Blah blah blah blah”, or “lorem ipsum dollor sit amet”, for all the good it will do.

      Heh… reminds me of the time my mum had myself and my dad take “a quick test” as part of an assignment for a psychology course she was taking. Nearly every question resulted in a 10 minute conversation over the intended meaning, and it took as an hour or more to finish what was supposed to be take 10 minutes ‘total’.

  50. Darkness says:

    During an interview for my first programming job they had several problems to solve. One included using four switches and an electric motor. When the motor started the code had to be able to stop the motor if it went in the wrong direction.

    Previously I had been and electrician/machinist/millwright. Neither hydraulic motors nor electric motors work that way. I couldn’t get past the fact that the problem was wrong.

    I got the job but was leery of them ever after.

    • Tizzy says:

      That’s always annoying. Unfortunately, real-life problems don’t really lend themselves to interview problems, and I’m pretty sure they must have been aware of that. Still, they have to have some way of figuring out what a candidate can do…

  51. MaxEd says:

    I never went to any competitions in school (due to being an uncompetitve homeboy, who was to lazy to spend a day away from his own computer), but I went to one while in university.

    They had a computer with cygwin or mingw (I don’t remember which), and no IDE at all. And I was very much used to have and IDE – from QuickBasic’s built-in thing, to RHIDE+DHGPP or even C++ Builder. Still, I decided I could to it in a Notepad.

    Another thing they had was an automatic pass/fail system. You had to send it output of your program and it told you if it was right (later, your code was looked at to make sure you didn’t just printed the right output without doing any computations). It was an OK system if only for a little flaw: when your output failed, it didn’t return anything. So I never knew if my code was wrong, if my formatting was wrong, if I didn’t send output the right way, or if stupid automatic thing just didn’t work. I don’t believe I solved a single assignment (out of 15 or so) and it troubled me: yes, I wrote games at home, but could I get a job with such poor results? Well, here I am, coding a MMORPG. I guess I just suck at competing (I even hate playing against anyone, but AI in games).

    BTW, we too wrote some of our programs on paper in University. But this was explicitly explained: it was so we learn not to rely on process of code/run/debug/repeat to write bug-less programs. I never learned to do that anyway :( Good thing modern game programming does not require this skill. I guess I’m not very good programmer for it, but so is pretty much everybody else, but a few top people, so I’m OK with it.

  52. TM says:

    In my highschool programs and functions were, in all tests, written on paper. The reason for that is, I assume, that computerizing the matriculation tests would be far to great a headache for the convoluted school system to manage, so that’s how our tests and quizes were done. Homework and projects were to be written using a programing platform on the computer and handed printed, emailed or on a USB though.
    Your worry that the tester would not understand a thing you wrote because of messy handwriting and structure is, I’m sure, shared by anyone who’s ever handed a handwritten program. I don’t know how it was back then, but when I took my programing tests the teacher dealt with that, and at most added a disgruntled comment to a test, but she never took away any points for that. There’s just no way you can write a program in a test without figuring out in the middle: “Oh, I’ll need a counter to track X and maybe a pointer so that I don’t lose List Y” and almost every program I wrote on paper had variables added in tiny letter among others, or lines copied to another part by drawing an elipse around them and having an arrow point to the line’s new location.

  53. Mom says:

    I am repeating my request for a picture of you in your VICA blazer. We know you have it!

  54. susie day says:

    uugh … My husband participated in VICA back in the early 2000s, and it was a crock then too. He made it to nationals, but the organizer basically stole all the funds, and even though he placed second, there were no scholarships, job offers .. nothing but a complimentary copy of Office 2000 pro. On a positive note, he got his first job by writing a Super Mario Brother’s clone and taking it to the interview. This is where he learned about bad management and worked there until they went out of business.

    I was home/self-schooled, and so it didn’t really matter what I was good at … I taught myself web design and started doing that for a living.

  55. Zak McKracken says:

    In tenth grade, I took part in a local school maths competition.
    Got into a room with a few others, got some tasks, set to it, and realized that this was reaally ard stuff. I was used to handing my maths exams in before the bell rang, but not this time. I almost started crying at the end when I had only worked on three of the four problems. I was convinced I was in really bad form that day.
    … and won.
    Only then I realized that everyone else had been having the same problem. And that other guy who handed in before the bell, was just too frustrated to carry on.

    Shamus, I understand the frustration pretty well, but it still makes me sad to see you didn’t face the challenge, even though it wasn’t the one you’d been expecting. Come to think of expectations: If you didn’t know beforehand the exam was going to be on paper, then maybe neither did the others? Also, you nailed the first competition, and that one was on paper, too (and why didn’t you enquire beforhand, how the test was gonna be?). And lastly, it would have made a much better narrative on your blog if you had despaired at the stupidity still continued, understood the stuff that had seemed senseless before and discovered you won after all. In a good story, the hero gains something, I’ve been told. He can loose the boss fight but learn something valuable about the world or himself. In this story, the hero hasn’t gained anything, he’s just gone to the dragon’s cave, seen that it was the wrong type of dragon and returned home. The antagonists are anonymous stereotypical idiots out to make others’ lives miserable by being stupid, and that’s what they remain.

    Now, I know I made lots of bad decisions when I was 18 that still haunt me over a decade later, and of course I don’t expect you to make your way through life in a way that will give us perfect story arcs. I’m just explaining why all this makes me wish it had gone different.

  56. Reach says:

    What an embarrassment. Things are much better these days, at least in terms of contest procedure. In my computer science UIL competition, we took both a written test checking our knowledge of Java syntax, and then a much more decisive programming section on computers. We could choose the IDE we wanted, and we had complete access to the Java API. The written test didn’t affect the overall outcome. The only problem was at the local level no one had the resources that the number one school had (and by resources I mean a single freaking instructor who had the knowledge or motivation to be a CS UIL coach.)

  57. I think giving up and running away is bad. Running away from something that you hoped would be useful? You should just see and not run away.

Leave a Reply

Comments are moderated and may not be posted immediately. Required fields are marked *


Thanks for joining the discussion. Be nice, don't post angry, and enjoy yourself. This is supposed to be fun.

You can enclose spoilers in <strike> tags like so:
<strike>Darth Vader is Luke's father!</strike>

You can make things italics like this:
Can you imagine having Darth Vader as your <i>father</i>?

You can make things bold like this:
I'm <b>very</b> glad Darth Vader isn't my father.

You can make links like this:
I'm reading about <a href="http://en.wikipedia.org/wiki/Darth_Vader">Darth Vader</a> on Wikipedia!

You can quote someone like this:
Darth Vader said <blockquote>Luke, I am your father.</blockquote>