Adventures with edgy continue

Network Manager can’t always tell the difference between wired and wireless cards (bug 60162) and X can’t always… work (bug 60882).

I think I’m noting these more or less just to imprint on my mind not to upgrade before the beta release, next time. Especially not just because I can’t join an IRC channel, of all things.

Upgrading to Ubuntu Edgy

I upgraded to Edgy on the weekend, mostly so that I could get a newer version of my IRC client. And actually, I was doing that because an IRC channel keyword I’d been given wasn’t working and I figured it must be my client. It turned out, in fact, that the keyword was bad somehow, so that was a wasted upgrade.

So, what of Edgy in general? Unfortunately for Ubuntu, the software as a whole tends to work well enough that I only notice broken things when I upgrade, so here’s the bad things I’ve noticed:

  • When I log in, GNOME reports that CPU scaling is not available on my machine, so dagnabit, it’ll either run it at 1.6GHz constantly or just tell me it is, I haven’t worked out which. This is one of those things that has worked for me in every previous version of Ubuntu, so it’s annoying that it’s broken now. I believe this is bug 36014.

  • If you type words into the address bar, the epiphany browser no longer treats them as search terms for Google, it instead treats them as a bad URL. Now you need to type words in and then select Search the Web in the drop-down box. This is one of those niche desktop behaviours that a very small fraction of the users were doing but that I was so addicted to that it was central to my use of the application. It is going to take the best part of a month to retrain my URL usage. I’m heartily tired of the behaviour of the address bar in both Firefox and Epiphany changing (and differently changing) in every new Ubuntu release. That dialog is probably my single most used text input box. No bug, because in my experience changes in the behaviour of this kind of dialog are generally deliberate.

  • Aptitude, which I use for package management, is now incredibly slow to resolve dependencies. As in, dependency problems that it previously worked out instantly now take a minute or so. It takes that long to begin every single system update. I’m pleased to see that this is bug 51893 and there should be a new package waiting that fixes most of it.

So far, Edgy seems unlikely to best Breezy (Ubuntu 5.10) in its place in my heart as most stable Ubuntu release to date (Dapper — Ubuntu 6.06 LTS — was less stable for me, Long Term Support be damned, although it’s solid enough on servers). I guess the name is a warning though. In news of things that aren’t broken suspend and hibernate don’t seem to have broken this time around, which is, I think, the first major development version I’ve upgraded to where I didn’t have to spend a lot of time convincing them to work again. And Unison still works for once: usually it whinges if you’re copying files to a machine with a different version of Unison, which is a problem if I don’t want to upgrade all of my servers to the development Ubuntu. (That’s Unison’s fault, not Ubuntu’s, of course. The protocol ought to be stable enough that the server and client can have different versions and still talk to each other).

I hope the intermittent problem with hibernating I had with Dapper are gone, but since they were intermittent I don’t know. Likewise, I hope bug 49221 has disappeared for me at least, but since it was intermittent I can’t be sure yet.

Temporary dialup

Andrew and I are going to the snow this week, and we’ll be un-broadbanded. Since I have some work I need to finish for a conference paper, and I know that the lodge has a fixed line, I thought I’d grab a temporary dialup account.

I would have thought that pre-paid dialup, which does exist, made sense. But either you have to pay a lot for a little (our friends at BigPond, as usual) or you have to go to a physical store and ask the blank-faced underpaid sales assistants to provide you with something that they sell very little of and therefore have never heard of (Primus, Chilli). And in any case I really don’t like the model where I look something up on a computer at home with a broadband connection and a perfectly good Visa card sitting right next to me, only to have a website tell me that I have to go to the shops to pick up a card, at which point I have to take the card back home, log onto a website using said pre-existing connection, and set up a new account. Since it involves a pre-existing connection anyway, why not just let me sign up online?

I do confess to having been stupid enough to try this retail outlet scheme this morning though. I was duly punished for that when Dick Smith told me that they don’t even sell the starter packs for pre-paid dialup, only the refills, for goodness sake.

