Computer Science Degrees Aren't Returning On Investment For Coders, Research Finds (theregister.co.uk)
According to a new survey, coders with a bachelor's degree in computer science only earn 3,000 British Pounds (BP) more a year than those who don't have one. The survey of 4,700 developers in the UK was conducted by Stack Overflow, a community site frequented by developers for answers to technical questions. The Register reports the findings: This is despite the average degree now costing 9,000 BP a year in tuition fees alone. Average student debt is now more than 50,000 BP, according the Institute of Fiscal Studies. The research found that the median salary of those who did not have higher education was 35,000 BP per year, while those who gained a bachelor's degree earned 38,000 BP and postgraduates took home 42,000 BP. It found that 48 per cent of developers with less than four years of professional experience currently hold a Computer Science-related undergraduate degree, while 49 per cent had completed an online course instead. The research also found that JavaScript developers were most in demand, with almost 27 per cent of jobs advertised on Stack Overflow now requiring this skill, followed by Java (22 per cent), Python (16 per cent), C# (15 per cent) and ReactJS (9 per cent).
Computer Science degrees aren't supposed to lead to jobs as "coders". That's like saying someone with a degree in mechanical engineering aren't getting a good return on their investment in the degree when they get a job doing oil changes.
You can learn coding in a couple of days. Computer science is something different.
who gets paid in pounds lol
Slashdot: providing anti-social weirdos a soapbox, since 1997.
CS degrees in the job market aren't about the pay scale.
They're about getting past the bureaucrats in the HR departments. So they're about being hired at all.
You can make as much (or even more) if you're a substantial programming talent even without a degree. But that does you no good if you have no job and make nothing.
Back in the late '60s (Minsky's "first period") a 4-year CS degree actually HURT employability. The schools were teaching a lot of stuff that wasn't really useful on a job (for instance: How often do YOU write a new compiler for some programming task?), and someone with a degree was viewed as having more to unlearn before he could focus on learning what the employer needed.
About the turn of the millennium it was nearly impossible for someone without a degree, regardless of experience and other credentials, to get a job at a US corporation.
Not sure what the situation is these days. (After a couple years out of work I helped found a startup. B-) )
Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
Why? You listed them in increasing order of incompetence. The only people who write shittier code than EEs are mathematicians.
I have designed and developed software and have had many different titles.
Programmer, engineer, analyst, systems analyst, software engineer, etc ....
And all of them had the exact same duties: take specs, design an algorithm when needed, and implement it in a programming language.
Some companies gave the title 'engineer' because that was how the pay grades worked.
Titles are also used to boost people's egos while the company gets away with paying shit. "It's not in the budget for a cost of living increase, but you've been promoted to systems engineer."
The worst one I've ever seen was someone who was promoted to 'scientist' - with just a BS.
Whatever, my title is software GOD and I have a long white beard, white flowing robes, and rub my feet on the carpet so that I can give little static shocks and call it my 'lightening bolts'.
only earn 3,000 British Pounds (BP) more a year
Can someone convert this to something I understand, like Dogecoins per fortnight?
Corruption is convincing someone that the selfless ideal is the same as their selfish ideal.
I only get tired of explaining to traditionalist relatives who have engineering degrees why I'm called an "engineer" when I don't have an engineering degree. It's brutal. But not as nasty as the look I got from that damn chemist who took umbrage at my explanation of how I was creating biodiesel in my garage. My god, my nerve at being such an impudent auteur as to research the chemistry on the web and try it at home. The death state I got when I explained that any way to get energy into the reaction - heat, ultrasonic, microwave, catalytic assistance - made it more efficient... I'll never forget the evil eye cast upon me. I bite my thumb at that dude!
Last time I checked, giving a dumbass the ability to code, simply results in dumbass code :-P
Pretty much. What an employer wants to know is if you are skilled enough for the position. A degree provides assurance of at least a minimum level of skill, but demonstrating the required skill through through experience is just as good (or better, if the candidate is a recent grad. They always need additional training.) That's why most jobs ask for a minimum degree "or equivalent experience".
Generally speaking, if you have serious experience then a degree is of minimal or no value. If you have a medium level of experience, then a degree is helpful but optional (skill-specific certifications can be of more value in this case). If you have little or no experience, then a degree is essential.
Whichever way you go, though, there are no guarantees. There are a million reasons why you might not get the job that are unrelated to your experience or education.
Consider: what's the big O efficiency of a particular algorithm?
When I do interviews, I have a couple of "sanity check" problems that I use to try to weed out the candidates who may be great at crafting code, but not great at designing software. A big-O problem is one of these.
Comparing the salary of a coder with a degree, to the salary of a coder without a degree, is apples to oranges. You want to compare the salary of an unemployed person to a coder without a degree. Most people go to school to learn the skill. A degree is nothing more than one type of proof-of-skill. Not every industry needs proof-of-skill to be hired.
I can't be the only one who is proud of their CS degree. The courses I took challenged me greatly, and often taught me the answers to questions that I didn't even think to ask. Maybe I was lucky, but the professors I had helped me expand my knowledge far quicker than I could have done without them. Their dedication to education showed, and made it far easier to learn the concepts, history, and practical application of software development and computer science in general.
I often hear that "I'd rather have a self-taught English major, because they show dedication and adaptability", and I respect that, but I this attitude also sort of dismisses the fact that CS students can be just as dedicated and adaptable, and also have a large amount of relevant knowledge on the subject. I have worked with people with and without degrees in the relevant field, and those with seem to lean on me far less than those without. Just my personal experience.
I wouldn't say that I'd be lost without my CS degree, but I doubt very much I'd be able to get where I am today as quickly as I did, without it. Plus, I really did love my classes, so even if it isn't a "positive return on investment" (which I still kind of doubt is really the case), I do not at all regret earning the degree.
Please use the £ pound sign, or use the exchange abbreviation GBP.
How are a CS major and understanding big O efficiency related? A smart person will quickly grasp this concept. End of story.
If you NEED a CS major to get such a simple concept, I really don't want you writing code.
- Serenus of Antinouplis
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
Agreed. It is a good sanity check.
^ Person who has never had to maintain software written by a biologist detected.
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
Well CS people write shitty embedded and DSP code and, and EE write shitty all-other code.
Telescope Builders are often only mediocre Astronomers.
Big surprise!
We suffer more in our imagination than in reality. - Seneca
Enjoy dealing with highly coupled unmaintainable spaghetti code.
Sincerely,
CS Major who makes a good living refactoring the garbage put out by self-taught coders.
It probably IS hard to explain to relatives who have engineering degrees why you're called an "engineer" when you're not an engineer.
If you want news from today, you have to come back tomorrow.
^ Person who has never had to maintain software written by a biologist detected.
I've had to maintain code written by physical scientists and I can attest to the fact that they write code using empirical testing and not thinking about what they are doing.
For example, one math guy wrote a bunch of code in Pascal that I had to translate to FORTRAN. After doing that, I noticed that he wasn't initializing any of his arrays, and that starting with all-zero entries resulted in all-zero answers. Well, he said, he didn't initialize them to anything because the random values they started with worked well. Can anyone guess one difference between the Pascal compiler he used and standard FORTRAN?
A highly respected physical scientist (and a bunch of his grad students) wrote a large program in FORTRAN, and when I ran it it crashed horribly while reading the input parameters from a file. It was THEIR EXAMPLE input. It boiled down to a failure to properly deal with a line that had no colon as a label:value separator and returned a -1 index for the "colon", which their version of FORTRAN ignored in a memory copy, but my version of FORTRAN did not. Can you think of what happens when you try to copy memory using a function that accepts unsigned input when you send it a -1 for the starting address?
Computer scientists are not where coders come from. Why would they get ANY extra money over anyone else when it comes to something they didn't really learn to do in college anyway?
First of all being an X major is not the same as completing a degree in X.
Secondly completing a degree in X at some shitty for-profit scam school is not the same as completing a degree in X at a reputable university.
Thirdly, what do you think computer science is? I'll give you a hint, it's not coding for the same reason electrical engineering isn't soldering.
A degree provides an assurance of a *very low* skill level. Some people are very highly skilled at getting degrees they definitely don't deserve.
That said, the degree is not worth very much. Ideally the knowledge gained on the road to getting that degree is very valuable. Many people don't actually retain (or never acquired) this knowledge, and therefore are not getting a good return on investment.
Yes, it is. Most places require a degree and professional certification of some kind before you can call yourself an engineer. North Korea may be an exception.
Just because you are paranoid does not mean that no-one is out to get you.
How are a CS major and understanding big O efficiency related? A smart person will quickly grasp this concept. End of story. If you NEED a CS major to get such a simple concept, I really don't want you writing code.
You might think so, but in my experience this is simply not true. I've met many many many people who write code that purport to understand these topics (who can answer simple interview questions about this as well) but then write code that clearly indicates that they don't. CS majors with experience is the best filter I've found for understanding this topic and even that's a bit weak depending on the school. My hypothesis is that there is a certain number of iterations you need to do before you understand most topics and being self taught somehow doesn't ensure those number of repetitions. I do know however that the most efficient large pieces of code I've ever seen were all written by people with CS degrees and experience.
"Those that start by burning books, will end by burning men."
Computer Science degrees aren't supposed to lead to jobs as "coders".
The thing is, for most people they still do - but what it should help with is getting to some kind of architecture position a bit faster. I don't think most people would want architects that had not done substantial coding though, right? I believe the term we had for that at one place I worked was "Architecture Astronaut" because the were so far out of touch with how real projects worked...
I do wonder if the huge cost of college these days makes it worth getting a CS degree anymore... but there is a pretty high intangible value to a lot of what you get from a CS degree, so I'd say that answer is probably still yes if you are at all interested in theory.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Wrong.
https://www.nspe.org/resources...
Just because you are paranoid does not mean that no-one is out to get you.
who gets paid in pounds lol
More like who only gets paid 5 figures in pounds, euros, or US/OZ/NZ dollars? The results talk about 35k vs 38k when the starting base salary for a new grad in Silicon Valley is at least 6 figures. Apparently location is roughly an order of magnitude more important than this survey's concern about a degree.
so I'm gonna ask: If we know a CS degree is a poor return on investment doesn't that put it in the same boat as a liberal arts degree? e.g. something you do for fun that you probably shouldn't have?
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
That's because they're taught MatLab is the end all of everything you'll ever need. It's the closest thing to programming that they know and MatLab has just enough functionality to hobble along as a general purpose language (it might be turing complete?).
You don't need to become a PE in the US. In fact, it is highly unusual unless you are signing off on certain documents. I took the exam straight out of school, but in my company of hundreds of engineers only one is a PE - and he works for facilities! So I don't have my PE because there is a apprenticeship requirement that I can't meet. (Technically there is a way around that requirement, but it's simply not worth the effort.)
W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
Well, I have a computer science degree, AND a math minor. I detect a math problem here.
Average salary with degree: 38,000
Average salary without degree: 35,000
Difference: 3,000
Cost of a degree (according to the article): 50,000
Divide 50,000 by 3,000, and you get 16.67.
So in 17 years, a degree DOES pay for itself, even if one accepts all the numbers as fact.
just as the ex-CSO of Equifax. She did pretty well for herself until something major blew up on her watch. And I've known lots of PMs making 6 figures with liberal arts degrees. Often being good at talking your way into a job is worth more than being able to do the job.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
Probably because it was some complex mathematics/statistics/image processing algorithm that had to be converted.
Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
The problem is the permissive licenses. I've made that mistake myself in the past.
Now any Free Software I write is released under the Affero license (AGPL). Akaik that license is the most viral and the least prone to capitalist exploitation.
The only people who write shittier code than EEs are mathematicians.
Anecdotally, many years ago, when I was in college, two friends of mine -- an EE major and a Math/CompSci major like me -- convinced me to join them in taking an upper-division, suitable for graduate work EE course titled 'Microprocessors'. It was essentially assembly-language programming at the hardware level -- controlling SIO and PIO chips, for example. At the first exam, half the class couldn't read a microprocessor timing diagram to answer the question 'If an address is put on the address bus for a read, how many clock cycles later does the data become valid?' The three of us got the three highest scores in the class on the exam, with my EE-major friend scoring only 55 on the test. This pattern persisted through the entire semester, with the professor having to give the three of us 'A's, then grade the rest of the class on a curve, so he wouldn't have to flunk half a class of upperclassmen and graduate EE students because of two undergraduate math majors... while the EE department was undergoing reaccreditation. I later found out that the course had been reclassified as an undergraduate-level class.
We can do better than that. Any recent UK graduate who took out the loans for going to Uni will be paying it back directly from their wages. You can use a site like https://listentotaxman.com/uk-... to work out what this means for their income.
If I put in 35k without any student loan it comes out to 27,081.48 per year (2,256.79 pcm), after all deductions. For 38k with the 'Plan 1' (higher %age paid back per month) student loan repayments it comes out to 27,301.23 per year (2,275.10 pcm). Note that the amount taken out in loans doesn't affect how much is paid back per month, that's purely based on how much you earn over certain thresholds. And these loans are forgiven after 30 years if not already paid back. It's more like a tax targeted at those who took the loans in return for the education.
So the 'coder' with the degree and loans to pay back just barely makes more money on that median salary. Mostly my point is that it's not like they're netting less due to loan repayments.
Remove an avenue of fraud/abuse and you might see a bit more value in that direction.
"Forget the engineers." -Carly Fiorina, briber of MIT Technology Review.
PE is a bought title. Your peers and co-workers suffer your input because you're the paid-for scapegoat.
You are being ripped off every second of every day, so that advertisers can help rip you off even more tomorrow.
If a degree provides an assurance of a "very low" skill level then your schools are either not very good or then they're just letting students pass courses they have no right to pass with their knowledge and skill level.
A degree is supposed to guarantee an at least halfway decent skill level and a versatile foundation to build additional skills on. If a degree doesn't do this, then it's clearly not worth even the paper it's printed on.
"Why should I want to make anything up? Life's bad enough as it is without wanting to invent any more of it."
Well that's a bit odd seeing how when I put in my situation, a CS equivalent degree with one year of full time experience post graduation (didn't include the year of full time employment I got before graduating), into the StackOverflow salary calculator released a few days ago the calculator gave me an average salary of 54.000 GBP. Contrast that with the 35.000 GBP salary (which isn't too far off from what I'm actually making here in Finland) being reported here and I get the feeling that either the calculator is badly overestimating salaries or then salaries in the London area are way higher than in the rest of the U.K (which I guess is possible having heard of how expensive it is to live there).
"Why should I want to make anything up? Life's bad enough as it is without wanting to invent any more of it."
A degree guarantees a broad understanding of computing related issues. Of course some people without a degree may have this, but these are a few of the things I have seen:
A business rule that had been modified a number of times by requests from the business; "do X when Y", "do X when Z but not A", "Assume A is false when not Y", and so on for many years. The result was a huge condition with brackets that could not easily be understood. Writing it as a boolean expression and simplifying it revealed that several of the variables in the conditions were not relevant (it did the same thing when they were true or false), much of the complexity was because some test was being applied in multiple conditions and the whole lot simplified down to a short clear expression.
A coder had produced a phenomenal amount of code, counted by lines. In peer review it turned out he didn't understand how to call library classes, and copied the library code into every module which used it
A coder defined a macro defining the boolean "or" "|" as "and"! It turned out that he was totally confused by an expression opening a file as F_READ | F_WRITE, and thought that the compiler writers and everyone else in history had got "or" and "and" the wrong way round.
A definition which was obviously a finite state machine written as spaghetti code, where all that was needed was a table of state, event, action, new-state
This is a legend in our company. An Array copy function defined, despite one being available as
# This function only works on arrays up to size of three elements
A[0] = B[0]
if (B.size > 1)
A[1] = B[1]
if (B.size > 2)
A[2] = B[2]
if (B.size > 3)
A[3] = B[3]
And yes, the language had loops and a built-in array copy function.
In the 1980 America outsourced manufacturing over seas. Now, the H-1B program is the outsourcing of education. The loss of manufacturing jobs has created social unrest, just think what the loss of education will do to developed countries. But not only is it bad for the people, it is bad for the economy. GDP is calculated as C + G + I + (E - M) where M are imports. As we bring is H-1B workers that imports both Labor and Knowledge reducing the GDP. And Solow's growth model is Growth = is a function of both Labor and A(knowledge). Again H-1B program reduces real growth by reducing real labor and knowledge with imported labor and knowledge. Growth is now a function (L -import-L, A - import-A). And most companies want code monkeys, someone that does not have a broad range of computer knowledge but know how to do one thing. With higher education costing so much, the student debt make it hard for native computer majors to compete. Nike in Beaverton Oregon is laying off 800 people, but still hiring H-1B workers.
BP my arse.
"pounds sterling", "GBP" (that's the ISO code) or just plain old "pounds" are all acceptable.
You could use the symbol (the one that looks like a curly L, not the one like a sharp sign), but slashdot would probably convert it to [(*Ä*)] or something.
Chunter chunter comprehensives chunter chunter Wilson.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
They all write horrible code which does its job but become incomprehensible after month (including the author).
No the issue is that they do not know what architecture is and they have limited skills in modularization. Yes EE people are better than natural scientists, but still they did not get the complete set of pattern and processes necessary to be good in that particular department.
No this is not the case. Most people write shitty code, because they are lazy, fall victim to not invented here etc. However, natural scientists are not trained in modularization and abstraction. They usually are taught analysis and less discrete math. In EE things are a little different, but they still have limited knowledge of programming pattern and modularization beyond their duplication of structures.
Once, management finally realizes to that coders without a degree are in most cases actually far more expensive due to lack of skill and limits in what they can do, those without that degree will find themselves unemployed pretty fast and pretty permanently. The funny thing is that the coders without degree do not realize what they miss. Sure, as long as it is simple business logic, almost anybody could do it. But as soon as it gets more complicated, I have yet to find a coder without CS degree that actually gets it and that is really expensive in the long run.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Coders exist on many different levels. Depending on the work, a highly qualified engineer may well be coding his own software.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Or a degree tries to prove an ability to learn complex skills. On the job is when real skills are actually learned and it takes someone who can learn them to do the job.
Of course many companies want to hire people who already have the skills these days, rather than training people up. This despite the fact that few to no colleges can give a student years of experience with ARINC 429, MIL 1553, military GPS or TACAN radios to name a few possible things I've seen companies looking for experience on.
Instead of "very low", perhaps "very broad" is a more appropriate guarantee from a school. Companies on the other hand often want a very specific set of skills for the job they want. Too specific to make sense to teach in a school, without making, say, 1000 students with skills specific to 100 jobs.
Good luck with that if your code needs to be maintained, be secure or needs to have good performance. Sure, a lot of CS grads are not engineers and do not understand engineering. But to find really good coders, they need to be both engineers (which is a state of mind) and CS grads. The non-CS grads stay limited in what they can do. The non-engineer CS grads can do, but the engineering may be really bad.
Hence you need CS grads for anything more advanced, but you need to select pretty carefully which CS grads. Or in other words, the degree is necessary but not sufficient. If you just look for people with that CS degree, you will get a lot of incompetent people. But people without that CS degree are worse, unless you coding tasks are very simple and the main problem is understanding the problem space. In that case, hire people with a degree directly relevant to the problem space. But do not even consider connecting the software they produce to the Internet.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Oh, yes. Mathematicians are the worst. Sure, their code will usually do what it should, but it will be bad in any other respect. Quite often you cannot even read it and forget about trying to modify it. That makes it unusable for anything besides run-once-then-throw-away projects.
There are exceptions though. I personally know one mathematician that can code really well. His problem was that his last employer did not allow him to code (a large insurance), because they made extremely bad experiences with mathematicians coding.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
So fucking true, bank i worked for hired a mathematician to help with creating some complex algorithms, and to be honest, we did need him for that. At first we let him implement them, but after a while we just told him to give us the algorithm and we would do the coding around it. Which worked well for a while, until he decided to go to a year long prayer thing in the US? Never did figure out how someone like that got stuck on religion?
There are three kinds of falsehood: the first is a 'fib,' the second is a downright lie, and the third is statistics.
I don't know there are a lot of assumptions about what is CS degree, its probably different now. Eg: version control software, mobile phones+software development were not in the course.
This was my CS degree in a nutshell from early 2000's. The Software engineers did 80% the same subjects.
There were plenty of electives: eg: i could add subjects for math, ethics, or neural networks, video games, social-science, electrical engineering, operating system design and probably few more.
1st year undergrad:
*Some sort of introduction to SWE: usually java/c++ (or both).
*Some sort of SWE #2 course. (bring in the algorithms, more Object Oriented concepts)
*Discreet maths.
*Ethics course.
*Basic start on Web stack, usually the fundamental ideas of networking + HTML, CSS, Javascript.
*Basic EE logic gates, basic components of computers.
2nd year undergrad:
*Introduction to graphics course, rasterise objects how frame buffers work, bottom up understanding of graphics and some specific low-level graphics programming.
*SWE #3 course: more algorithms, more on how to tackle problems transforming requirements into code.
*Database theory, learn one of the major DB systems out there. SQL.
*Formal modelling of logic for critical areas of the code (where an error could cause physical harm to someone).
*Computer architecture intro: how IO works, how compilers work,assembly language.
*Algorithms course, Big/little Oh, Turing, types of computation, many may algorithms, new and old, fast and slow. Build your own.
*Ties together full web stack for writing deploying web pages. server side/client side, setting up a web server, security, was basically LAMP plus multiple physical computers/load balancing/fail safe.
3rd year:
*SWE #4, The big software project: Working in teams, development paradigms, writing code with other people, documentation at a professional level. (Usually went into another part of the Uni and helped another field eg: write medical software/bioinformatics)
*Comparative languages. A variety of languages eg: scheme/lisp stuff through to perl, python etc.
*Concurrent programming: fine-course grained parallelism, threads, breaking apart problems to make them concurrent, debugging, signals/semaphores, the tradeoffs.
*Compiler design: write a compiler, design a language.
*3d computer graphics course. Basically understanding stuff the the level of quake video game. Build a 3d engine.
*All the security/software vulnerability, history of malware, almost up the the point how to write a virus/virus scanner/. Test code for security issues.
*Machine Intelligence, theory of AI, neural networks, use machine learning to solve a problem + integrate into a SW project.
What is the CS degree like now?
I think the register article is looking at a very narrow requirement which could be satisfied by non-degree but that misses the point.
You could train for job X and just follow the branches off a tree of skills that fit exactly what job X requires. Juxtapose that to CS/Engineering degree and its the whole gaumut/scope of that field. Its the platform on which you stand to THEN specialise to fiat any such job.
The larger issue is as long as there is involuntary employment with the inherent instability of market based solutions you're guaranteed to have a 'working' skills shortage. The graduate is not enough because the company does not want to take a graduate and develop their skill into the specific tools set instead they want a ready made person who by sheer coincidence uses every little tool they currently develop software with.
I guess it's good to know it isn't just us, but it's also sad to know it isn't just us.
Boiler operators are also engineers. Steam engines were used for more than trains.
"So long and thanks for all the fish."
That is remarkably true.
I'm a mathematician, albeit retired. Trust me, you do not want me to program. With a very loose definition, I can program. In fact, I've done a whole lot of programming, all of it horrible.
Eventually, I was able to hire competent programmers, skilled professionals, and those sorry bastards were forced to work on my code base. It was so horrible that they rewrote the entire thing and, quite literally, forbade me from pushing any of my code to production.
Me, the boss and owner, was told I could not push my code into their production version. Their threat was that they'd quit if I continued doing so. Programmers had much more leverage back then. Regardless, I listened to them because that's why I'd hired them. In the future, I'd do a mockup of what I wanted done and they'd implement it for me. It worked out well.
"So long and thanks for all the fish."
A degree provides an assurance of a *very low* skill level. Some people are very highly skilled at getting degrees they definitely don't deserve. That said, the degree is not worth very much.
If two fresh faced rookie developers with next to no experience walk in off the street one with a certificate that he has been made to work like a donkey for four years to acquire a certain basic skill level by a trusted training provider while all the other one has is his ability to radiate confidence and recite the mantra 'I taught myself to code, degrees are useless, trust me I'm an expert'. I know who I'm going to hire.
Ideally the knowledge gained on the road to getting that degree is very valuable.
Well, duh....
It probably IS hard to explain to relatives who have engineering degrees why you're called an "engineer" when you're not an engineer.
Please, this is 2017. If someone chose to identify engineer-sexual, we don't question it.
Unless you actually do your job and check their work before you sign-off.
Engineer is a job. Not an academic title.
Higher education is not a job training institution so for most professions you job title isn’t tied to your degree.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
My company has many openings, but we want certifications of practical work, not computer science degrees. Computer Science degrees are for research institutions, that also expect you have degrees in mathematics and the sciences, possibly an engineering degree too.
I never fell into this trap because when I finished high-school, I called up various company recruiters for jobs I wanted in the future and told them that I don't have any qualifications or such right now, just finished school, but I will go do the courses/training they're looking for. I got told to do CCNA, MCSE etc. No university work. I did about 2-3 months of studying various certifications, it took about another month for my certifications proper to come in and I got into the industry instantly after that, no problem.
No it isn't. you just didn't go to the institutions that want it, nor did you get all the per-requsits necessary for it that I noted above.
Change is certain; progress is not obligatory.
The vast majority of the time, you don't need a CS degree to write a business application. These days it's mostly CRUD operations using some web stack and database, governed by some business logic. You don't need a CS degree to effectively do that.
We need to take a lesson from the material world. We have materials scientists who invent new materials and do some engineering when an extremely deep understanding of the underlying physics and chemistry is needed. But 99% of the time, a structural engineer is the one who designs how to build a building/bridge/whatever. And typically that structural engineer has a much better understanding of how to put the pieces together in a far more practical way.
We should be aiming for a similar split in computers. We need computer scientists who advance what computers can do and deal with very hard problems. But the vast majority of the time we need a software engineer to assemble what the computer scientists invent into a business application that is secure and just keeps working even when the shit hits the fan.
For example, a computer scientist would generally not need to worry that much about things like failover and automatic recovery since they're primarily building prototypes and testbeds. Just like a materials scientist doesn't spend much time considering "what if a hurricane struck my lab during this test?".
But a software engineering degree could focus a great deal on writing software the just keeps working in very adverse conditions just like a structural engineer has to consider a natural disaster striking the building.
Over my 20 years doing this, I've come across a lot of very elegant systems that are wonderful computer science....and they instantly exploded as soon as they had to deal with something slightly outside what the developer considered.
I don't have a degree and get paid a lot more.
Change is certain; progress is not obligatory.
I wonder how well the degreed developers do vs. the non-degreed ones, when it comes to career longevity, opportunities for advancement to lead or management positions, more deeply technical positions involving system architecture, etc. Computer science isn't all about coding JavaScript.
Downmodding is the refuge of the weak. Don't downmod, make a better argument!
How are a CS major and understanding big O efficiency related? A smart person will quickly grasp this concept. End of story.
If you NEED a CS major to get such a simple concept, I really don't want you writing code.
You might think so, but in my experience this is simply not true. I've met many many many people who write code that purport to understand these topics (who can answer simple interview questions about this as well) but then write code that clearly indicates that they don't. CS majors with experience is the best filter I've found for understanding this topic and even that's a bit weak depending on the school. My hypothesis is that there is a certain number of iterations you need to do before you understand most topics and being self taught somehow doesn't ensure those number of repetitions. I do know however that the most efficient large pieces of code I've ever seen were all written by people with CS degrees and experience.
My bent $0.02, having a CS degree is a better indicator of understanding these complex topics and not having it is a poor indicator as such. I think most (not all) people who understand complex topics, like big O, could be either CS graduates or non graduates. But the CS degree helps to indicate a person who can learn this. However there are people who don't understand it and skirt through graduation, just like there are people who never took a formal course but have the ability to learn these topics.
...and this is the case with most professions, degrees open doors, doesn't mean you're going to be good at the job.
- Dan
The point isn't to find people who are really into big-O. The point is to find people who are knowledgeable about computer engineering. I don't expect a brilliant answer, I expect an answer that demonstrates knowledge of the subject.
The sanity checks are usually in the form of giving a problem to be solved, not so much asking questions.
How are a CS major and understanding big O efficiency related?
They aren't. I'm not looking for degrees, I'm looking for expertise needed for the position being filled.
Those 'real' engineers usually had pretty cool boots. (Hot cinders required some major league protection.)
The article refers to England specifically - for some reason, developers aren't paid much in general throughout Europe. I don't know why.
Proud neuron in the Slashdot hivemind since 2002.
Unless you're planning on becoming an academic, degrees do not prepare you for work.
Yeah, that's not true.
What's true is that a degree doesn't fully prepare you, but it does get you most of the way there. What's also true is that a degree isn't the only way to get prepared.
Yeah, I'm in manufacturing (currently the R&D side, but involved a little more with production in the past when we still made things in the US). Not a PE in the whole building. My dad does civil stuff - they all have PEs. Building guys (structural, mechanical systems, electrical, etc) all have PEs.
Anyway, the point remains - a PE is above and beyond an engineer in the US. You are still an engineer without a PE, just not a "Professional Engineer".
W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
Thank goodness, although I still write software all day, my title is now "Director" rather than "Engineer
Titles are a dime a dozen. I've been in management for fifteen years, but I'm still a software engineer, and so are you, even if you're not in that role anymore. It's a shame you "find it belittling", but that's on you.
Just another day in Paradise
why do a computer science degree if all you want to be is a coder?
"All"? Code is all there is.
Proud neuron in the Slashdot hivemind since 2002.
If two fresh faced rookie developers with next to no experience walk in off the street one with a certificate that he has been made to work like a donkey for four years to acquire a certain basic skill level by a trusted training provider while all the other one has is his ability to radiate confidence and recite the mantra 'I taught myself to code, degrees are useless, trust me I'm an expert'. I know who I'm going to hire.
That is all well and good, but what does your comparison between the handful of people who have gotten trained to program at a technical school with the many more numerous self-trained programmers have to do with a discussion comparing the many people with University degrees in Computer Science to the numerous self-trained programmers.
There are few technical schools which work students like a donkey, but there are no universities which do.
The truth is that all men having power ought to be mistrusted. James Madison
It probably IS hard to explain to relatives who have engineering degrees why you're called an "engineer" when you're not an engineer.
Those new-fangled train drivers who call themselves engineers - you're not a real engineer unless you roll your petard up to the castle gate!
A friend of mine with a PhD complains that medical doctors "aren't real doctors". OK, sure, but they make a lot more. I may not be a "real engineer" , OK, but I make a lot more.
Socialism: a lie told by totalitarians and believed by fools.
Any real world physical impact requires a PE involved. Fire alarms are just big computers and require a PE sign off in the process of design (usually at the initial layout design and sometimes at the shop drawing stage. A PE is a commitment and brings you into a different tier of engineering and professionalism. It is not easy to take or bought, being heavily supervised by other PEs and having the FE and PE exams having pass rates expecting people to fail. Getting the four years of experience in most states is difficult, as is getting character witnesses who are PEâ(TM)s to sign off on you to their possible detriment.
I had a guy call himself an engineer in his email signature without an ABET degree or PE license in my office with three PEâ(TM)s in management. It was: Not. A. Smart. Idea. Write ups and a serious dress down.
You get incompetents in any population. And talents. Not everyone needs a CS degree to be a decent developer. If you'd rather have a fresh CS grad over a non-degree-holding architect/developer with 10 years experience, feel free - we'll hire the experienced guy.
But the point remains - you don't need to be a "Professional Engineer" in the US to be an engineer. They even make the distinction on their own website:
In the US, only about 20% of engineers have some kind of a professional license (including a PE).
W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
"You don't need to become a PE in the US. In fact, it is highly unusual unless you are signing off on certain documents."
Maybe for computer related work, however, in many traditional engineering professions, a PE is expected, if not required. The difference is often related to work that affects the public.
As for NSPE, they wanted more members and saw an opportunity with computers, through hardware design, to capture a new field, as did engineering schools.
I can attest that a PE is not required unless you're signing documents certifying them and the work they represent for certain entities. Construction and related industries are really the primary driver for PEs, and the majority of engineers working in those industries are not PEs. You only need 1 PE within a company, as long as they have the ability to review and approve the designs, etc. I don't recall running into many PEs in automotive or aerospace related industries, although I am sure there were a few, just given the era that occurred in.
Most coders are not engineers, whatever their title may say. Most software architects aren't engineers either. And no, having a CS degree definitely doesn't make you an engineer.
The cesspool just got a check and balance.
What's true is that a degree doesn't fully prepare you, but it does get you most of the way there. What's also true is that a degree isn't the only way to get prepared.
I'd argue that for many degree based careers, a degree opens the door more easily and certainly smooths your path after getting in the door, provided you develop all the skills you need to learn post degree. This is true across quite a few technically based career paths, and is why a PE requires (or rather strongly promotes) an apprenticeship.
The cesspool just got a check and balance.
I honestly can't tell if this thread is satire.
I am TheRaven on Soylent News
No, it's just a policy to look for people with practical skills. If you're coming with zero experience and just a Computer Science Degree, you'll still go through the practcal interview process, but likely to fail because you have no knowledge of MCSE, CCNP practical knowledge, even though is is an 'openbook' practical, meaning you're free to Google and use any common operating system (in the clould) and tools accessible to you (hint: most people who just a CS degree fail).
I trivially found the requirements for the industry I want to be in and got into it, didn't waste eight years studying. Cry some more.
Change is certain; progress is not obligatory.
I disagree with some of the OP's points, but I don't think it was satire; nor was my reply.
Unless you are getting paid...then you are a professional.
I object to power without constructive purpose. --Spock
And you know this about the HGP how, exactly?
Examine even your most deeply held beliefs. Nobody is always right.
In a Hobbesian state of nature, developers earn more than the general population.
This is viewed as tyranny over in the EU.
Developers of the world unite! You have nothing to lose but your comparatively higher salaries !!
Every country/city has a pecking order of who earns the most doctors/consultants, lawyers, estate agents, directors, managers, hardware/software engineers, architects. Then this is shaped according to the availability of different categories of housing. In an area where there is a housing shortage like university cities, the dual career-path option between management and technical gets eliminated, so the promotion path is purely into management, leading to tech flight into the rural areas.
Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
If a degree provides an assurance of a "very low" skill level then your schools are either not very good or then they're just letting students pass courses they have no right to pass with their knowledge and skill level.
I wouldn't say a school is necessarily "not very good" if it passes incompetent people. They could do a very good job of teaching, but a very poor job of things like testing, and detecting cheating. I guess it depends on what you thing the primary job of a school is. Some might want a school's primary job to be effectively teaching people who are willing and able to learn. Some (i.e. employers) might want a school's primary job to be weeding out cheaters and incompetent people with better testing, even if it comes at the expense of lower quality of education.
A degree is supposed to guarantee an at least halfway decent skill level and a versatile foundation to build additional skills on. If a degree doesn't do this, then it's clearly not worth even the paper it's printed on.
Indeed that is what it is supposed to do. But schools are for more than just handing out degrees. I went to a school where you could get a great education if you wanted one, or you could still get a degree without getting a great education, if you were willing to put your effort into getting a degree without knowing anything (e.g. cheating). I don't know how good my university is at mitigating cheating compared with other schools, but I know they were not perfect, and some incompetent people made it through.
A degree is worth more than the paper it's printed on. It may or may not be worth the cost of tuition. It gets you a lot more interviews than you would get otherwise. That's not nothing, but it's also not everything.
I'm counting "ability to learn complex skills" as a skill.
Well, you'd be a professional engineer and not a "Professional Engineer", TM, all rights reserved.
W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
The people that "work like a donkey" (not exactly sure what you meant by this, but I'll just assume it means working hard, correct me if I'm wrong) are basically people who are attaining much more than the minimum skill level guaranteed by a degree. At least this is the case if the certificate is from a reputable learning institution. What I am saying is that some people manage to get degrees without putting in the effort into learning the skills the degree tries to guarantee. This can happen for a variety of reasons (e.g. cheating). Even cheaters need to have a minimum level of proficiency to be effective cheaters, and this is the "very low skill level" I was referring to that a degree actually guarantees.
I taught myself to code too. I also went to school and earned a computer science degree. Those are not the same thing. Just like earning an electrical engineering degree is not the same as teaching yourself to solder. I think I spent a few days total in university learning the basics of 2 or 3 languages, but for the message was basically "You can learn to code on your own time. Languages die, ideas are forever." We spent most of our time drawing boxes and arrows on paper and chalk boards and writing pseudocode and math equations.
Knowing how to design software and knowing how to code are both important skills. You can teach yourself both, but one you can teach yourself in a few hours, days, weeks, and they other I think spending tens of thousands of dollars to having knowledgeable people explain it to you over the course of many years, is totally worth it.
Memorized? Nope, I could just do the job with the practical work right there and then, including things that I didn't have training for because I understood the software well or intuitively apply what I learned from one peice of software to another.
I'll give you an example of a practical I give to someone who is applying for a job that deals with webservices and SSL management:
You will find most certifications actually don't cover this, nor do CS courses usually. However certifications for adminstration familarize you with operating systems and tools sufficiently that you can actually figure out more or less what you need to do, to get the job done and understand how to use Google to figure out what you need. So, memorisation isn't really a thing here either.
This is what the practical it self tests, whether you're able to actually get the job done, because with an ever changing IT landscape, being able to do the work in an environment that is changing due to disruptions constantly in the industry.
It is relevant, that's why they don't get the job most of the time. The vast majority I interact with can't even grasp what 'strace' is or how to debug a userland application with it.
Let's meet and talk first. Front entrance, Belfast City Hall, Belfast, Northern Ireland. 12:00, October 5th.
The only reason why I get paid well is because there are so few people in the industry that can actually do the work I do (I'm a heavy generalist - I can do development in x86 asm, m68k asm, c, c++, c#, java, python, perl, rust, go to a very senior level. I can do system administration/devops to very senior level. I do reverse engineering work on protocols, software and hardware. I can build custom embedded platforms from scratch. I can do project management, bid work and architect work. I can do datacenter work, including architecting etc - I didn't learn any of this from certifications) do it well, do it quickly and relatively future proof it.
Change is certain; progress is not obligatory.
It's great when you can put people into boxes and then apply all your prejudices. What did you study, so I can file you into the proper box as well?
Of course, the above is specifically for your average day-to-day code in which performance and memory requirements are relatively loose. Regarding the ones in which I have trained, only half had even heard of Big O, and maybe two actually had a real understanding. That said, someone who does have the concepts at least internalized will overall produce more efficient code. Note that I did not say better in this case since efficient code is not necessarily maintainable code.
I have found in a number of cases (training the incoming juniors; anecdotal) that many do not care about the "superfluous details" of what goes on "behind the scenes of algorithms" since there is the impression that the libraries are supposed to do the heavy lifting. In this case, I think there is a case of maturity; however, I found that plenty of repetition and reviews (not lectures, in spite of my verbose nature making me prone to giving them) will solidify (indoctrinate?) the concepts to the point they are accepted and appreciated.
My hypothesis is that there is a certain number of iterations you need to do before you understand most topics and being self taught somehow doesn't ensure those number of repetitions.
It may be to note, I was self-taught and understood those concepts prior to getting my original AS in computer science (which I got and later extended to a BS for career reasons). While I do not think this is untrue, I do not think it is always the case. My personal nature makes me a bit of a self-study and experimenter. The couple of trainees that I met that did already understand the concepts were pretty much the same.
How are a CS major and understanding big O efficiency related? A smart person will quickly grasp this concept. End of story. If you NEED a CS major to get such a simple concept, I really don't want you writing code.
I think this is a short-sighted point of view. Some people do need a bit of a shove to understand some concepts. Big O came naturally to me, but formal writing, the kind a project manager uses to communicate with the non-techies did not. I benefited greatly from being coached from my writing teachers in high school and college. In that area, I needed the extra push; some people are the other way around. In all honesty, I rather than writing efficient code, I rather have someone write maintainable code, i.e., code that is mostly easy to read, do not (excessively) rely on "tricks," and where "tricks" should be used, to have it well documented. I would also rather have someone that can work with the team. This does not, however, mean docile. One of my best subordinates challenged my instructions and design decisions daily, but he worked well with the team and his doing so helped to isolate edge cases which were otherwise invisible.
Is there no demand for computer scientists in the UK? That 35000 GBP is only $47377 USD. I wouldn't intern for that salary! Someone was saying that can't find a job but I can't even look at my LinkedIn without stirring the dust for recruiters. I'd think this is the same for any other US software engineer. Is there really not tech demand over there? I worry for my brother-in-law finishing up school! He might have to come over here.
However, natural scientists are not trained in modularization and abstraction.
Depends on the science.
For example, biology is modularization (these processes run in this organ), and the large gaps in what we know means you have to use abstraction (something triggers this process as needed, we aren't studying that so we'll just pretend there's some sort of regulator).
This a different kind of structure. I have analyzed tonnes of biological chemical models, grid based ocean models, and other software written by scientists. They are very good in handling complex structures in their head, but are unable to modularize, as this is done in normal software development.
What about the cost of scrappy hacked up software? I find computer science degrees valuable because practioners understand algorithms, good construction practices, and general computing terms better than other generic IT workers. Especially true in embedded software design. The cost to maintain code written by hacks, and potential bugs might not be considered at this point. Pay will eventually work out over time, and, I think CS degree holders might find work easier when economy slows.
That's because they're still being biologists.
But if they wanted to actually become software developers, the modularization and abstraction they learned in biology can help in the transition.
In theory yes, but I have not seen one in industry nor academia who actually made the extra effort to learn some basic software engineering concepts. Although I did not encounter biologists in industry programming jobs only physicists , chemists and geologists oh and mathematicians, they ate the least trainable, as CS is just applied math ;-)
My father was a very good electrical engineer who was never certified. Usually, the companies he worked for would have one or two PEs (usually the owners) that would simply sign off on everyone else's work. It just wasn't worth the cost for all of them to get individually certified.
Engineers drive trains. If you don't drive a train, you're not an engineer.
And I haven't seen any software developers make the extra effort to learn the real science behind what the academics are doing.
Again, the key difference is the transition to the new field, not staying in your old field and bleeding a bit into another.
Here we go again. Not all the world is your lunatic part of the world that hijacks ancient common words to turn them into trademarks and protected designations and whatever.
Ezekiel 23:20
A straw man. We were talking about the word "engineer" and now you come up with something called "Professional Engineer" that is obviously applicable to a limited number of domains and places (apparently it's about US electricians and such).
Ezekiel 23:20
Well, they're physicians. Many languages apparently have a distinct word for healers, with "doctor" being more of a colloquialism.
Ezekiel 23:20
Translated to common speech: gatekeeping and pretentiousness are alive and well!
Ezekiel 23:20
I do a lot of work with 3rd-parties and SSL. One of the issues that happens time and again is when I ask for the public key to install, they send me the private+public pair unencrypted via email and now I have their wild-star EV private cert that expires in 2 years. Just because someone can do the job doesn't mean they're competent.
He may have worked in a position that called for an electrical engineer - but without a degree, he wasn't. There's a distinction between being in an engineering position and being an engineer. And people who have called themselves engineer but aren't have lost in court over that fact. But hey - in a pinch I know emergency first aid. Guess I'm a doctor.
I can imagine. I've worked with a few companies that specialize in security and had my fair share of ridiculous experiences.
I would argue if they aren't competent, they can't do the job.
Change is certain; progress is not obligatory.
I would argue if they aren't competent, they can't do the job.
Ideally, yes. The problem is they seemingly can do their job. Most people's competence are gauged by how quickly they can make a symptom go away, not how correctly they fix the root problem. Like a hospital that ranks doctors by how quickly they get through patients, and a doctor just hands out pain killers like candy. All they did is externalize the cost.
In the life-safety industry, yes! Unless the fireproofing on your building and alarm systems arenâ(TM)t that important in a regional hospital. Read up on Engineering disasters and how they happened. A good majority in construction are some salesman or designer overriding their specs to do what they âoeknowâ is right while shaking their heads at the no-nothing PE they were required to ask For permission to go off spec. Representing yourself as one and making those decisions letting people think you are acting professionally is disgusting.
English did as well - the majority of those who treated the wounded were just people who knew how to keep a blade sharp or saw through a bone very quickly. "Doctor" was reserved, appropriately, for learned scholars who were actually trying to advance the art.
Socialism: a lie told by totalitarians and believed by fools.