British CS Majors Doing Badly In the Jobs Market
An anonymous reader writes "British CS majors do badly in the job market — with, four years after graduation, a higher than average (for college graduates) unemployment rate and fewer returning to higher education. Brit CS majors also do badly immediately after graduation. No similar U.S. figures exist reports the Computing Education Blog."
I get job offers weekly that offer to pay me ~$60/hr throughout the U.S.. Seriously, I can throw a dart at the map and find a job. I am a recent graduate of 2010. I had a job 2 weeks before graduating, and I was by no means an outperforming student. 2.7 GPA.
So only a few of them are becoming Apple CEOs?
Escher was the first MC and Giger invented the HR department.
here in eastern Europe, somewhat 70% of graduates in IT (don't think it's called CS here) don't even know what DNS is.This number is not something that I made up. Part of my job is to review candidates for a job.Personally, I would take a dropout any day if he knows his stuff.
As a UK CS grad, let me say that there are far too many unemployed I.T. people at the moment, many of which have a decade of experience. You want someone who knows your system already rather than someone you need to train up to that standard.
The UK is broadly speaking a service industry country which means we can support lot's of I.T. people in good-times, but also means we have a lot of excess employees when the economy goes tits up.
They also insist on 'teaching' students outdated technologies based on theoretical knowledge rather than any practical understanding of what is required for a job in the real world. I've recently interviewed several graduates who have top notch degrees in CS and who claim to have passed programming courses but don't know the first thing about how to actually solve a programming problem - in pseudo code or one of the languages they proclaim to know.
The main problem they all shared was that not one of them had any interest in programming outside of their course so had not given themselves any practical experience. They turned up for their classes, studied the poor quality material they were spoon fed, got their grades, but then wondered why they didn't just walk straight in to a top flight job. A good programmer is primarily a problem solver as they will adapt to whatever language is required. This is not something that is taught or encouraged in our Universities.
The saddest thing is that they don't mess with your career because they are evil, they just don't care. I received so many calls for opportunities at the company I was already working, it convinced me to get out of the resume websites and apply on gigs only via my existing network. Which anyways usually is enough after a few years in IT.
lucm, indeed.
Degrees *can* make a difference, especially if they are recent and cover recent techn{ologi,iqu}es. They are also *required* in some industries (nuclear, iinm).
Howver, the value in a degree varies widely throughout the world, irrespective of where the degree was obtained. In China, for example, degrees are very important.
Anyway, if you can up your salary by 50% each time you change, I can't help but wonder why you don't change more regularly...
Max.
I graduated in 2001 (with a CS degree). Couldn't get an IT-related job in my area as the employers kept saying they wanted experience. For some reason, the fact I'd built PCs for myself and family for the past 7 years didn't count. Nor did the fact I'd written several Symbian games and had them published, which was how I paid my way through Uni. It wasn't as though I was after high-powered jobs, just typical helpdesk type roles or an entry-level programming position.
The problem as I saw it back then was that there were loads of not-really-interested-in-IT people floating around as a result of the Y2K problem - people went on training courses just to make some cash from it, then once Y2K was over they had the much-coveted experience that employers were calling for. New graduates didn't get a look in.
There's a general perception in the IT industry in the UK that degrees are worthless and only vocational qualifications count. Being a member of the BCS doesn't count for anything. It's quite maddening (yes, MCSEs and the like are handy but hardly the be all and end all - a degree shows the ability to learn, an MCSE shows the ability to learn a more specific set of skills) but there's nothing much that can be done.
After working as a temp in a variety of offices for seven years, I finally landed a job in a school on the IT helpdesk there. I'm now involved in the maintainence of their Active Directory domain, as well as keeping our various VMs ticking over and dealing with software rollouts and so on. All for less than half a teacher's salary!
My advice would be not to bother going to Uni in the UK, employers really don't value it in the IT sector. It's a sad state of affairs IMO.
lol at my last job I got a phone call to schedule an interview with myself from a company I submitted a resume to 3 years prior
I have been on the hiring end of it. I was disgusted and subsequently quit working with a big name 'Technology Consulting' firm - who shall remain anonymous - after their rep repeatedly referred to recruitment "sessions" (where they have a bunch of applicants come to their office and have me interview them) as "cattle call". Really?!! That told me a lot about how much value they placed on PEOPLE that they were working with.
We don't recruit many people here, maybe 5-6 grads a year into an IT department of 80, but find ourselves wading through hundreds of applicants, most of whom can't score above high-school level in the numerical and verbal reasoning SHL tests that we ask them to do. Personally, I think we're doing something wrong in our recruitment, but after a 6 month recruitment programme we only ended up with 3 out of 6 grad positions unfilled this year. That's for a £25,500 a year job in Berkshire.
--- Band: Joey Ultra
the joke is CS is never up to date cause the guy teaching it has been stuck behind the same unix terminal for the last 30 years and has no effin clue what is out there while dismissing it as "consumer"
As someone who'll be looking for a job in about 2 years, I have to ask, how do you know?
If anybody started sending my resume around with the line "this person is really keen to work for you" (without m explicit consent), I'm sure my union would help me sue the hell out of them... (Well, granted that they're within reach of the law, e.g. residents in EU).
But how do I know if someone asking for my resume is sincere? If he works for company X, can I safely assume he's not going to pitch people for current and former employees?
Ironic that while you were ranting about your intellectual and academic superiority, you managed to spell "honer" incorrectly.
The article says that CS unemployment is (5.1% unemployed) is worse than unemployment for all courses (3.8%) for grads from 06/07 four years later. However a larger precentage of the CS cohort (81.5%) were in full time employment compared to all grads (73.2%).
So things are tough for all grads and many are not going into full time employment in any subject...
The reason is probably because having a CS Major over qualifies you for most jobs in IT. CS is great if you are going to be designing and building systems, but most jobs in IT are maintenance. The problem is modern governments who think that they need to push more people to get degrees to have highly skilled high tech workers. That makes as much sense as requiring electricians to get degrees in electrical engineering.
========
CINC, 4th Penguin Legion
I'm not sure of the definition of doing 'badly' here when the average unemployment rate was 3.8% and the CS unemployment rate was 5.1%. Is just over one percent more graduates not having a job 'performing badly?'
If you actually check the data that the article references, you'll also find that the figures included a very broad range of CS degrees, including any joint degree that includes CS. Also from the article:
It’s not all bad news, 81.5% of computer science graduates were in full time employment four years on from their degree, compared to just 73.2% of all graduates. For maths graduates the figure is 73.1% and for physical science graduates it is just 66.0% – though a whopping 19.8% of them are in full-time education.
As somebody who's currently teaming Computing/Computer Science in the UK to 11-18 year-olds this type of scaremongering is not helpful.
Meh, the joke's on you really.
C/C++ and Java still pretty much rule the roost in terms of jobs, with the MS .Net technologies bringing up the rear. Of these only the MS stuff is within the last decade.
Software tech does not move anywhere nearly as fast as a lot of folks like to believe.
is the problem... some tosser in Parliament got it so that companies could get around our foreign labour restrictions by allowing companies to set up offices in places like India and then bring in Indian staff on secondment for a year before rotating them out for other secondees...
Donald 'Duck' Dunn: We had a band powerful enough to turn goat piss into gasoline.
That attitude is sure to get you hired somewhere respectable.
Here are some more fixes for the first post:
McDonalds
Johnny Stoner
What
beating
Gears of War
Not to mention that your last sentence is just an incoherent mess.
And the second one:
because
2 AM
Ending a sentence with a full stop is proper grammar.
-=This sig has nothing to do with my comment. Move along now=-
It's easy to get another job when you already have one. The hard part is finding one while being unemployed. You would think with today's economy employers would understand companies are going belly up all the time good workers are getting laid off but they'll just throw out your resume if you aren't currently employed.
The Official Site of 1337 Pwnage
And there I was thinking precision typing was a useful skill for a programmer. I don't think I'd trust any major code syntax to someone who can't remember that capital letters go at the beginning, full stops go on the end...
IN STORES NOW!!!.... The BIG Book of British Smiles
Now you don't even have to get on a plane. less snakes that way!
Offer void where prohibited. not available in real countries and the state of NY.
We substituted the coffee Slashdot normally drinks with "Sandoz Crystals", Lets see if they notice the difference
I work in a senior IT position for a large UK company and we basically don't hire UK IT people for development, everything gets offshored to India.
Don't agree with offshoring as it leads to delays and higher costs but am not surprised by this study as high level management in the UK tend to see developers as bottom rung and equivalent exchangeable units so a guy in India has a lower unit cost per hour than a guy in the UK.
"Because we are not employing at entry level, offshoring will kill our industry stone dead."
Do you think that maybe, just maybe, its your attitude that is holding you back? Most companies dont need insanely brilliant pyschopaths, they need people who can get shit done. If you go in to an interview like you should be running the place, they will have no qualms about throwing your smart ass on the street.
Monstar L
Perhaps across the board things aren't so good, but at the institution I graduated from (University of Bristol), most everyone from CS I've seen since I graduated 2 years ago has a decent job, or is now studying for a PhD.
50% of jobs in the UK are obtained through networking. The proportion gets higher the higher you go. (I get the impression that this is certainly true at the higher levels in the US but there is much more "competition on merit" in the job market or whatever you like to call it there - or at least competition based on the interviewer liking the interviewee on paper and at interview rather than having known him for a few years prior.)
Computer science types are not very social.
The economy is shit.
"People can design a programming language and operating system but don't know the idiosyncracies of the Java API!!!" has nothing to do with it. An intelligent man can learn any imperative language quickly and program well, being much more cost-effective in the long run. It is a mark of a mediocre firm to have an insecure interviewer who cannot handle that the person he may be taking on might have better cognitive abilities, so he dismisses him because he can't roll off an optimally compact/write-only Perl script from the top of his head. The better firms will challenge you with theory (not "write a quicksort" but "let's explore this paper") and ideas ("how can we improve...?").
That is all.
I graduated a couple of years ago, and of the class of ~300 there were only ~10 who really seemed to know what they were doing -- people were reaching the final year of the Java-based course without knowing the difference between classes and objects, for example; and the university was dropping the "hard" modules like "how compilers / interpreters work" in favour of more "hello world in PHP" :-(
I'm *really* glad that I got lazy with the course, and spent my time writing my own code -- having a portfolio with a wide variety of open source projects has done more for my employability than anything else
I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
I graduated this summer with a BSc (Hons) in Computing. It was just by a hair, as I was a bit of an idiot with my project work and my documentation was terrible. Regardless of that, before I even had my results in I had been offered two different jobs, one for a Web/ecommerce shop and one from a digital media agency. I took the one at the ecommerce place, but the company went near bankrupt after two months (didnt see that coming...they hired another guy same time as me, saying they were doing really well..) and after a week of "unemployment" I landed another job as a developer for a FTSE100 company. Again, they were not interested in university results so much as just what I knew and what I had done commercially (I did a placement year at another FTSE100 company, which greatly helped both my experience my CV). I am now happily at work here. The people I still keep in touch with from university all also went straight into employment. I should add also that the university I went to was not at all prestigious, more like (almost) the equivalent of american community college. Honestly from my experience I do not see a shortage of CS-related jobs at all, certainly not here in the South West.
After graduating, it took me a year to get a job. This wasn't due to a lack of technical expertise, or interest in programming as a hobby.
One part of the problem was where 95% of the jobs were wanting 1+ years experience. What they didn't say is that they wanted commercial experience. With the remaining jobs, specialist fields were out (games, finance, etc.) as a result of lack of skills in that area.
With the remaining jobs, it was a matter of sending the CV out to those jobs. I found early on that I needed to chase them, as they wouldn't respond if the application was rejected. It was then getting feedback, and honing and improving the CV.
During that time, I participated in boost.org, learning about source control and implemented a simple application in my placement.
Universities should have source code control and bug/defect trackers as part of their requirement. This will help students when they get a job.
Also, Universities should help the students either get job placements during the summer holidays or to get them involved in Open Source projects. This would go a long way to showing experience and expertise. Also, the students should look at helping out answering questions on stackoverflow and the like. Then companies should be more receptive of this experience when considering applicants (especially since they can see the student's contributions).
:A computer scientist should not be maintaining AD or playing with VMs for a day job. Building PCs does not qualify you for IT work any more than replacing the water pump on a car qualifies you as a fleet manager. Writing programs in Symbian is not evidence that you could work in a development environment. I think you may have gone about things the wrong way.
I am currently looking for HTML5 programmers - not web front end designers - people who can work with my specifications and POC and turn out working applications. I have recently had to replace a support person (who we trained from scratch) with ECDL 3 with a graduate; the support person is already working in a new job at a major software house. There are plenty of vacancies out there but (a) you have to seek them out - agencies are good at placing people who really don't need agencies, and that's about it - and (b) you need to demonstrate relevant skills. If you want a job with a web design firm, design something that works, deploy it on a cheap server and send them a link.
From scarped cliff or quarried stone she cries "A thousand types are gone, I care for nothing, no not one."
I've just graduated from Computer Science from a good British university. It was a good university in the rankings and is well known and I worked very hard and achieved a good degree. As a result, I've had a lot of job offers with very good salaries for a fresh graduate position (£30k to £45k) and had to turn down quite a few and pick the one which was most interesting and enjoyable to me. Finding a job hasn't been hard at all. The same applies for the rest of my year and my friends, all had good jobs to go to straight after university.
I did a really interesting course, with a great balance between theory and practice. We have some of the best lecturers in the country and had opportunities to work with a lot of cutting edge research and technologies. You don't have teachers, but researchers and lecturers working on really exciting things and up to date knowledge sharing it with their students. It was very useful and valuable, and quite different from what a CS Major is in the US. We actually study just CS (A-levels and GCSEs cover what Americans generally also cover alongside their Major, which are done at school). What I learnt and did on my course has been invaluable in my job, so it was definitely worthwhile (not to mention really interesting!)
Companies want *good* graduates, not just graduates. As I've ended up doing some recruitment myself in my current position, that comes from experience as well! If you are a good graduate who has worked hard, has a passion and an interest, did a good course and is ready and willing to learn and give their best, you can't find enough of them and they will get good jobs, and indeed they do!
I don't know how much people know about the UK university system, but there a good universities and bad universities. Good universities are top in the rankings, have a good reputation, and are about learning and gaining new knowledge. Bad universities are basically a result of the government pushing everyone into higher education. To go to a good university, you need to work hard at school, get good A-levels and work hard through your course and get an accredited meaningful degree from a university people will know exist. All the rest go to the bad universities (which are more like colleges - polytechnics which werent even previously called universities), require nothing to get in, party and have a good time and get a fairly meaningless degree at the end of it and very little knowledge. There's a big difference here.
Furthermore, CS in the article is grouped as containing all the other related-but-not-really degrees. From experience again, people with IT degrees (completely different to CS - CS is technical, IT is "business thinking") find it hard to find jobs. They can't really become managers as they don't understand what they are trying to manage. They can't go into technical positions as they haven't done it. On the other hand, as a good CS graduate, you have a lot of opportunities in a lot of different areas.
In conclusion, a good graduate from a good university will have no problem at all getting a job. Students from bad universities (ones which recruit, rather than select students) and who do strange courses (e.g. Things like Computer Games offered at some not-so-great universities) or things like IT degrees generally find it a lot harder. Theres some big distinctions here, which the article doesn't fairly represent.
Mod this up, one of our newest tech support guy has this motto: "Why should I learn anything if, I already have a degree in `whatever IT related`."
having a portfolio with a wide variety of open source projects has done more for my employability than anything else
I'm out of IT now (teaching instead :-) ), but when I was a programmer my portfolio was gold. It needn't take all that long to do. Work on a project in your spare time for a while, take pieces of code out of it and document why you did what you did. Because I was an XP coach for several years, on my own open source projects I did a kind of mini planning game complete with iteration plans, velocity, etc, etc. I included some of these in my portfolio as well. I got more feedback about that than anything else, which surprised me somewhat. One manager even told me that he hired me specifically due to the planning artifacts (which made him comfortable that I knew how to work in a controlled manner).
A lot of time people put in insane hours at work but leave nothing for themselves. It can really, really helps you professionally to take a few hours a week out for yourself so that you can make a portfolio. If you aren't working 40-hour-weeks, it pays to tell the boss that you need to take some of those overtime hours back to practice programming techniques. They get a better programmer and you get a portfolio (and new skills). It's a good trade-off.
Please, if by mistake you ever visit our country, don't go anywhere with a BA postcode as I wouldn't want our average IQ reduced.
From scarped cliff or quarried stone she cries "A thousand types are gone, I care for nothing, no not one."
Whoops, wasn't logged in. Abuse to this username, please.
People like to speak in vagaries to hide any error on their part.
Why don't you post the actual problem you give to interviewees so other readers might offer an idea of why so many "can't do it"? :-)
A favorite tactic is also to suggest that someone you are working with is about to leave, and has suggested you as a prospect. Normally I turn to the 3 other guys I work with (all partners) and ask which of them is leaving. The recruitment guy normally hangs up at this point.
Whilst what you say may be true about IT support where the market was flooded long before the unemployment rate started to rise in the recession, what you say absolutely isn't true of software development. I find IT support recruitment to be rather sporadic though, there's so many good people out there who can't get jobs, and so many bad people that have jobs. I find companies desperately struggle when it comes to recruiting good IT staff- it's a blaggers industry, and those who are best at blagging get the jobs over those who are simply best at the job. The head of IT support at my current employer has the knowledge of an £18k a year helpdesk employee, and the management competence of a 3 yr old, and doesn't believe the company needs a meaningful security policy and so forth, yet he's paid around £40k a year. I know a number of vastly more skilled people who actually know about DNS, DHCP, TCP/IP, and know that there are better ways of setting up laptops than manually installing every piece of software each time (i.e. using images), who know about talking to people and don't run off to a satellite office where no one works when something goes wrong because he's too socially inept to face an angry upper management, and who can actually talk to people without jumping into a paranoid defensive mindset. Yet, they keep him, because he's all they've ever known for the last 10 years having moved him into the role from an engineering position when they decided they needed an IT department, and they think because I'm their lead developer I don't know about IT support, which is amusing, because I have more IT support experience before moving into software development than he does, but oh well, it was another reason for me to move on!
There's far more software development jobs in the UK right now than there are suitable candidates.
As such I'd wager this issue isn't so much about lack of jobs, but quality of graduates. If the graduates were of high enough quality we wouldn't have so many software development jobs that go unfilled month after month.
I've recently been job hunting myself for a better role, and had no problem at all- I had the pick of the market with a number of offers which I could confidently turn down without fear of not finding a job until I found one that was willing to offer precisely what I was asking (decent amount of leave, pension, ~38% pay rise over my old job, more senior role, enjoyable selection of technologies to work with). There's certainly a lot of companies on the market that are time wasters right now (i.e. they don't actually know what they want) but there are plenty more willing to make genuine offers to the right people. I spoke to over 50 recruitment agencies in the last few months who contacted me (which in itself shows how agencies are desperately fighting to represent candidates) and those I formed a decent relationship with and got chatting too more confirmed this is just the general way of the market right now, there just aren't software developers out there with a decent level of competence.
I think a lot of the issues stem from the attitude of many younger people today- A-Levels and GCSEs have been handed down to them on a plate due to the dumbing down of them and so they have this mindset that they don't have to work that hard to achieve anything. They get through uni (well, some of them do) and reach the work place and can't understand this concept of having to actually spend hours studying the technologies and concepts that make them relevant to the business world. But this in itself is an issue- those who really, really love computing would be studying these technologies in their own time, degree or not, so at this point graduate or not becomes irrelevant- it's really just about those who aren't willing to put in the time to study technologies to make themselves relevant and those who are - and it's the latter that are in very short supply, and it's the latter than industry desperately needs.
After being unemployed for 9 months as a Comp Science grad, here's my experience of a typical job ad:
... Wow, this turned into a really long post...
Junior Web admin - £18,000
Required Skills:
HTML, CSS, PHP, Javascript, AJAX, Java, Apache, SQL, C, VB.net, ASP, Active Directory, Microsoft Small Business Server, our obscure CMS, Photoshop, Flash.
2 years experience a must!
If the impossibly long list of skills doesn't put off the graduate (some of which are impossible to learn on your own due to the setup they need), the experience they require will do (should be illegal to advertise a junior position as requiring professional experience). Companies are completely unwilling to take on staff and help them gain the skills they need. They way all those skills, which only an experienced dev will have, then they want to pretend it's an entry level position so they can pay a highly skilled job the same as they pay people who answer telephones and type data into spreadsheets.
There are companies which do offer genuine on the job training and proper graduate jobs, mostly large tech companies, but these literally get hundreds of applicants (Jobsite.co.uk show application stats which is especially soul destroying). Meanwhile all the other companies which make no effort on this front moan to the government that there's a skills shortage (which they're one of the causes of) and try to get them to attract some Eastern European developers and the problem gets worse.
But then, I'm a bit bitter as I've ended up as the sole web developer in my company (who's earning £16,000 a year after 3 years) and is currently on the verge of losing my job as it's going to be outsourced to Bulgaria. Of course they haven't told me this yet but I've overheard phonecalls they didn't want me to hear, I've been pulled off of active development work and have been doing heavy documentation work and reports on improvements needed. Guess they think I'm stupid and haven't noticed. Perhaps I am stupid for not leaving, just worried that I'll spend another 6 months on the dole which would bankrupt me this time.
From what I can see this data include Computer Studies and Computer Science, These are diff degrees in the UK. You can quite easily get a Comp Studies (esp from a ex-poly) without touching a line of code and just know how to drive Photoshop. dreamweaver etc.
The data needs more detail to split out a proper Comp Sci degree from the Studies degrees
As someone who graduated from a UK university (Maths primarily, CS second, part of the University of London) and works in education, I'll tell you why.
- The people who enter CS degrees have zero CS experience or knowledge when they join. Blame the A-Level's and/or CS being "playing with computers" in their eyes. On my courses, I didn't meet a single person who'd programmed for themselves (i.e. something other than a fill-in-the-blanks coursework) before they started university. I was sitting there spotting flaws in MSc project's code as a first year and being consulted by them about problems they were having, it was that bad.
- The people who do have A-levels have nothing useful in terms of actual computer science as opposed to "computing" (i.e. using the device). If you're REALLY lucky they may have done a year or two of some programming language (which could be anything from BASIC to Java). Blame GCSE's.
- The people who took GCSE Computer Science learned about the difference between batch processing and real-time processing (not what you think - basically a one-line answer that's hardly relevant any more) and how to draw pretty flow diagrams but no ACTUAL Computer Science and anything more modern than the 60's is generally something like "What program would you use to browse the Internet on?" (seriously, without distinctions between "Internet" and "WWW" and everything), or "What is antivirus for?". If you're really lucky, they'll have done some 1990's HTML to knock up the most awful web pages you've ever seen.
- The people who totally 100% ignore the curriculum, have an interest in the subject beforehand, do their own thing, get all the relevant qualifications, get into university and start their CS course have absolutely ZERO idea why they are doing it or what it's about. In most of my university courses, people joined courses because of the title (e.g. Compilers & Interpreters, Introduction to Logic, etc.) rather than what they knew, did best at, or would help them later on. The number of first-lecture-leavers for courses was unbelievable.
- CS people have ZERO knowledge of mathematics, usually, except for the handful that did Maths primarily. This severely cripples them unless they've bothered to learn binary arithmetic, logical thinking, etc. alongside their computing. Professors used to get really frustrated because they would have to spend hours going through binary addition. Hell, most students couldn't even work out Big-O notation without a TON of lectures on it. How on earth do you work out the efficiency of an algorithm, or how a hashtable works, without basic knowledge of maths?
- The universities can't keep up with the cutting-edge AND bring up to standard the crap that they suck in from the schools. Graduating back in 2000, in uni I was taught Java on Windows only - literally from scratch in the first two years of lectures - you could pass the BSc having never touched a programming language in your life because you had two years to learn one (it wasn't used until the third year) and you were spoon-fed it if required. MSc did the same, but in groups. Only PhD's touched other languages / techniques.
It was an old version of Java, an old version of Windows and you did nothing that pushed boundaries - I watched an MSc student applying minimax to a chess game in Java as a final-year course for his study group (for MSc you had to work together, for BSc, you did the entire course on your own). I kid you not. Hell, I debugged the damn thing for them.
Admittedly they had dual-boot Linux/Windows setups on every machine but they were NEVER mentioned except by the IT service guys. I was the only student I ever saw use the Linux tools, even among the MSc's (I assume the PhD's would have used them but they had a separate lab). Because of this, most people's work wouldn't run when it got to their course supervisor's marking stages - they had no idea how to program platform-independently (in Java, fffs!) and so lost marks because the program just
Unless the system has changed since I was at University, we don't really have the Major/Minor system here.
Isn't the term "graduate" a valid term in the US?
And "infact", and starting sentences with lower-case.
"I don't know, therefore Aliens" Wafflebox1
um uyanna fries with fat?
No, I want potato strips deep fried in lard.
"I don't know, therefore Aliens" Wafflebox1
WTB code that delivers chips and/or crisps whilst running. I may even vouch for the honour of the programmer.
Translation for the GP -- "WTB code that delivers fries and/or chips while running. I may even vouch for the honor of the programmer."
Not a chance, as I hope some of my interviewees read Slashdot :-)
However, similar problems would be something like the game of Battleships - I'd provide a simple interface for the game logic (e.g. fireAt(x: Int, y: Int): Boolean) and ask them to go about solving it. So no worrying on graphics or such niceties, just simple data structure manipulation. And as previously mentioned, most don't even run - we're much more interested in the approach than a working solution.
The 'required skills' of a lot of job specs always make me laugh with their massive list of requirements. I don't honestly understand why they do it because you'll never find someone with all those skills.
Just guessing: If you reject someone who meets all the requirements in favor of another applicant who has something useful you weren't expecting, then they might accuse you of discrimination. So list everything you might conceivably base your decision on. Of course, anti-discrimination laws are a great idea - in a parallel universe where HR departments adopt them in spirit. Back in this world, HR departments interpret them in the most paranoid and defensive way possible and try to turn recruitment into a quantitative science (thereby discriminating against anybody who has potential but has not been able to gain qualifications and experience because of, e.g. discrimination, poverty or other misfortune).
In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
The term "cattle call" comes from show biz, it means to audition a large number of unknown actors, it is not meant to be taken literally. Do you also object to similar terms such as "bull pen" in baseball, or "cat walk" in the fashion industry?
And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
My experience with a guy who recently received a MSc from a London university is the following:
On his CV he writes that he has a good knowledge in PHP, MySQL and CSS and also passed a Zend exam in PHP 5.0. Based on this he would be a good fit what we are looking for. His final project was a web-based library (as in book-lending) system making use of PHP and MySQL. My colleague and I (who both have ~20 years experience each in IT and software development) took him out and asked some related questions. But to our suprise he hardly knew fcukall.
PHP questions:
- "What is the difference between " (quotes) and ' (apostrophy) in string assignment?" (which should be quite basic an essential knowledge) Answer:"Uh, I don't know."
- "In your library system, you say the username is unique. How do you prevent that two people sign up with the same name at the same time?" (should have a unique key on the username) Answer:"The front-end checks for this."
- "Have you heard of SQL injection?" Answer after some seconds of thinking:"Yes, I have used it in my project!"
- "In OO, what is inheritance and encapsulation?" (all this OO stuff is for sure part of a Zend PHP 5.0 exam) Answer:"I don't know"
Databases:
- "What is a left outer join?" Answer:"Sorry, I don't know"
- "What are unique keys and indices?" Answer:"I don't know"
- "Do you have any knowledge about Stored Procs?" Answer:"no"
CSS:
- "What is the difference between absolute and relative positioning?" Answer:"Sorry, I don't know"
Eventually we ran out if really simple and basic questions. And to us it seems nowadays those MScs fly off the shelf towards everyone who can pay the tuition fees.
I still don't understand why puzzles are considered a suitable way of testing suitability for employment. It's a mile better than some generic aptitude test, but what does it really show beyond interest in contrived puzzles? I assume here that you mean that you want someone to write an algorithm which plays a good game of battleships. This often means, "Has this guy been to the same uni as me or read the same book where this puzzle is studied in detail?" Sometimes the interviewer doesn't even realise that they're doing that - it's even worse in other professions such as accountancy where you have an elite group of firms which have a nice two-way channel with the producers of professional competency exams, so your chances of passing depend very much on training with the right people. To create a solver under interview-exam conditions with no prior knowledge of the game is fairly tough and completely unrepresentative of typical development work. To demonstrate a solution to the puzzle merely because it's been seen before is almost meaningless.
Why don't you filter people technically by asking them to submit in advance work which they have done? I can't fathom the purpose of inviting anyone for interview until you have enough information about their work to be fairly certain that you are interested in their technical ability. This may be easier when hiring people with lots of experience (why hire fresh grads in the current environment?) but any graduate who doesn't either have an exceptional demonstration of theoretical ability or some practical work which they can present to you doesn't seem worth considering. Whether they've seen the same puzzle as you in a book/class and don't become flustered in interview conditions says comparatively little. For a second round, send people a task to complete in their own time. The ones with a competent solution (this means competent, not "as I would do it") can be interviewed about their solution - this confirms it was their own and shows that they are able to communicate about their development work.
The question you should be asking yourself is: Where am I going wrong with my recruitment process that people who fail to solve what I regard as simple problems are being admitted for interview?
Good CS graduates shouldn't care what language they've been taught in, although I've heard it make it easier to get past HR in some companies if the right things appear on a CV. I'm still at my first job since leaving university though, and here all CVs are sent to my manager to review, and if she's not sure she asks the developers.
At my interview for this job I was asked if I knew certain languages and some modules/frameworks for those languages. I didn't (except Java), but explained in general terms what I thought the frameworks did, and what the languages they used were like. They were happy with that.
On my first day I was given a VBA application to fix (a non-IT person had made it himself, and suddenly hit a problem with it and a deadline approaching). I'd not used VBA since I was about 15, so it probably took an extra half-day to be sure I was doing the right thing, but I fixed the bug, and rewrote an O(n^2) loop (of database queries) to be O(n log n) (using a cached index), bringing the processing time down from days to minutes. Knowing how to use a debugger (though I'd not used Visual Basic's one properly before) and write a decent comparison sort was mostly irrelevant to the implementation language.
That seems fairly challenging for an interview.
The obvious approach I guess is to shoot at random until you get a hit, storing the results in a table. Then you try the 4 squares next to the one you hit to deduce the direction. The algorithm could be improved by knowing what are the possible ships and which are left, excluding large ships that wouldn't fit in a given position.
Problem though is that your declaration doesn't allow for a "sunk" result, which makes things less efficient than they could be. Also it creates problems with ships in a "T" formation.
But, saying the above is easy, properly figuring out how to store the data, keep the accounting of the ships and so on requires some thinking, which is rather difficult to do on an interview where you don't want to make the interviewer wait while you ponder the best way to do it.
That's because n university is not a vocational school. It's purpose is to teach theoretical knowledge, not prepare people for a job. And yes, that means that you shouldn't go to one if your goal is a well-paying job outside academica.
University trains scientists; you're looking for engineers.
Forget magic. Any technology distinguishable from divine power is insufficiently advanced.
Sorry, I perhaps didn't state clearly enough. We're interested in an implementation of the method, not a technique for playing the game. At it's simplest, it's an array storage and lookup problem.
I should also note we timebox it to 40m, and we tell them that we don't mind if they sit and think for 35m before writing anything. We give them the option of ignoring us or using us as a pair. And we offer feedback during the process, e.g. if they look stuck or headed off on a tangent. Of course any problem feels an order of magnitude in an interview, so we try to minimise it.
Sorry, I obviously didn't state this clearly enough. We're interested in an impl for the method, not a client. We're not interested in a game-playing algorithm. We're aiming for something so simple it can be implemented using an array.
There are two puzzles we actually use, and we chose them via brainstorming and then getting a few people here to try them themselves. We're very definitely not trying to solve something seen before - rather, we aim for a simple game because we can demonstrate the mechanics on a game board during the interview. As mentioned below, we timebox it and try to remove as much pressure as possible. This isn't a Google style logic puzzle, but array manipulation.
As for filtering prior, we tried it. It didn't really work. Firstly, we had the fraud problem (only caught them once, but that was worrying enough). Secondly, there's the ownership problem - many employers aren't happy with their property being used in future interviews. And finally, if you ask for open-source or private projects theirs an entire kettle of fish with regards to discrimination (i.e. does this discriminate against those with family responsibilities etc.).
Add to this that we're a very small team, with no HR support. It's often a better use of our time to spend 30-60m with someone than to spend time bouncing (often worthless) CVs around, liaising over tasks etc.
I wasn't trying to provide a solution, I'm explaining why that sort of thing is challenging at an interview.
Also, the implementation follows from the technique chosen to play.
If you're testing for basic coding and array manipulation skills then this isn't very good, because figuring out how to play the game well has little to do with array manipulation. I wouldn't be surprised if people got stuck pondering the technique having assumed it's what you're interested in.
I've a fair few jobs advertised for 6 months or more. They're not horrible jobs and they're for good companies. I can only assume either students feel they should be paid more than they deserve or they're just not good enough to get hired. If it's a money issue this isn't London they're not going to start off on £50k. That doesn't even happen that often in London.
I'm a bit confused here, so I'll labour the point as you may be right and our candidates may be also confused, which would indeed defeat the purpose. So I'll try explaining it in a similar manner to how to give it to candidates and if you still see it as a complex task then we may need to do some work on our framing.
Bear in mind this is a similar question to the one we give, not the same. But we use a game board for the chosen game to demonstrate the rules, especially given many of our candidates aren't British.
Given the rules of Battleships, implement fireAt(x: Int, y: Int): Boolean so that, when given board x, the method when called alternately by each player will return true if a hit was made and false if a miss was the result.
Hence a game would go along the lines of:
Player 1 - fireAt(3, 3) = false
Player 2 - fireAt(4, 5) = true
Player 1 - fireAt(2, 3) = false
And so on.
So this problem can really be solved with an array check + update. Plus it's nicely extendable - if people nail it immediately, you could work on a win condition for instance. And it really has nothing whatsoever to do with actually playing the game.
OK, thanks for clarifying.
Some people lie in interview regardless - giving prior work/filtering will only help catch out fraudsters, not make it harder to do so.
Are you sure there is relevant employment law which would regard taking open-source work into account as illegally discriminating against those with family responsibilities? If the only remotely interesting code people have produced is unable to be shown to any third party, doesn't that say something?
I consider it more efficient to set up and study the results of some challenges than to interview a series of people most of whom are going to be found inappropriate. Then there's the advantage of a process which increases the chance of giving you an excellent team member. As you've said, "We've seen a lot of great CVs and great talkers who turn out to be shite at the practice."
Ahh, makes sense now. Got to pay more attention, heh.
Yes, that's quite a bit easier, I would expect more people to get that right.
The summary says "Computer Science graduates in the UK have high unemployment rates". The webpage says "Computer Science graduates in the UK have high unemployment rates". The study that it links to actually shows that Computer Science graduates have excellent employment rates, higher than many other graduates and significantly higher than the average of all graduates.
And it's worth adding that when I started at Cambridge, CS was only a one-year course that had to be combined with other subjects or taken on a postgrad basis as there wasn't actually considered to be enough of it to make up a worthwhile undergraduate degree.
There hasn't actually been much more CS invented since then (off the top of my head, digital signal processing, object-oriented programming and public key encryption are about it), despite appearances to the contrary.
I'm not sure making a 3-year undergraduate course exclusively out of CS is necessarily a good thing - throwing in a year of business studies, engineering or law might actually benefit both undergrads and future employers.
Yeah, I was once about 50K lines down into an old Cobol pgm. I found a little subroutine called GoManGo. Never figured out what it did for sure cause every time I handed it a little tax problem it tried to dominate the Mainframes time. Translate that one to, frantic calls from the mainframe people asking me WTF I thought I was doing and informing me that my pgm was just de-nutted by their sysops. After a little debugging I finally just cut the damn thing out and started calling the newer tax tables from the approved libraries. It was supposed to figure out how much tax to place on a pack of smokes based on the state, county, local municipality the smokes were gonna get sold at? Some old dude had written his own code to do this and it was buggy. He retired and I was sent in to figure out why the old code would not run anymore. Lots of fun, those were the days.
On the employment law, there's nothing concrete I'm aware of. But there are two reasons we want to avoid the issue anyway - one is that we've had some great people before who don't do a lot outside of work, but are excellent here. And there's the cover-one's-arse thing ofc :-)
I should add, mind, that this only relates to having such work as an entry gate. I'm definitely all in favour of candidates with such things on the side and love nothing more than to hear about them.
I did a stint on the milkround interviewing for Logica many years ago and did 100's of interviews of grads and grad+1's. You need to sell yourself; too many grads came in with what they thought were great CS degrees but were actually terribly theoretical and not practical for software development. We also kept stats on how grads did at the company and which degree courses they were on. It was well known in the sector that Oxford and Cambridge grads did poorly against grads who had come from more hands on courses.
So, my view is that if you have open source software development experience - and can demonstrate it (i.e. not just a few crappy bug fixes, but thought leadership, delivering results etc - then apply for the grad+1 jobs and make your case that you produced software in a highly competitive environment and was able to achieve results even though you were doing this on a shoestring;/late nights etc.
SELL YOURSELF.
I live in Canada but I've been looking for a job in Europe. Mostly I'm interested in continental western Europe but I've looked at some jobs in the UK as well. I'm really shocked at how little many IT jobs in England pay. Here in Canada a job that would likely pay around C$75-90k (~£48-57k) will probably be advertised at around £35-50k in most of England.
Factor in Canada's overall lower cost of living and better economy, and I have to wonder why people in the UK enter the IT profession to begin with. In more senior positions (i.e. once you hit maybe £70,000 p/a), pay gets equitable with Canada, and there's generally more vacation time and other benefits. However, you've got to slog through your time in the trenches and rise to the top before you can reasonably expect to get one of the better jobs.
www.clarke.ca
Welcome to Slashdot!
Sounds like the carpentry industry in Texas when I was growing up. I'm sure everyone will take this a bigotry so feel free to mode me down but it has a lot of merit and isn't meant to reflect the skills of anyone. Besides, I'm trailer park so I'm used to people assuming I'm a bigot.
When I was young, most of the grown ups (white, brown, and black) were roofers, painters, plumbers, and the like. A few rotten assholes hired pure illegal crews, paid them shit wages, underbid everyone else, and pushed those grown ups into other fields. If you know anything about that type of work you know that skills handed down are better than what is taught in any school. When the illegal aliens, being very competent and hard working, gained a foothold they quickly displaced the assholes that were using them. Now days, they might hire a white guy for sales in areas like Plano or Frisco to keep up the facade but that is all you will likely get. The tech industry is going through the same shit. From what I hear from friends in the UK, Indian guys hired at shit wages are now doing the hiring.
Having to work for a living is the root of all evil.
Ah relying upon auto-complete - the true measure of a comp-sci graduate.
Do you also object to similar terms such as "bull pen" in baseball, or "cat walk" in the fashion industry?
No, because those terms are more familiar to the general public. In figures of speech, words related to cattle tend to symbolize treating people like livestock. But U.S. residents are highly likely to have heard of baseball, and if nothing else, "I'm Too Sexy" by Right Said Fred popularized "catwalk" as a term for a runway in fashion. The familiarity of these covers up any livestock implications. But I imagine people are more far familiar with the pitchers' warm-up area in baseball than with show business hiring practices. A listener faced with an unfamiliar figure of speech involving cattle would first think of treating people like livestock.
The problem is, at least here in Canada, a 2 year comunity college diploma that probably prepares you better for an actual job writing actual software for actual real world people is looked down upon by most employers. There is a noticable pay difference and the large number of jobs will just shred your resume if it doesn't have a university degree on it.
This is the attitude that needs to change. I think a fairly large chunk of university students would much prefer a "no bullshit" education in the field they hope to make a living in.. but end up going the university route for resume food.
They get through uni (well, some of them do) and reach the work place and can't understand this concept of having to actually spend hours studying the technologies and concepts that make them relevant to the business world. But this in itself is an issue- those who really, really love computing would be studying these technologies in their own time, degree or not, so at this point graduate or not becomes irrelevant
Not all technologies can be studied on one's own time. Some technologies are offered only to established businesses, such as the SDKs for video game consoles. Some may be too expensive for a typical toy budget, such as CNC machine tools.
Think you deal with multi-variate systems? Compared to social scientists, no you don't. Think it's devilishly difficult designing a testable environment from which you can draw falsifiable conclusions? Try doing that with test subjects that have a will of their own, that you're also not allowed to dissect and examine afterward, nor abuse during the experiment (through oxygen deprivation, freezing, etc).
Social scientists use the same tools "real" scientists use, that is, math, statistics, computers, and other equipment, and they use them with equal skill and rigor. The difference is "real" scientists can blow things up, kill numberless lower life forms, disassemble systems, hold arbitrary things constant, and employ many, many other tricks that social scientists are unable or not permitted to use. Heck, even the Milgram guy shocked people with his experiments even though what he did was only playing head games with his subjects.
So the next time you're in your lab blending up a bunch of fruit flies to extract their DNA and looking down your nose at the "soft" scientists who "play" at doing experiments, consider how easy it would be to do science with both hands and feet tied behind your back while blindfolded.
Do what you can, with what you have, where you are.
Good CS graduates shouldn't care what language they've been taught in
And there's the problem. There aren't that many good graduates. Universities league tables have been counting drop-out rates as a bad thing, so there's a lot of pressure on departments to let people graduate, or they drop in the ranking and find it difficult to attract good students. Funding is linked to the number of students and so there's a lot of pressure to take lots of students. Once they're there, the curriculum has to be dumbed down so the drop out rate isn't too high.
I am TheRaven on Soylent News
Posting anon to make it slightly harder to tie this to me right away.
I had a similar experience getting a job myself, took 8 months or so to actually get into the workforce. I had a decent amount of programming experience from various open source projects both started by me and participated on by me, but what most of the employers were looking for was someone who had 1-5 years of experience for entry level positions. I'm assuming this is because they were able to find people with 5 years in the industry who were willing to take anything to make ends meet. I had to chase down why I hadn't gotten a response from about 95% of companies I had applied to. Many of them were, we just didn't get to your resume before we hired someone. What I ended up doing was spinning some other activities into things like "Tech support", "Systems Administration" experience.
That line about what I was doing got me more interviews than any other experience I listed on my resume. Guess what I was doing? I was helping run a minecraft server.
I consider it complete and utter BS but it was true that I was doing those things. I think my point is, something I never got from my school is, take a look at ANYTHING you're doing, even if it's for fun and see if it can be related to work.
Also the minecraft servers are horribly written POSs. Huge memory leaks (gig or two per hour), way too cpu intensive, and buggy.
That, my friend, is the epitome of evil.
Were you thinking of moustache-twirling, cat-petting, eye-twitching, henchmen-executing, muhahaha-sounding villains?
Those were invented to divert your attention off of the real evil.
epitome
Like plumbers, HVAC, and electricians a lot of work is hands on or keeping a in place systems running, and classes loaded with theory do not give the skills needed to do the hands on part of the job now it may help on the high level design of systems but in meany places you are better off working your way up and starting with the skills needed for the hands on part and maybe getting the high level theory later on. Now some theory nice but most colleges classes are to theory loaded for low level jobs and they have way to much math for them as well.
Also what does art history and music filler classes help you to be a better IT guy, plumber or electrician?
Now IT should have a apprenticeships system maybe mixed with a tech school and after you have the base skills and did some real work then you can move to maybe a MBA if you want to be a manager.
Also you can keep the old CS system or parts of it in place for people who want to go just for the higher level stuff but still even then doing a apprenticeships first then going back for the high level skills if you don't want to do the hands on parts is still better then just doing 100% class room.
Yes, I know, my turn to be a pinata for not using the preview button.
Go ahead...
the joke is CS is never up to date cause the guy teaching it has been stuck behind the same unix terminal for the last 30 years and has no effin clue what is out there while dismissing it as "consumer"
CS degrees aren't about teaching people to be proficient in C#, Visual Basic, Python or administrating Microsoft Team Foundation server or Apache Web servers. If that's what you think the purpose of a CS degree is you are barking up the wrong tree. A CS degree is about understanding things like the time and resource complexity of algorithms, different kinds of logic, it's about teaching you to recognize intractable problems or about model checking which can you detect things like deadlocks and race conditions and security critical bugs. Most of this is timeless stuff that doesn't become obsolete so quickly. The theory of computation was laid down by Alan Turing, John von Neumann and others before and during WWII but it is still as relevant as ever in all sorts of applications including mundane stuff like XML parser design. Whether a CS degree is of any use to you depends on what you do for a living. If you are building AJAX systems and basic web services a CS degree will probably help you rather little although you would still probably benefit from a BSc degree in CS. If you want to build software with object detection and face recognition features capable of competing with the best current commercial applications you have two choices. You can either shell out an arm and a leg for a proprietary high level computer vision SDK or start reading CS papers and build your own SDK in which case you might want to think about a higher level CS degree.
In the grand tradition of /. I decided to skip reading both the article and the summary.
Unfortunately, that left some questions unanswered:
1. Do British CS majors do badly in the Jobs Market because they are CS majors or because they are British?
2. What exactly is a "Jobs Market"? Is it a job market for ex Apple CEOs?
My goodness, the human resources sure do get uppity when you remind them they are just an unimportant cog in a machine.
"I use a Mac because I'm just better than you are."
Note there is no mention of types of job. As somebody who grew up and went to university (Computing no less) in England and now lives and works in the US, I've commented to friends and family that people in the UK with a degree will look at certain jobs and consider it below them. On the other hand, I've met plenty of people here in the US who couldn't find the job they wanted when they graduated so they took a job as a waiter or in retail to give them an income while they looked for something they actually wanted to have a career in. The unemployment system in the UK makes people feel like they can turn down less than their perfect job even though they are unemployed.
Incidentally I don't know a single person from my university Computing class of ~120 that isn't employed. I've seen some exams from other top 50 universities and they would lead me to believe that for many universities in the UK, the problem with the computing courses is the content (one paper I saw has an essay question "Why do we need programming languages?"), rather than the social ineptitude of your average computing student getting in the way of job interviews (which was my first thought).
We mainly employ CS grads, and have good rates of pay and even better benefits, but we still struggle to find enough good people. Fortunately, with the Greek and Spanish economies doing down the pan, we're getting a lot of good applications from elsewhere in the EU.
"Doing well" is 3.8% unemployment, and "doing badly" is 5.1% unemployment. That's the difference between taking a month to find a new job every two years and taking five weeks. It might even be a sign of reduced desperation for CS folks. Someone's making a mountain out of a molehill.
Like many of the slashdotters here, employers are beginning to figure out that a college education is more about imparting theories and training students in intellectual thinking. That is not entirely a bad thing, you do need to understand some of these things to acquire the skills you'll need in your future job. The problem however, is that what you can do and what practical skills you possess is more important to an employer than say your grade in that discrete math module or compiler theory module and most fresh graduates have no such skills. Some of them believed that their degree programme taught them all that they need to know to perform real work, the article is essentially about them.
"Life," said Marvin dolefully, "loathe it or ignore it, you can't like it."
University trains scientists; you're looking for engineers.
I don't know where you live, but in Canada universities train Engineers too.
My employer is always having problems finding new staff. We're expanding and its hard to get the right calibre of people to fill those vacancies. The problem is that your regular run of the mill computer science grad doesn't necessarily have the right expertise or knowledge for us. So if you've graduated and can write VB, .NET or create and manipulate databases great. But you've got nothing we need. And that's the thing. Computer Science is such a vast area of knowledge now that a CS degree isn't enough. Every Tom, Dick or Harriet has one in the industry. More importantly so do the far eastern equivalents. You need to differentiate yourself from the crowd and make yourself indispensable.
If your University doesn't require a semester or 3 of internship, what do they expect their students to do after University? Teach?
I've experience working in academia and the private sector... I don't think it's a matter of competition, universities simply aren't pushing students: everything is spoon-fed, there are very few lecturers who would say "go learn about X".
With an academic hat on I can see the advantage of staying with theoretical topics - teach the basis well and it is applicable to any language or environment. But universities are struggling to stay relevant (and afloat in our budget-constrained times). With corporate research outstripping university research because of the decreasing academic appetite for risk, universities need to be moving with the times, not retreating into maximising student throughput and grant money - teaching essential job skills for programming doesn't have to be mutually exclusive with computer science theory.
There's this bizarre focus on single languages - previously Java and now C#... and spending a lot of time teaching them to students. That runs the risk of the student only learning skin-deep how principles are applied in Java or C#. It's not really fair to compare MIT to another random university but watching their Open Courseware videos it's clear how much those students are expected to figure out on their own - all universities should expect that from their students (because if you're not good at programming you shouldn't be in a programming degree and you *definitely* shouldn't be passing it).
Students should be pushed to learn languages on their own, not spending an entire course learning a language - by the time they graduate they'd better be familiar with a load of languages which force them to think differently about their solutions.
My primary concern is that there's very little focus on letting students learn wisdom about refactoring/good design/etc because they never live with their code - they don't have to deal with the crappy code they wrote 6 months ago so they don't learn the benefits of doing it right the first time (or of realising you made a mistake and rewriting and refactoring it).
Global symbol "$deity" requires explicit package name at line 2. - If only $scripture started "use strict;"
That's because n university is not a vocational school. It's purpose is to teach theoretical knowledge, not prepare people for a job. And yes, that means that you shouldn't go to one if your goal is a well-paying job outside academica.
University trains scientists; you're looking for engineers.
That is absolute, complete bullshit. My university (Florida Int. University) provided work-oriented courses at the senior-undergrad and first-year grad levels. The curriculum has changed with the times (not much to my linking nowadays), but in my time, these hands-on courses included web development, systems administration, Unix and Windows (Win32+MFC) programming. The undergrad software engineering course involved heavy use of very specific tools chosen according to the demands of the time (back then it was either PowerBuilder or Visual C++.) A few years ago, the curriculum changed to include courses in Java development using Struts, Spring and Hibernate. Now, it is very focused on .NET (which is big in the area.)
My grad education was even more hands-on and practical than that. I did a lot of theoretical stuff (formal methods using various type of petri nets and computational tree logic comes to mind.) But we also did a lot of work on software engineering courses and case studies paired with local companies (mostly from the health care sector), CORBA, MDA and UML using Rational Rose (also with case studies and joined research with local companies). We learned how to use tools like Perforce and bug trackers. And the CS department had many part-time jobs for students that involved things from Unix and NT systems administration to programming internal apps using Lotus Notes.
Now the practical, hands-ons part of the graduate-level curricula has shifted to enterprise computing and web services, still going strong with MDA and MSDS (this time IIRC with Omondo). Almost every job I've had since I left grad school in 2000 has been thanks to the stuff I did in my senior undergrad year and in my grad studies...
Other, more prestigious universities do even better than that for training people to work (which in the end, it is primarily a function of the student.) Honestly, I cannot think of a university that does not provide material directly applicable to work.
Yes, a university is not a vocational school. But it is a false dichotomy to say that this means they don't provide any practical curriculum that prepares you in one way or another for a job, and that everything is theory.
Anyone who says that is just full of shit, attended a truly shitty university, or simply didn't pay attention to what was available during his scholastic years.
The problem is, at least here in Canada, a 2 year comunity college diploma that probably prepares you better for an actual job writing actual software for actual real world people is looked down upon by most employers. There is a noticable pay difference and the large number of jobs will just shred your resume if it doesn't have a university degree on it.
This is the attitude that needs to change. I think a fairly large chunk of university students would much prefer a "no bullshit" education in the field they hope to make a living in.. but end up going the university route for resume food.
This is true also in the US. I started my software development career just a few months prior to getting an AA degree back in 1995, and indeed community colleges prepared students better then (and now). But I pursued a BS degree while on the job and then went to grad school because, at the time, I saw the writings in the wall.
In my time companies started looking down on AA and AS degrees, and now, that behavior is the de-facto. It is a terrible mistake because, IMO, most development needs out there can be sufficiently met with a good graduate off a AA/AS degree.
Having said that, a 4-year university, or a grad education does also prepare people for work in the real world. Most universities (actually, all universities I know of) provide those learning opportunities. I strongly believe that it is a function of the student as well. University is what we make of it.
In our image-conscious/obsessed US culture, white, shiny, and straight teeth play an important role in "beauty and handsome" in our culture.
I just can't help but wonder if there is a connection.
C/C++ and Java still pretty much rule the roost in terms of jobs, with the MS .Net technologies bringing up the rear. Of these only the MS stuff is within the last decade. Software tech does not move anywhere nearly as fast as a lot of folks like to believe.
The popularity of Java vs .NET varies depending on the region in the world - and within large countries, like US, it also varies from state to state. Some places have vast dominance of one over the other, while others are more balanced.
That said, I'd disagree that only .NET is "within the last decade". C++11 has a lot of nifty stuff in it as well, for example, and yes there are people and team using it in production code today (I'm on one such). On the other hand, just because you do .NET doesn't mean that you're actually using any of the more recent features - in many places, they are specifically prohibited by coding style requirements so as to not make the code too complicated for an average code monkey to understand.
Java is lagging behind in terms of PL design, true.
Depends on the way you want someone to solve a problem. There are at least three ways:
1. Derived from first principles and theory - researching, designing and implementing algorithms from reading research papers, textbooks and course notes. Some employers don't like this because they fear a lawsuit from infringing someone else's patent.
2. Asking publicly for available algorithms and source code snippets - Some companies don't like this because they don't want others to know what they are working on.
3. Asking around internally for what code there is available and using textbooks - The preferred safe solution.
Academics prefer to keep their students in "safe" environments where they don't have to worry about hardware configurations, device drivers and processor quirks.
Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
Drop computer science for Finance! Make complex derivatives! Speculate on commodities! Short sell protective companies into the Stone Age! Do your bit to make the world a more wretched and poorer place for the vast majority of its inhabitants while making yourself pretty darned comfortable!
Hey, one of the brightest electrical engineers I know dropped out of the field to head to where the real money is... Finance!
Don't be a sucker! Help send the world to Hell in a Hand-basket! Start your new career in Finance today!
"MIT betrayed all of its basic principles."
Nothing like finding a bit of code with some seriously bad mojo.
Sounds like something trying to gain access to a server spinlock.
There's actually fitness equipment supplier by the name "Gomango" who sells lifting bars with spin locks...
Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
On an unrelated note, the discussion which you link to in your sig
It's not exactly unrelated, as one of the posts in that discussion points out: "most people wanting a job in the game industry KNOW they're going to have to relocate to some tech centric area, either a large city , or places like Silicon Valley or the Redmond, WA area. Or put it another way, if you want to be a star on Broadway, you're going to have to go to New York City."
is archived, and cannot be posted to.
Where should I host a discussion if I expect it to last more than two weeks?
I learned how NOT to code in 370 assembly having to maintain a program that only used a 1 digit field for the year, so changes had to be made when we moved in to the 80's and 5 years later past the decade halfway point, to this day I remember the branch label "rubybaby" teaching me about professionalism in coding. I that coder is a current /.er, thanx for the education, man.
There is no right to feel safe thru security vaudeville at the expense of everyone's freedom, privacy and tax money.
Not only that, barring some exceptional circumstances, you cannot become an Engineer in Canada without a university degree.
In my experience being in employment is one of the best long term things you can do for yourself. Don't stay in the same job forever but please avoid spells (4 months or more) of unemployment - it makes getting the next job so much harder.
In 10 years time I hope you are able to look back on this as a low rung on a ladder you have climbed much higher on. Good luck!