Anyway, thanks to those picky folk at Whirlpool I found Beagle. Nice and simple. Beagle’s not pre-paid in the usual sense (that is, you have a fixed amount of access that expires at some point), they do actually sign you up for an ongoing dialup connection on a monthly billing cycle. But there’s no contract and cancellation is an easy, automatic and well-advertised website feature. $13 a month. Looking around a bit more I see that AstraTEL among others could do it a little cheaper, but with uglier web pages, so on the balance I’m still ahead.

And testing it out, I find that the support for my laptop’s onboard SmartLink modem has improved, I now only have to install sl-modem-daemon rather than needing to compile a kernel driver as well. Another win!

Blog Day

It’s Blog Day, or at least, it was, I was alerted to it late and timezones don’t help. Anyway, the idea is to recommend other people’s blogs. I’ve done this before for the Australian blog awards, so I’ll stick to new discoveries and people to whom I am not related:

The Amazing Adventures of Diet Girl

I know I have a number of readers who really don’t like reading about weight loss or dieting (mostly for political reasons or because it’s triggering), and so I’ll warn that if you don’t want to read about weight loss or dieting, you shouldn’t read Diet Girl. DG — she’s actually Shauna Marsh, the author of perennial Australian super-blog favourite What’s New Pussycat, but only outed herself as Diet Girl recently, due to having made the press — is not totally unaware of or unsympathetic to pro-fat or health at any size arguments… but she’s obviously personally rejected some of them.

That said, the reason I’m recommending it to untriggered folk is that, well, it’s Shauna Marsh and it’s the same mash of silly moments, minor neuroses and general fun.

Obsidian Wings

This is one of those cheating ones where I’m recommending something that’s a lot more popular than I am (2–3 orders of magnitude, I’d say, in the case of OW). But just in case it isn’t well known to Australian readers: if you’re interested in US domestic politics and international relations from what would count as the soft-left point-of-view as judged in the US you could do worse than following at least Hilzoy’s and Katherine’s posts.

Making Light

Again with the super-blogs, sorry. But I read Making Light for one of the minor sideshows: Jim Macdonald’s posts on first aid and emergency treatment. You can grab the lite emergency-only Making Light from my del.icio.us feed.

The Carnival of Feminists

Cheating again, but in a different way: this is a carnival of blogs, not a blog itself. Go to the sidebar for the action.

I’m surprised that the carnival thing hasn’t crossed over into Free Software blogging. In any case, the idea is that each week or fortnight or whatever, a chosen blogger hosts a ‘carnival’: a round-up of the best posts fitting under a certain umbrella. There seem to be a lot of them, but this is the one I read, because it touches on issues I’m perpetually interested in: posts on sexual harassment, women’s roles as homemakers and workers, sex, that kind of thing.

Divester

Divster is the best general purpose scuba diving blog I read, the others are mainly holiday fantasy blogs about diving in South-East Asia. Non-divers should at least check out their Flickr pool This is Why We Dive and also their competition to pick the real close encounters with sharks.

Household music sharing

Andrew and I have one good set of speakers. Actually, they’re mine. I saved money for one and got the other with 21st birthday money. But this breaks a lot of the assumptions of household music sharing applications. It’s quite common to want to have a single place where all the music is stored and then siphon it off onto random players. It seems comparatively uncommon to want jukebox functionality: not uncommon enough that it’s never been done (oh boy has it been done), but one does rather seem to get stuck in the land of I had this party once and hacked up this software rather than something with the imprimatur our new desktop overlords.

Anyway, the Music Player Daemon is rather big in this world, and for a while I used its client gmpc because it seemed to be the best of the GTK-clients (and I just hate dependencies, don’t you know?). But it wasn’t actually good enough. To select a song to add to the playlist involved launching a new window, scrolling down a huge list of artists, clicking on the artist I wanted, clicking on the album the song is on (how should I know?) and then clicking the song.

Having used Rhythmbox I’m really quite stuck on a one window model where it’s possible to find a song in various ways without having MPD’s first artist then album then song hierarchy imposed on me. And today I found Pymp’d (I suspect it’s meant to be pronounced pimped, or possibly pimp-d), which is an MPD client in the style of Rhythmbox.

