Showing posts with label robots. Show all posts
Showing posts with label robots. Show all posts

Friday, 22 July 2011

Misfits of Science

University was a bit of a shock. I had a very heavy courseload in first year... more contact hours than I had in my last year of high school... and it fell to me to make sure that all of the prac classes and tutorials I would have to attend were timetabled correctly. I didn't actually know what a 'tutorial' was, and I wasn't much interested in finding out.

The other thing was the maths.

I had never enjoyed maths, but I was good at it. At High School, maths was one of my best subjects, at least in terms of grades. But apparently the university wasn't happy with the standard of maths from incoming students, and we were all subjected to a preliminary test before the first term began to prove our competence. And it was just as well. I scored 12 out of 15 on the test, but all three of the questions I got wrong were all the advanced trigonometry questions. My class at high school had done a different unit when others had done trig, and I hadn't learned any of the advanced stuff. So, on top of the heavy courseload, during first term I had to take extra classes in high school level trigonometry. But it paid off: when I resat the trig test and my marks went from 0 to 100%.

But all the classes were dull. They were teaching Pascal, which I was already bored with, and I didn't learn much in the first semester. My most difficult class was Deductive Logic, administered under the philosophy faculty by a lecturer, Hermann, who was no longer teaching any comp sci because he'd failed most of his students in his subject area in prior years.

Hermann taught us formal reasoning, and it was a lot more difficult than I had expected. They were small classes and I on one occasion fell asleep sitting in the front row, directly in front of him. By then I was starting to perfect the art of only working as hard as I had to, so I got through it with reasonable grades.

I soon found in the following semesters when we took boolean logic in maths and computer science units that I had already covered the material in much greater depth, and those subjects proved easy. A valuable subject, as much as I had disliked it.

But then I pretty much hated everything. I had made a few friends, but I wasn't enjoy  my subjects. I wanted to drop out every single semester. Later in first year we were taught about dynamic memory... pointers... and this was something at least new to me. I quite distinctly remember the a lecturer telling us that pointer arithmetic should be done on paper; it was too difficult to do it in one's head... which any commercial programmer working in a native language (at that time, the vast majority) will tell you is patent bullshit. But it was true that pointers were something many students couldn't master. Pointers, I think, are the first big conceptual leap you need to make in order to become a real programmer.

I did not, at that stage, appreciate that most of the people in my classes would never be able to be effective programmers in the real world: even if they could master the technical aspects, the ability to sit down and solve difficult problems all day long is not one that most people are wired for. For my part, I enjoyed the problem solving and I flat out just liked making things, but I felt like I'd already done all of these things before. I wanted to build Skynet, but nobody else was interested in that. It was data structures and algorithms I mostly already knew, employed in the service of meaningless tasks that had already been solved a thousand times. At the end of the day I was promised a semi-lucrative career maintaining ancient software on obscure hardware that would likely be used only by banks, for exciting banking purposes.

I wanted out, but I didn't really know what else to do.  I made the Dean's list in first year despite my misery. Second year my courseload was lighter. No more maths, no more deductive logic... but the comp sci classes were less interesting. We did a lot of hardware and operating systems subjects, the only one of which interested me was the brief unit we did in assembly programming. For the third time I found myself studying boolean algebra. I was still bored and I still wanted to drop out.

In third year we got to choose subjects. I knew I didn't want to take anything to do with networks; I was terrified that it would lead me to a career as a system administrator. Sysadmin, I reasoned, was the most miserable job in the world. If the network is running fine, nobody notices. If the network goes down... which they frequently did, and do... even if it's no fault of your own... everybody hates you. Not for me. I wanted to get out of university with as little work as possible, so I tried to sign up for a bunch of easy subjects... but those all had Databases as a prerequisite. I signed on for Databases and somehow then found there was no room for the easy subjects. Databases proved to be the second-most useful subject I took, although it was a long way from being my favourite.

I enrolled in COBOL. I wanted to do C++, but, owing to the strange degree I had enrolled in, I didn't have the prerequisite year of C programming. Third year had a lot less contac hours than first, so I went to the C++ lectures anyway. Within two weeks I decided that I had to find a way out of COBOL and into C++. If I learned COBOL there was the horrible possibility I would one day have to program it in the real world. By the same token, I knew that C++ was a viable language. COBOL was for retirees; C++ was for powerful young men. Besides: at that time the only language I was any good with was Pascal, and I knew that there were no careers in that.

I had to get into C++. There was nothing for it but to try it on, and see what I could get away with... but in the end it was no difficulty. The professor had seen me in his lectures and he just signed me into his subject, without even asking if I had the prerequisites. I dropped COBOL as quickly as I could.

This was the single best thing I ever did in my five years at University.

I liked C++. I had a bit to learn, but I was able to pick up most of it out of the book. I knew it would be valuable and I paid attention and that, more than anything, is the basis of my career in software. Naked C++.

The other big challenge of third year was the Software Engineering team project. I wound up on a team with one friend and four strangers. The project itself was dead boring... an inventory management database app... but we divvied up the work and I buried my head in my area, which was the User Interface. I took on board my task and decided to let everybody else get on with their own. This was a bad idea.

