Unemployment among UK computer science graduates
blog.hefce.ac.uk
blog.hefce.ac.uk
My question is, why should CS be different than any other subject in terms of foisting responsibility onto kids who just want to gain employment? I have a feeling that if you started telling medicine/architecture/engineering/science departments that they need to start teaching students about entrepreneurial skills, and that students need to spend their spare time working on projects and battling for internships or they'll likely remain unemployed, that you'd be laughed out of the building. I'm not sure why CS is a special case, and why practitioners perpetuate this situation via blame in threads like this. It makes intuitive sense that employers want the best candidates, and these are mechanisms by which candidates can demonstrate suitability, but every other area seems to cope without them, so...why CS?
If you have a newly qualified accountant, doctor, architecture it is assumed they are at least competent to some basic standard (and it is expected there competence increases with age + experience).
This is NOT the case with software, it's possible to be a software engineer with 10+ years experience and still be terrible.
My own experience is that I don't test well, and this has made it terribly difficult for me to get jobs. I have two startups behind me yet it's made almost no difference.
Unfortunately most companies don't select for good software developers and neither do most software developers (ask people what their favorite kind of interview test/question is and you'll rarely actually get a good answer but you will often get a confident one).
Most companies don't reward being a good software developer either. Management mostly just don't know what it is you do and have no idea how good you are. Thus they just default to pretending that you're a disposable cog even when that behavior is self-destructive.
At best they'll make use of some poor proxies (degree class, university, popularity of the OSS project you contributed a one line fix to, their personal "gotcha" question, etc.).
Is it any surprise that people don't improve? With some exceptions, there really is no point.
> If you have a newly qualified accountant, doctor, architecture it is assumed they are at least competent to some basic standard (and it is expected there competence increases with age + experience).
> This is NOT the case with software, it's possible to be a software engineer with 10+ years experience and still be terrible.
Having known my fair share of software engineers, accountants and doctors, I can guarantee you that they are not that different. In every case some less experienced people are better than some more experienced people, and in every case some people dedicate part of their free time to their area: while some software engineers spend time in OSS and blog posts, some accountants read all the new legislation and participate in conferences, and some doctors read a lot of scientific papers and give lectures.
And yes, software engineers also read stuff and give lectures. But the amount of reading required by CS is a lot less intensive than accounting or medicine.
Agreed, and this just compounds my confusion. Why are 22 year old science grads treated differently to 22 year old computer science grads from the same university :S
Fighting over unpaid or underpaid internships and ass-kissing with professors so you don't wind up unemployed is standard operating procedure in every industry other than tech.
I can't believe the things my high school classmates in law and medicine put up with and how little money they stand to make until they hit 30.
A lot of people go into it believing they'll make huge piles of money, but a lot of the money goes to the public school types who know someone/are related to someone in barrister's chambers.
The rest goes to corporate street fighters - the kind of people who get involved in patent troll cases, and send out cease and desist letters to the owners of domains one or two letters away from a famous brand.
High street laywers don't earn much, comparatively. They're also not particularly competent (IME).
There's a basic problem here - when someone finds a piece of popular software is crap, they're not surprised.
When someone discovers a doctor or a lawyer is incompetent, they are surprised.
In fact I suspect these professions are a lot less competent than we'd all like to believe. The real difference in ability may be smaller than we think.
But software is used by millions, so when there's a bug it can make the headlines, and it's always bad news for the public perception of the software industry.
Doctors, lawyers, and accountants all work personally, case by case, so it's easy to hide pervasive incompetence.
Finance, maybe.
Well, that's somewhat true, although it's probably more to do with middle class jobs drying up in other professions than the media.
Increasingly it seems that Tube Drivers and Programmers are the only middle class jobs left.
Tube drivers because they can still shut down London.
Programmers because lots of people with more money than god still believe in unicorns and because they are willing to channel that belief into a fire-hose of capital financing.
Otherwise I would absolutely think that the best jobs would go to those who start work early. Certainly bears out my experience. I know plenty of graduates who didn't really think about careers until leaving and suddenly found themselves at a disadvantage.
Computer Science and tech are unique in that programming talent can be gauged to some extent and companies actually are interested in doing so.
Consulting, accountancy, banking, law, etcetera all seem, superficially, to be based a lot more on the ability to put up with long hours and some sort of prestige test.
If anything tech workers have it easier in my view. You don't just go and interview and get a job working in biology regardless of how special you are. (OK; I suppose if you had a cure for a cancer that may not hold).
How about translators then. You've got two translators with (officially) the same level of training. But one constantly reads specialist literature in foreign languages, while the other one doesn't. Would you not hire the first one? Would you still claim that's foisting responsibility?
But is this a factor in other careers? You're saying that you'd be more likely to hire a doctor who's paid for extra courses etc, well perhaps, but do doctors compete in this manner? And do graduate doctors compete in this manner or are they effectively assured of a stable career?
Do you know why engineering students join the Solar Car team, or EngSoc, or do internships? The fact that it looks good on a job application is almost always a component.
It's not just a small thing either. At my current university, the engineering internship program has a 70-80% participation rate.
My suggestion would be for those who want to work in a given field to consider their internships carefully, and work on projects and in positions that lend themselves towards learning their desired field of employment over the specifics of the educational learning. The CS concepts can help, but actual experience tends to count for more.
This is as an outsider who's worked in software development for almost two decades now without a formal education. I've worked with programmers with degrees that were very good at their job, and others with masters in CS that couldn't think their way out of a wet paper bag. Theory does not equate to practice, and software in particular is much more of a craft in practice than engineering or science.
Definitely agree. I have some experience (8 years) and most of the software development jobs I've seen aren't "engineering" at all, and shouldn't require higher education.
Those that want to stay pure coders will be left behind, given the current market trends, even here in Europe.
Also they mighty need to be explained the technical advantages and possible issues of the ongoing projects.
Most people would be better of with a trade school/apprenticeship system, or a "sandwich course". These do exist and I know someone taking one as a mature student, which came with a Microsoft Research internship.
Schools should really be handing out copies of that "employment rates by course x institution" table with the UCAS forms.
At university, the furthest I could deviate from a pure CS module, was "Russian for Scientists" and a few maths/stats modules. If you wanted to do anything more diverse, you needed to get special permission. I certainly wouldn't have been able to take do a calligraphy module and revolutionise computer typography. And if i'd decided computer science wasn't for me, i'd have had to throw away all degree progress and start over with the new subject, there was no concept of carrying over any accumulated credit into the new degree.
Lucky you. I was not allowed to take any more Math/CS courses by my last semester because I had already taken 'too many' and needed to fulfill my 'non-math' credit requirements. No joke -- the requirement literally just said 'non-math - 5.0 credits'.
What a load of bullshit.
I came to uni to study CS and I'd have thought that by the time I'm in my final year I'd be able to do just that.
I think it's ok to have a requirement in the first year but after then it's just a pain.
There are loads of great math videos on YouTube - this is where I've best learned new math concepts recently.
[1] http://www.thecompleteuniversityguide.co.uk/league-tables/ra...
I used to work with / mentor students who were somewhere in the middle to poor end of the scale. An apprenticeship is probably better, now that tuition fees are so high.
On the first point, look at the difference between the numbers at the top and bottom of this table:
http://www.theguardian.com/education/ng-interactive/2015/may...
These rankings are nonsensical in many ways, but some universities consistently appear towards the top and some towards the bottom and the employment stats plummet towards the bottom of the table.
On the second point, click on a university name in the link above and you will see a list of degrees. You can a) see that "Computer Science" can mean all sorts of different things and b) you can click on the degree name to see the actual course contents, which may not match what you think of as computer science:
* Business Information Technology BSc (Hons) http://www.lsbu.ac.uk/courses/course-finder/business-informa...
* Computer Graphics Technology BSc(Hons) http://www.kingston.ac.uk/undergraduate-course/computer-grap...
https://www.northumbria.ac.uk/study-at-northumbria/courses/c...
One of the programming modules in the same degree is titled 'Programme Design & Implementation'.
https://www.northumbria.ac.uk/study-at-northumbria/courses/c...
In my experience the level the MSc courses are taught at can be a good bit lower than the undergraduate courses in the same department.
NB This doesn't apply to all UK masters degrees, obviously. Some of the 5 year courses are really good.
so when employers are looking for applicants, they look for CV buzzwords and then test the person applying.
Pass the test? great. you're in.
a degree for software/systems engineering really only helps later in life when you're going for a leadership or management role.
the UK is also guilty of denying education about how computers work for a couple decades, opting only to teach microsoft office with a few CCNA college courses which inevitably get cancelled. So computer science students are really learning how computers work when they first go to university- and that's just mental.
and a little like hub networking we can only operate at the rate of the slowest peer. We can't "negotiate up" the curriculum.
so it's a waste of time and resources for many people. - like another poster said though there is a lot of mathematics involved so it's not like I'm saying it's useless, just that it's certainly not necessary and that we should be (and are) putting computers into the hands of children rather than teaching people -only once they arrive at university- about how computers function.
I don't know about the rest of the UK but Computing Science is on the curriculum at schools in Scotland - I studied computing at school in the early 80s and had projects doing 6502 assembler on an Apple (NB and I did not go to a fancy school).
Here is a SQA Advanced Higher paper - looks pretty good to me:
for the last 10 years there hasn't been. (even at college level)
the closest that comes near is the BTEC National Diploma in IT systems support (which I took) which teaches you the OSI model and how to crimp cables. (and also that Worms are "bad" and viruses are also "bad" and hackers are "bad" etcetc)
it's definitely not computer science but it's a somewhat close approximation for the low skilled workers that will someday become level 1/2 support.
if that's your intro into university then it's still a very low base to take you forward.
CS at university does not teach that.
Personally, I don't think that CS courses should be even trying teach that kind of stuff. CS courses should be about fundamentals not craft or process.
[NB Craft and process are obviously more important that fundamentals for at least 95% of development roles - which is why I hate CS courses being regarded as "learn to develop" courses].
And for a "professional" Job its debatable if using such a low status term is a good idea - in the UK Apprenticeships are seen as blue collar low status jobs at best.
Ask most people in the UK about Apprentices and they will think of the lusers on that ghastly TV Show.
Oh And I say this having followed the vocational track into IT
Software development requires a pretty extensive grounding in the basics just to know what you're looking at when someone shows you new techniques - to stretch my already tenuous metaphor even further, most people at least know how to remove a spanner from a toolbox and which end to hold it. I'm not sure the same can be said of opening a terminal.
As for the discrimination against apprenticeships as being a lesser thing than the default route of school -> college -> university, that's a wider issue that needs addressing, and I don't think its going to be helped by inventing some new name for the same thing, especially in the software industry. I also took the vocational route in, and I don't think its ever put me at a disadvantage (if anything it means I have three years more professional experience than my peers). Most of the software developers I know studied unrelated subjects at university anyway.
I don't know what courses are like these days - but that absolutely wasn't the case in the 1980s when I got a CS degree. However, the course I did was fairly heavy on the maths/formal side of things rather than focusing on the craft of programming.