So far so good, with a few hassles:

  • there’s something going on with the packaging that’s funky, because neither the Debian nor Ubuntu Edgy packages behave for me (Ubuntu not repackaging something against Python 2.4 always bodes ill);
  • there’s something equally funky going on with the last tarball, it seems to think it’s been installed at the hard-coded path ‘PREFIX/share/bin’ (‘PREFIX’ as in the fixed string, not any kind of variable) so I installed the SVN version;
  • adding my ‘All’ playlist, which is only 2700-ish songs (about 7.5 days worth of music) to the play queue causes the GUI rendering to freeze for a number of seconds, and 7.5 days is not that much music on the nerd scale; and
  • I don’t like having to add that list to the play queue in any case, one of the nice things about Rhythmbox is that if there’s nothing in the play queue it doesn’t just stop dead, it just plays random music from your collection (or whatever bit of it your current search has picked out) until you add to the queue manually again. I realise that this would require some hacking around MPD’s model, because MPD itself is all about the fixed queue.

But it’s going to actually make my expensive speakers usable again, so thumbs up so far.

Google as spammers

Dennis Forbes has a nice line in Google criticism, or Google-cheerleading criticism anyway:

While Google is undoubtedly a technical superstar that is executing ideas absolutely brilliantly, it is remarkable seeing such admiration for what is essentially an internet advertising company. Where was the love for DoubleClick?

I recall this most often when their employees occasionally forget that the term unsolicited commercial email might apply to email from them… even email about something they’re sure I’d really like! Every time I post about this I hope I can ride a wave of Internet scandal, but no one ever notices. Nevertheless:

  1. in July 2003 Google sent me unsolicited email to try and get me to let them crawl one of my websites;
  2. in March 2005 they really needed to check again (see entry); and
  3. in fact, that very same month they needed to make one final plea (see entry).

And now they’re bothering the freedesktop.org mailing list administrators, which is better than bothering me of course, but even so.

Dear Internet travel pundits

Dear Internet travel pundits,

At the moment, people flying in and out of London and some European and North American airports cannot take hand luggage on their flights. Owners of laptops an other expensive electronic equipment must check it in if they wish to fly with it. Stop sanctimoniously telling people with laptops that they shouldn’t worry unless they don’t have travel insurance, in which case their main worry is that they’re an idiot anyway.

Why? Well, here’s what travel insurance companies have to say about checking laptops in as cargo hold luggage:

Navigator Travel Insurance Budget Policy

The Underwriter will not pay for the following in addition to the general exclusions on pages 5 and 6 in connection with claims made under section E:

[…]

12. loss, theft or damage to Valuables, which at the time of such loss, theft or damage were located in checked-in luggage or an unattended motor vehicle

[…]

Valuables Means cameras and other photographic equipment, video equipment, audio equipment, computer including all discs and tapes…

Travel Insurance Direct

We will not pay for any of the following losses:

[…]

12. A loss, or theft of, or damage to:

[…]

(e) a video camera, mobile telephone, photographic equipment, personal computer, or jewellery left unattended by you in a motor vehicle, or are transported in the cargo hold of any aircraft, ship, train or bus;

1 Cover

11.2 WE WILL NOT PAY

We will not pay a claim in relation to your luggage and personal effects if:

[…]

b] Your jewellery, mobile phone, camera, video camera, computer equipment or their accessories are transported in the cargo hold of any aircraft, ship, train or bus.

[All italics are this author’s emphasis.]

OK, I might be cheating with the last two, because they’re both Australian and for all I know have the same underwriter, possibly the same lawyer. However, the basic point is that travel insurance people are in the business of not paying out and those very moments where you think phew, thank goodness I have travel insurance, I’m a smart person and therefore have nothing to worry about are those times when you find that they don’t cover some perfectly normal activity; like being forced to carry a laptop as checked baggage thanks to security threats.

Netgear WGR614 wireless router