For all the time we spent in documentation, we really had no plan for how to integrate all of the pieces, and ground zero for this was my UI. When the time came, and I saw how inconsistent and flat-out terrible my teammates' work was, I had to get up and leave the lab. I wanted to punch someone. Did they have no pride int heir work? What the hell was I going to do with that mess? The team lead had flown off to China to look for a wife. The programmers who'd made the mess had no idea that they'd done anything wrong. That left me and the 'chief coder', Adrian, whose job it had been to oversee everybody else's work and make sure it would all integrate. I'd done my bit; I decided that it was on him.

This was very selfish of me, but I had big projects due in other subjects that the rest of the team did not. I went off to work on those and I left Adrian to it. Luckily, he rose to the occasion. Adrian worked long hours, day and night, and he got it done. He made it all work and I think our project scored better than anybody else's. I felt bad about having left Adrian to all the work and resolved to never do that again... and karma has since paid me back many times over.

I didn't make the Dean's list in third year, but I didn't go to many classes, either. All the same, I completed my degree with good enough marks that they offered me an honours year, which I accepted... and then deferred. I couldn't handle another year on that campus, with those subjects. Computer Science? What does that even mean? We don't say 'physics science' or 'chemistry science' or 'mathematics science'. A computer is a device, it's not a branch of science.

And what exactly had been scientific about my degree, really? What sort of research did we do, what new discoveries were we making? I had taken classes in other science disciplines, and even the 'soft' sciences were more research-oriented than CS. What I'd learned was really a kind of engineering, no matter how my degree was named. Since leaving I have never once had the word 'scientist' in my job title (although I would, for a time, hold the title of Advanced Researcher).

Did I want to be an engineer? Did I want to go and work for a bank? No, I decided.

I wanted to build killer robots.

Thursday, 21 April 2011

J.A.R.E.D.


I was a child in the eighties, when computers started infiltrating the home for the first time, and I think that's probably when my interest in the field first arose.

I was a precocious reader, and I vividly remember the first time my parents took me to a proper bookstore and let me choose a book. I was already reading pretty well, but most of the books I had had been chosen for me or acquired second hand at school fetes. I knew the work of a small handful of authors very well, but I wanted something new and different. Even in the combined Children's/Young Adult  section there was a lot to choose from. What was I most interested in? I asked myself.

Science Fiction, I decided, was the way to go. There was nothing more interesting than the future. The book I chose was Granville Wilson's WAR OF THE COMPUTERS, which was not only science fiction, but it had green gun  toting robots on the cover.

In a dystopian England, a young boy spearheads a revolution against the tyrannical computers than run the government. At least, that's what I think the book was about; I no longer recall it. I'm pretty sure I read the book twice, and I don't remember struggling with it, but I expect that it was a bit  politically complex for a 7 year-old. 

The book did, however teach me a bit about the difference between a computer and a robot, and I left with an abiding fascination for both of these things, and the interface between them. At the time I don't think I ever expected that I would one day have the opportunity to program a robot... and if I had, I certainly had no conception of how unglamorous it would be.

A few more years into the 80s we started to hear the words 'computer whiz kid' applied to children who displayed an aptitude for information technology. Whiz kids seemed to feature in early science fiction movies, some of which I saw, but most of which I absorbed through the novelizations. There was Wargames, in which  teenaged Mathew Broderick hacks into a military simulation computer, and whose subsequent interference almost provokes World War 3 (in seems far fetched that a simulator might have access to a realworld nuclear arsenal, unless you have actually worked in IT). I didn't see TRON until much later (and I was disappointed when I did), but I did own some of the toys.

There were others, but my personal favourite was D.A.R.Y.L., featuring an amnesiac nerdboy with a preternatural gift for hacking (but also for anything else he set his hand to, including baseball). Daryl, it turns out, is actually an artificial life form developed by the US military. He is recaptured, but he escapes by stealing an SR71 Blackbird. This, I think, not only encouraged my interest in computers, but it also kindled my childhood love of fighter aircraft. If you had asked me then what I wanted to be when I grew up, I would have said a fighter pilot. (Or, some days, a SCUBA diver.)

I desperately wanted to be a whiz kid, but I never connected that with an actual occupation. I even knew a whiz kid; a neighbour who lived around the corner from us who happened to share the same first name as me. I liked Jared Jones, and my parents used to take me around to play with him quite often (sometimes he even let me use his computer), but he was not a popular kid in school. In fact, looking back on it, he was an archetypical computer geek, a mama's boy who was constantly tormented by a gang of bullies.

But despite that  I was jealous of JJ, and I suspected, deep in my heart, that the only reason he got to be called a whiz kid and I didn't was that he had a PC and I didn't.

I don't know what happened to JJ because my family moved away a couple of years later and I lost touch with him, but I wouldn't be surprised to learn that he was now in the IT business. Technology being what it is I suppose I could find out, if I really cared to, but that's all a little bit War of the Computers for me.