6 ms·
I've held this basic theory for a while, and it seems to explain a lot of things about the state of software engineering. Most visibly, there's a wild disagree
by Bartweiss 10y ago
I've held this basic theory for a while, and it seems to explain a lot of things about the state of software engineering.
Most visibly, there's a wild disagreement about whether we have too many programmers, or not enough. Big tech companies consistently say that they struggle to find programmers, while contrarians at places like The Atlantic love writing pieces about how we're education way more programmers than we hire each year, and the bubble is going to burst.
The ultra-cynical take is that companies are trying to drive a crash to drop salaries. It fits with the wage-fixing collusion, but doesn't really explain things like paying massive referral bonuses for new hires.
The more interesting take is that it's about this bimodal distribution. "A degree in computer science" is a pretty amorphous thing, and thinkpiece writers who assume that every CS program produces employable CS-job-seekers aren't going to get decent data.
So I think the explanation might be that CS isn't harder than EE or chemical engineering, but rather less prescriptive. There's a huge range of programs producing "CS degrees", and jobs titled "software engineering", and they're not really describing the same things.
- gautamdivgi 10y agoThen the point remains. Why are people who can't code getting the CS or EE degrees? Generally, the degree is supposed to indicate some sort of sufficiency with development. Probably universities are dumbing down requirements for $$$.
- roel_v 10y agoProgramming is to CS what telescopes are to astronomy.
- sqeaky 10y agoProgramming Telescopes is what CS is to Astronomy.
- goostavos 10y ago>Probably universities are dumbing down requirements for $$$. I 100% believe this is true. When I was in college it was pretty staggering to see my fellow classmates receive passing grades and get shoveled through the programs despite never grasping the basic fundamentals of CS. These were people who, at the end of CS 101, still couldn't tell you the difference between a string and an int, who after CS 202 _still_ couldn't tell you the difference between a string and an int, and so on and so on. Yet happily through the system they continued. I eventually became part of the lowly drop-out club (I found attending college later in life to be a maddening experience of pointless busy work, rather than a challenging mind-expanding one). However, those people who fumbled around randomly swapping out types until things compile are now CS degree holders. It seems true even for the higher tier degrees too. It seems even a masters degree isn't a good indicator. In the past year alone I've watched several guys with masters enter and then promptly leave our startup due to having just absolutely no idea how to write software. :(
- fail2fail2ban 10y agoI'm on the job market (I do a lot of contracting so I'm perpetually so) and I've seen a slow increase in job listings that specify a degree and exclude "or equivalent experience". Decision makers need to double check what their HR people are posting or they may, emphasize may, end up with a degreed (not in Chrome's dictionary), homogeneous group of type swappers. Perhaps ironically, don't academic types feel they are enlightened by their education? So requiring a degree for doing the same job one has done for several decades, an exclusionary act; seems to me to be at odds with their open, enlightened views. I was contacted yesterday by a recruiter for a startup. He said, "you have over two decades of experience doing exactly what we need but our founders are graduates of <fancy place 1> and <fancy place 2> and I think they probably will require someone with a degree.". I thanked him, I couldn't even remember applying there, I guess he just wanted to reach out and let me know how he felt.
- ThrustVectoring 10y agoIt's pretty silly to require a degree. Like, you only get so many job applicants, and you have to filter them down somehow into job offers, and everything that isn't "how good is their code" ends up hurting how good of a programmer you wind up with. Granted, sometimes you want to make the tradeoff - there are some truly toxic people with zero professionalism and beautiful code, after all. It's just obvious to me that I'd rather have better code than someone with a piece of paper from a university.
- chrisdbaldwin 10y agoThe group projects of 6 people with one person at computer while everyone else watches for an few hours, then it's done. Four people doing nothing, one person coding, and one person searching the internet for help. Typically the four doing nothing are having an existential panic attack because they realize how useless they are being, or maybe they don't. Who cares? They're about to get an 'A'.
- wmil 10y agoOne problem seems to be that a lot of schools have a strong emphasis on group work. Usually there's a ton of non dev work to go along with projects - documentation, whatever paperwork the project requires, so someone can make a useful contribution without being able to code. So a weak coder can get through the program as long as he can pass the exams.
- Bartweiss 10y agoAnd this, I think, is why good programs tend to have a known "weed-out" course. If there's at least one course with a focus on independent, code-centered assignments, you can't fake your way through. That forces some students out, and others to shape up and actually put in the effort they might have coasted by without. Programming and hard pseudo-code tasks on exams can play a similar role. Teaching group work for programming is great. Among other things, it gets lots of side benefits like promoting source control practice and distribution of code tasks. There just needs to be something that consists of "sit down alone and code".
- morgante 10y ago> If there's at least one course with a focus on independent, code-centered assignments, you can't fake your way through. Unfortunately this seems to be increasingly foiled by an active market in solutions. I've even seen people hire freelancers online to do their programming assignments for them.
- BatFastard 10y agoMany positions now use behavioral based interviews, and group experience is critical to passing those interviews.
- kafkaesq 10y agoWhy are people who can't code getting the CS or EE degrees? The short answer seems to be: because they're allowed to. The longer answer has to do with the "$$$" part. Fundamentally, universities aren't in the business of educating people; they exist to sell credentials. Which has some thematic overlap with "educating people", but is still a step and a half removed. And with the long-term transmogrification of universities from "institutions" to profit centers, the inevitable rush toward mediocrity (and widening of the gap between perceived value of said credentials, and their actual value) results.
- dragonwriter 10y ago> Why are people who can't code getting the CS or EE degrees? Because neither CS nor, especially, EE are "coding" degrees. Now, if you want to code CS (and for certain domains, EE) can help you become a much better coder, but that's not really the central focus of the degree. So they aren't irrelevant as qualifications for coding work. But neither are they, on their own, qualifications for such work.
- brogrammernot 10y agoI think you hit the nail on the head. There isn't really a need for a lot of companies to hire a CS degree. Wordpress management? You can hire a Jr PHP developer and be fine. They don't teach PHP in school. Need someone to manage your non e-commerce website? Web Developer. Again, not something they seem to teach CS majors but the title could say Web Developer or Front End Engineer When I took a glance at the job market, most jobs didn't really need anyone who studied Boolean algebra, discrete math, how digital and analog interfaces work, big O notation etc etc With the advent of companies like Weebly, Shopify and others you don't need to have an engineer with backend experience(which most CS teach) so you end up hiring a "developer" but the same title exists at Google and they want people who understand computer science. So we're left with this fractured market where it's not clear from job posting to job posting what is actually wanted.
- SixSigma 10y agoWhat I found even worse in the job market is that the job requirements say CS Degree but the job description doesn't match. I've ended up going to University to get a degree because I was being screened out of job applications before my experience counted for anything.
- el_benhameen 10y agoMind if I ask where you went and whether you found it valuable (in terms of both knowledge gained and screens passed)?
- SixSigma 10y agoI'm doing a degree in Supply Chain Management focusing on Computational Logistics. I really didn't want to sit through a CS degree either learning stuff I know already or stuff I know won't be much use in industry. So I chose a tangential discipline and am enjoying it thoroughly, being a bridge between Operations and IT provides real value to an organisation.
- 10y ago
- richmarr 10y ago> .. and they're not really describing the same things I'd apply this to the other end of your argument too. The reason there's wild disagreement, i.e. "too many programmers, or not enough" is that they're talking about very different things. There is no linear scale between "can't code" and "great programmer". Anyone smart enough to be a great programmer should understand very well that no system is that simple; especially one involving people. On the personality side, you have pioneers, early adopters, people who are comfortable being in the wild, out of their depth... and you have town planners, who like to optimise systems they understand already... and in the middle settlers, who are best when taking innovations and promoting them to a wider audience. In a large software organisation you need ALL THREE types, because they all fulfil important functions. There are similar differences in terms of learning style, ambition, network, experience, confidence, bias, and luck. Putting people into buckets like this is ill-advised.