Back in the glory days of 2000, you could tell a geek house because of the blue Cat-5 cables strung everywhere. We sure had them. In 2001 when I lived in a 5 geek household I think one was the best part of 30 metres long. Andrew has had a trusty Netgear DS108 hub since about two days after I added my computer to his and Tim’s and the house network had to grow beyond crossover. It’s been driving our network ever since, even though Andrew has been looking at it and willing it to turn into a switch about once every three months for all that time.

Anyway, these days the revolution is wireless, and that’s for values of ‘these days’ that covers about three years. Andrew and I are tragically slow to spend money on gadgets, oddly. We got wireless enabled laptops in 2004 and they were even supported by our operating system before the year was out. But blue cables have remained, until today.

Why today? Well, that’s because of another, older revolution. For the last month and a half, my parents have had broadband. (Actually, this is a meaner feat than it sounds; they live about 10km out of town in a rural area. I didn’t even know that Telstra did ADSL for people like that until my father emailed me from his new email address.) This means that it’s somewhat plausible that we can go out there for a few days and work from there, which is certainly nicer than spending five hours on a bus on Saturday, spending fifteen hours there, and spending five hours on a bus back. But that means being able to hook nicely into their ‘net setup. And that means wireless.

So we shopped around purely on a price basis and ended up getting a Netgear WGR614 wireless router, with bonus points for the salesman actually being quite nice and chatting to us about our setup and warning us that if we were to accidentally mention to our ISP’s tech support that we used wireless they’d probably hang up. (That’s ok, Andrew told him, we use Linux. They can’t hang up twice in one phone call.)

And then of course there were fun and games configuring the thing. It wants to be the kitchen sink: a router with an in-built DHCP server. We have a large and fairly expensive router and DHCP server already as it happens, and for bonus points it has an 80GB hard-drive and acts as my primary mail server. And I know how to set it up. So I needed to get into the wireless router and hit the magic don’t be clever button. I was expecting this to be rather like our ADSL modem configuration: that is, you really do log in and say please be a dumb bridge, no routing, yes, I’m looking at you, stop that routing (so to speak). Not so easy with the wireless router. It really wants to be the kitchen sink.

The trouble with stuff like this is usually knowing what to search for. I was searching for netgear wireless modem bridging initially, which was just stupid, I kept getting product reviews. (It turns out the search term would be access point, by the way, access point being the wireless jargon for not being a clever clogs.) And, notably, for once I was actually saved by a natural language query interface! I worked on natural language question answering for a year without ever believing that anyone had a working one. (To be fair, we were trying to return short pithy answers, not whole documents.) I put How do I put wgr614 in bridge mode? into the the Netgear knowledge base search box and actually got something useful back.

And then we spent an extra hour fiddling around because I stupidly didn’t pay attention to the bit where you change the IP address of the wireless router/access point to one that fits your network manually rather than expecting your main DHCP server to do it. (Also, for the benefit of anyone wading through this crap trying to actually configure one of these things, change the IP address under LAN IP Setup, don’t bother about the Internet IP Address under Basic Settings because that’s to do with the port that you’re not going to use. And for the benefit of confused people thinking about bringing wireless into your lives and wondering what the hell I’m going on about, don’t worry, and follow the install directions and let it work everything out automatically; if you don’t have a machine in your house that you affectionately know as my server you don’t need to go through this, lucky you.)

Australian Anita Borg scholarships

There’s been little rumblings for ages around these parts about the North American focus of the Google initiatives aimed at computing students. For example, Summer of Code is in the northern summer during the northern long university vacations. One that’s always rankled a bit for me personally is the Anita Borg scholarships being limited to female students in the United States.

Well, no more. Google Australia has announced Google Australia Anita Borg scholarships open to female students at Australian universities, entry closing September 15. I’ll be applying if I can find even a moment to try and fufil their fairly hefty entry criteria. The money isn’t as good as the US one (AU$5000 as opposed to US$10000), which is actually irrelevant to me for silly reasons, so that’s OK. (If I get other scholarships in any form totalling more than 75% of the value of my Australian Postgraduate Award, I have to forfeit the scholarship money from my APA. So the difference between a small-ish and big-ish scholarship is removed. I’m happy to accept truly huge ones of course, and the APA can be damned.)

