As a recent CS grad, this article stuck a chord with me. I wrote the following reply to the author:

--

Hey Dominic,

I’m a recent CS grad (2009) from ECS at the University of Southampton. Full disclosure: it goes against my humility to say it, but I would probably consider myself to have been a student who hacked around with a lot of technologies and concepts not touched by my course (and I think I’m considerably better off for it).

Not to blame the course, though — the course at ECS was amazing. We had our fair share of "ethics" and "IT industry" modules, although everyone admitted (lecturers included) that these existed mostly to appease the professional bodies. We were subjected to modules that sought to teach us Java, requirements gathering, HCI and project management, although these only made up a small part of the course as a whole. A sizeable portion of my time at Southampton was spent deep in the mathematics that vitally underpin the "softer" CS subjects, and the course was delightfully broad. We built compilers to parse abstract languages, learned LISP (much to the initial mindfuckery of my peers and I) and we all implemented a FAT12 filesystem in C from scratch. The latter required two 12–hour sessions in the lab, and I’m pretty sure that the vending machine was completely drained of coffee somewhere around 6 hours into the second day. We were taught and examined in gratuitous (but stimulating) detail on computational complexity, data structures, formal methods and the properties of fundamental algorithms, and the officially sanctioned languages used throughout the course spanned Java, C(++), C#, PHP, Scheme, Python, JavaScript, Perl and a handful of UNIX shells.

I don’t think the problem is the courses, I think it’s the learning style of many students and the sheer number of students that are encouraged to go to university just because it’s what they are "supposed" to do to get a job. Group work always frustrated me, as many of my peers simple wanted to learn the course notes verbatim so that they could regurgitate them in an exam.

Although it concerned me that many of my peers would one day be released into the wild firmly clutching their Java IDEs, there were a lot of really bright students on my course.

The thing that stops large companies hiring me is probably the abundance of truly awful recruitment agencies. Myself and many of the ECS–ers that I’ve kept in touch with are bombarded by 5–10 poorly written, unprofessional LinkedIn messages from recruiters every week. Today I received such a message that opened with "Hi Darcey". Classy. They all seem to want Java/C# developers and none of them seem to care about other technologies, or deem them irrelevant, or think that this sort of "playing around" detracts from your skill in some other proprietary technology on their checklist. It’s getting to the point where I’m only "working" (for money) around 40%-50% of the time. The rest of the time, I’m just sitting at home working on side projects to keep myself amused.

Many of my most talented coursemates are either now working on their PhDs, or working 10 hours a day on a soul–destroying graduate program for some faceless city financial institution so that they can retire at the age of 45, burnt out and sick of technology.

Sometimes I feel like I should just move to Mountain View or Palo Alto or somewhere else with a little Silicon Valley sunshine, but I don’t want to move away from my family, and my girlfriend is very happy here working for a physics startup. It bothers me how grey and soul–less the prospects appear to be for passionate British software geeks.

Perhaps I’m missing something crucial (or maybe I haven’t been hanging out with enough of the cool–kids at Silicon Roundabout) but where can I find great tech jobs in this country?

Ben