A degree in computing?

This is a re-publication of an essay I originally posted on a now defunct website in September 2004.

I’m obsessed with understanding the minor failures in my own university education, probably unreasonably so considering that I have two undergraduate degrees, good mental health and a debt to the Australian government that will buy them only one new low range car.

Nevertheless, there are a few striking things about a degree in computer science that I’ve learnt through experience, and thankfully sometimes through the experience of others, that I think are worth noting for the record. This essay is a guide for people considering starting a undergraduate (bachelor-level) computer science degree or computer science major. I’m going to lead with the negatives: I think people should think more carefully before starting computing degrees, and degrees in general for that matter. But as I don’t actually regret the degree, I will conclude with some positives.

Why you may not want to do a computer science or computing degree

You aren’t suited to university

By this, I basically mean that you don’t want a degree. Degrees are what universities think their purpose is. Degrees are annoying things to get. In most universities there’s a complex set of rules governing which subjects you have to take in which combinations, which subjects you can’t take, how many subjects you can take, what marks you have to get, and what level of courses you need to do. They almost invariably involve at least one time-serving course which is totally uninteresting to you, and one boring but difficult course which you need to put a lot of work into.

Once you jump all those hurdles they let you wear a silly hat.

Further, universities are geared towards students getting degrees. If you show signs of not being such, like repeatedly failing courses, or simply doing too many low level courses and not enough final year courses, they have a distressing tendency to try and throw you out.

Further, at least in Australia, you can get by without degrees in computing fields. Their official function is to act as a stepping stone into academia, or as a heuristic for employers to demonstrate that you are capable of completing a long, and more than somewhat arbitrary, list of tasks in order to achieve a goal (employers are in the long and arbitrary tasks business too). They also indicate a certain skill set. But they aren’t the only way to show that you have that skill set.

Larger organisations get a bit hung up on them. It can be difficult, for example, to get work visas to certain countries without a four year degree in a relevant field. As businesses get bigger, it tends to get more likely that "degree in relevant discipline" appears in the ‘mandatory requirements’ section of job ads too.

While failing to get a degree you wanted can be miserable, hanging around at university without much intention of getting a degree can be fun, especially in countries that have low tuition fees. My experience of people who do this is that they eventually get sucked into the degree mania and have some regrets, especially once their friends start graduating, but if you really want university without the degree I don’t have much more advice to give.

There’s good things about university too (later!) but if this description is making you grit your teeth and long to flee into a job, or possibly to the Himalayas for a good long hike, follow your dreams there instead.

You don’t like programming

To people who know about the content of most university computing courses, it will seem extremely strange that you want to do computer science at all. The reason is that university computing courses focus on one of two things: in the vast majority of cases, that is programming theory and practise with dashes of software engineering and a smidgen of computing theory (discrete mathematics, in other words); in a small minority of cases they concentrate on computing theory.

In short, if you are certain that you do not like computer programming, you should not do a computer science degree, with a few rare exceptions for people who like the mathematics rather than the programming and want to do a theoretical computing degree. Even in that case, check the program you’re entering thoroughly because almost all of them will have you programming much of the time. You might well be better off in a mathematics major.

If your bent is systems administration or other techie non-programming skills, you will also want to avoid most undergraduate courses, because they teach programming to the exclusion of what you’re interested in. There are a few exceptions to this, and you might find some interesting Masters courses, but be sceptical and enter programs only when you’re sure that you aren’t doing "programming with a dash of systems" when you want systems. It’s likely you could find relevant courses outside the undergraduate system, and it is worth considering skipping the whole thing and learning on the job.

In the, alas, most common case, where you have some idea that you might like to "work with computers" (or often, you would like to manage people who do), have no particular existing skill set above using your computer for email or gaming, but are certain that coding is not your thing, you don’t want to touch a computing degree. In the best case you’ll struggle through a semester or two, realise that it’s all programming and you hate it, and spend another semester or two establishing prerequisites in a different field. In the worst case you’ll push through three or four years wondering when you’re going to learn ‘industry skills’ (meaning management). You aren’t. You’re in a programming course. Definitely skip the whole thing. Do a little research and find a faculty or major that teaches the skills you want or the things you’re interested in.

There are a number of non-programming computing majors, normally called ‘IT’ or something similar (although not always, some ‘IT’ courses are also programming courses). These generally have varying amounts of ‘basic computing’ (using office products), system design, project management, database design, and business skills. Computer science students tend to look down on these courses, but the few people I know who’ve done them say that the management skills they teach can be worth it. The only thing I’d warn about if you’re thinking of one of these courses is checking whether you like programmers themselves. If you find them insufferable or laughable, you’re going to have a hard time managing them and it might not be worth training to do it.

You have no idea if you like programming, because you’ve never done it

I know several people who started university in this category, two of whom graduated from computer science with highest honours. Unlike loathing programming, it’s not a death-knell for your enjoyment of the course. In addition, at least in Australia, all computing degrees assume that you cannot program when you begin them (the University of Sydney claims that, except for a few very experienced students who earn excellent marks easily, the difference between the experienced and inexperienced in terms of marks is negligible after three months).

Nevertheless, before committing three or four years and a fair bit of money to a programming degree, you may want to get a basic idea of what it is you’re going to be doing with your time. There’s a few options: there are a lot of online programming tutorials these days and many free toolkits — a lot of your programming is going to be self-taught anyway, so you could start out that way. You could also take a summer course at a technical or community college. Which one you want to do may depend on your personality: as a beginner I spent a lot of time trying and failing to think of interesting practise projects, so I guess I was a course-type person.

Programming is difficult and frustrating initially, but allowing for that, having a little programming experience will help you decide whether you like it enough to spend years listening to people talk about nothing else.

You love programming and are very experienced

By this I don’t mean that you got high marks in high school computing courses (or at least, not that alone). People who can program to the extent that they get high marks in your average high school, but not a great deal more, will probably find computing degrees really useful: you will meet people more skilled than you; you will find many of the assignments at least somewhat challenging; and while you will probably begin to find the lecture courses dull, they won’t cause you to attempt to pound your lecturer’s head through the wall.

Even in this case, you will find the early stages, which are aimed at the non-programmers allowed into the course, quite frustrating. But it’s quite likely that you will learn a great deal in the later years of the course, from courses and especially from classmates. You might well emerge ready to program professionally. In case you can’t tell, this is the category I entered university in.

But if you’re experienced to the extent that you’ve written working 10 000 line (or much more) projects for fun, have programmed professionally, or have done extensive work with others, you are likely to find at least the first two years so insufferably tedious that you may well be tempted to turn violent. Anyone who is a major code contributor to a medium sized Open Source project almost certainly falls into this category.

In addition, you may not do very well. There’s a couple of reasons for this. First, it’s unlikely that you’re going to be doing programming exclusively. In most computing degrees, your first year will include mathematics courses, and depending on the institution, it will probably also include at least one business, engineering, or science course. Your programming experience will probably not help you pass these other courses — which is not to say that other abilities, such as good mathematics skills, writing skills, or a good memory won’t get you through them — and the mind-numbing simplicity of introductory programming risks convincing you that you can pass them as easily as you will programming.

Or will you? Mostly, yes, with blindingly good marks. But alas, programming courses will often involve just enough theory to trip you up if you aren’t interested in some of the theory, or neglect to flick through the textbook: you’ll code up a storm but be unable to remember precisely how pushdown automata work when it comes to the exam (unless you ever coded one of course!) This is sometimes more the case as the degree goes on.

Some people who are experienced programmers might prefer to do a related degree with new skills (like mechanical or electrical engineering); a theoretical degree with a lot of maths, since they’re less likely to have taught it to themselves already; or a completely new field, if they want an extended break from their programming. Others might skip the degree. Otherwise reconcile yourself to the tedium a bit and try and seek challenge in your fellow students and your teachers, not your courses themselves.

You have no academic interests aside from programming

As above, most university degrees require some semblance of balance in your courses for a few years until they finally let you geek out on an all computing extravaganza. Annoyingly, some of these courses will also stand in your way — in particular, failing maths may stop you proceeding in computing.

If you really cannot stand any of the other subjects that are likely to comprise your program (make sure you investigate what these are) or aren’t going to be able to pass them, you’re going to have a hell of a time getting to the interesting bits of computer science inside the university system.

I did a science degree with maths and computing, and an arts degree with linguistics and philosophy: the first is a fairly typical computing degree. Other common ones are engineering based courses, which will have a lot of maths and physics with the programming; and business based courses, which will have accounting and management, and sometimes a touch of maths, with the programming. Some universities are very flexible and will let you do, say, metaphysics and computing, others stick to traditional patterns. But at least in Australia, computing degrees without non-computing course components are rare.

Why you may, after all this, want to dance to the university tune

I think I was actually a fairly good candidate for undergraduate computer science. I have reasonable mathematical ability, I’m a better writer than the majority of my fellow students (this became relevant during the last year of my degree when I did a research project), and at the time I entered I had some programming ability but very little experience of projects that took more than three hours to complete.

I ended up getting a lot out of my computing degree, and in this section I’ll discuss some of the things you could get out of it.

You will meet other students

I actually think this is the single major reason you should consider undergraduate studies at all. University is an easy way to make friends. You will be exposed to a wide group of people who like you are confined to the campus much of the time. Making friends after university is harder because the range of people you meet daily falls and it’s hard to see a lot of them, especially in cities where you may live two hours drive from your colleagues and friends.

I have a typical geeky high school sob story, although it’s on the mild side because it didn’t involve being assaulted or attempting suicide, it just involved loneliness. I arrived at university more or less convinced that I was terminally unattractive to my peers.

After considerable time (I spent five years at university) I left with quite a large group of friends and acquaintances, an immeasurably improved set of social skills, and a much better self-image.

In computing, in particular, your peers will have a lot to teach you, assuming you find a good group of people. Computing students tend towards the obsessive and will spend a lot of time teaching themselves and each other all about their findings. It’s probably more the rule than the exception that you will learn more programming skills from your peers than from your teachers. (This doesn’t seem to be true in other science disciplines, and is only true in the humanities when your peers are exceptional.)

‘Networking’ deliberately is a bit yucky, but the natural process of meeting people with common interests and hanging out with them will introduce you to people who have a lot to teach you. If you end up getting a job through these people eventually, you’re in good company.

The course discipline can be useful

Computing courses will tend to set relatively fixed assignments that force you to practise programming skills, although some teachers are far better at this than others. At the university I went to, these assignments were also very open-ended, in that you spent about three days getting 80% of the marks and then for every mark after that the time you spent would increase. While this was both good and bad (some students deliberately chose part time studies in order to improve their marks at the cost of an extra year’s study) it did force me to practice.

If you don’t, early on, get sucked into an intense group of hardworking programmers (and talented programmers can be among the world’s best procrastinators) the discipline of the coursework will improve your programming skills. In my case, and I only really did hobbyist programming in the final two years, the early improvement was huge.

You have the chance to study other things

A lot of people hate the elective requirements of some degrees, particularly if essay writing and mathematics don’t come easily to them (you’ll likely need one or the other), but undergraduate studies are one of the very few opportunities you’ll have to learn about a lot of subjects from experts in the field, some of whom will be marvellous teachers. In some cases — mathematics and science particularly — it’s very hard to learn about the field later without course discipline to push you along, in other cases it might just expose you to something you can follow up at leisure.

I gained two major interests from non-computing study at university: language and modern history. One is likely to be part of my career path, the other is filling my bookshelves. I wouldn’t be without them.

You’ll get the piece of paper

In most ways it’s an arbitrary measure of ability to finish a regimented program, but for some career paths you need it, and it might well make you happy to have it. I quite like having mine, I even gamed the system for a fifth major. In hindsight I wouldn’t do a five-year pre-honours program again (and I wouldn’t do high level maths after second year because I wasn’t committed enough to it) but I’m pretty happy about it overall.