Do Developers Need College Degrees? - <AUTHOR> http://www.stackoverflow.blog/code-for-a-living/do-developers-need-college-degrees <comment><USER3> Succeed personally: no. Some dev jobs obviously require a lot of foundational knowledge. I wouldn't want to have a colleague who didn't know linear algebra, simply because that's important in my field. That's not important for making Wordpress sites.

I think there are things "every good developer should know" such as knowledge about how cpus work, how OS'es work, how some important algorithms work, some basic set theory and complexity etc. All of this is doable without a degree, but I'd probably be more willing to bet that someone with a degree knows it, than someone without. Also of course - there are jobs that are doable without knowing foundations, but I'd call those "code monkey jobs" and whether such a job constitutes success I guess depends on who you ask. And what it pays.

Most importantly, when I recruit I don't see the diploma as evidence of what they _know_ but as evidence that they could _learn_ , _quickly_. If the diploma is from a prestigeous school but says they failed math 101 four times over that would make me doubt their capacity. Being able to pick something up is the capability I'm looking for. A curious mind, with a taste for the abstract. A diploma is just one clue.

<comment><USER4> One of the much-downplayed things that degrees are more likely to indicate than personal projects is foundational knowledge. When you work exclusively on Wordpress sites, this is irrelevant. When you work on distributed systems or cryptography, then foundational knowledge gets pretty important.

It is completely possible for any person to learn foundational knowledge outside of a formal instructional setting. I personally know excellent developers who have done so. It's unquestionably possible. I firmly believe that given sufficient time and determination and help, it's possible for any person to learn any subject to any level.

It is, however, possibly true that not all people learn discrete mathematics, relational algebra, and computer architecture in an ideal manner when entirely self-directed. Or perhaps even all developers.

<comment><USER5> You don't know what you don't know.

This is what struck me about my formal education. While I also believe you can learn anything with enough material and dedication on your own, having the structure to ensure that you cover a set of subjects that constitute "foundational knowledge" can be invaluable.

<comment><USER6> What is it about formalized schooling specifically, that you believe makes it uniquely capable in teaching people what they don't know?

When I was 18 I spent dozens of hours pouring through a university course catalogue, looking at the required courses for each degree, the prerequisite trees and the requirements for graduate degrees. It felt like a bird's-eye of the entire fractal structure of human inquiry.

Later, I realized how much sharper the view is to people who do that today. Regardless of whether or not they're a student, they can see the course catalogues online and, in the case of MIT (and many top institutions), even see lectures of those courses recorded in previous years. If you're reading this now and you don't have a very high idea what kinds of knowledge are out there, it's probably your own choice.

<comment><USER7> > What is it about formalized schooling specifically, that you believe makes > it uniquely capable in teaching people what they don't know?

The teacher. Teaching/learning was always about the teacher, who knows what and in what order to teach.

You can have the same effects with the same effort as with formalized schooling if you have a private teacher, but how many self-taught developers had them? And then there's this small thing that in formalized schooling you're taught by several people, each for their own discipline. It's hard to come by a tutor that knows seven different fields and it's hard to come by seven tutors for each of the fields.

<comment><USER8> _> who knows what and in what order to teach._

Plenty of courses have their general outline publicly available. Some colleges even share older lectures [0]. There are more-than-enough resources available for self-directed learning. Have questions? StackOverflow exists.

The #1 criticism against self-directed learning is how self-motivated the autodidact is. _Most_ people suck at staying motivated to teach themselves. If they aren't 100% passionate about learning the subject and can keep their interest going, they will fail.

[0] [https://www.youtube.com/user/MIT/playlists](https://www.youtube.com/user/MIT/playlists)

<comment><USER9> I totally agree with you -- staying motivated, especially if you are learning alone from home, it's incredibly difficult. I have a thesis that I have recently started to validate which is that you can considerably improve motivation in self-directed learning environments by introducing online collaborative learning. I just wrote about it and launched a little course/workshop to test the idea: [https://medium.com/@arielcamus/learn-to- build-a-backend-with...](https://medium.com/@arielcamus/learn-to-build-a- backend-with-node-js-doing-pair-programming-b6d5a241b846#.utueveijh)

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> I'm someone who graduated with a non-cs engineering degree (and worked professionally as an engineer) whose now in a MSCS program after trying my hand in the job market. Not for a lack of trying, but my experiences definitely relate to an uphill struggle just to get even noticed. And before anyone says "you should do x|y|z", I've done my part pretty well. A few decent sized personal projects, constant studying, meetups, networking, github, etc.

I hear a lot of anecdotal evidence (mostly from professional devs who have degrees) that they know a friend or coworker who doesn't have a degree.

The truth is that the system for recruiting and hiring is really based around colleges, students, and degree holders. Starting from the application requirements, you see that most applications require a CS degree (or equivalent). Then the technical interview is aimed at fundamental CS questions, most of which students are accustomed to.

So for someone self taught, face to face interactions are a lot better. But even going to events/meetups, you notice a distinct change in demeanor of the recruiter when you mention you don't have a CS degree. It really is a tiring battle just to prove that you're competent.

Do I believe that you 100% need a degree to get a CS job? Definitely not. But without one, your options are very limited and on top of that you'll need a lot of luck and effort just to get past the first hurdle.

<comment><USER11> IIRC, the article says that a whopping 56% of developers don't have a degree. Given that the majority of developers don't have a degree, I'm not sure I'd agree with saying " without one, your options are very limited". Maybe "somewhat limited"?

My anecdotal evidence, looking at both my own career and a lot of developers I've worked with over the past 17 years, is that having a degree, or not, isn't a big deal.

<comment><USER12> What could be true with the last generation may not necessarily hold true for the next generation.

Many are working towards abstracting schooling out of a being a developer, great.

That also means we're moving towards making being a developer a blue collar job rather than a white collar job. We're also making private businesses now the trainers of labor.

The time to be a dropout rockstar developer was in the 2000s but we're moving towards 2020 now.

The real question is meant for the generation of 13 yo now in the next 5 years. They can study software development on their own but in 10 years time, will they be better spending half of that with expensive college education or nah.

Everyone in this thread are giving out answers based on their own experience surviving the past 20 years as if what happened the last 20 years in the tech industry is where we're at right now or will be going forward the next 20.

I wrote this on hardware and software made by and improved by organizations of highly educated and highly specialized people. It's incredulous to think the future is only going to be built by Lucky Palmers and 16 yo hacker geniuses.

<comment><USER13> > That also means we're moving towards making being a developer a blue collar > job rather than a white collar job.

We're going to make software development into a job involving manual labor?

<comment><USER14> Treadmill desk?

</comment></comment></comment></comment></comment><comment><USER15> We are such a weird profession. What other industry is like "Hey, you can do my job. It's easy, here are lots of extremely detailed courses, documentation and guides on how"

<comment><USER16> The idea of "open source" is also unique, I can't think of any other professions that have something analogous.

<comment><USER17> No, closed source is I think the more unique thing.

I can go to planning offices and see the plans of any building. Almost no-one has "secret painting methods", or "secret plumbing methods".

<comment><USER18> _Almost no-one has "secret painting methods", or "secret plumbing methods"._

For plumbing, building codes dictate the range of solutions that are available for any given problem, and they're not secret (but buying a guide can be expensive.) However, painters, plumbers, and other trades definitely have tips and techniques that they've learned through experience and from mentors, and you won't find much of that being given away freely. You've got to learn it the way they did, through hard work and apprenticeship. And that's ok, because those skills require mastery to use properly, and that's true in software development too.

<comment><USER19> > However, painters, plumbers, and other trades definitely have tips and > techniques that they've learned through experience and from mentors, and you > won't find much of that being given away freely.

Exactly this. My father is a civil engineer who's now in his early 60s, and he recently got to work with colleagues much younger than him.

He told me that said colleagues didn't know some trade-related stuff which hadn't got covered in university courses (like how to reinforce earth ditches when digging in mountainous terrain with probable heavy rains) but which was paramount in keeping the work going (not much that you can do once a ditch collapses because of heavy rain). He told me that in this instance he had instructed his younger colleagues on what was the correct procedure to take, but he also told me that he's got other professional secrets that he's not ready to share just yet.

<comment><USER20> > but he also told me that he's got other professional secrets that he's not > ready to share just yet.

I'm curious enough to ask: why?

<comment><USER19> For job security, I think. We're lucky enough as programmers not to have to worry about that too much, but when you're a civil engineer in a quite poor part of the country and the continent (I'm talking Eastern Europe) you do not have much better other options.

</comment></comment></comment></comment></comment></comment></comment><comment><USER21> No.

Some people are self taught and self motivated, and they are often more capable than someone whose primary exposure to development (or technology beyond consumer use) was through a CS program. That is not to suggest that CS degrees are unnecessary, but once you understand the entirety of someones experience and knowledge you will often find their degree or lack thereof is entirely irrelevant.

Of course there are some employers who won't even acknowledge someones resume exists without a degree, which I have always found silly.

<comment><USER22> >Of course there are some employers who won't even acknowledge someones resume exists without a degree, which I have always found silly.

It really is stupid, I would hire a software engineer who dropped out of high school over a PhD if he's better. Never understood why people care about degrees, the whole point of college is to learn, not get a piece of paper. Only excuse I can think of is that it's a sorting mechanism for lazy businesses to filter applications.

</comment></comment><comment><USER23> Define succeed. Nice job, nice wife, etc... or FU money level of success?

I can only speak from my experience hiring and getting hired but all things being equal that piece of paper will likely get you hired over the other applicant(s). For inexperienced folks it also makes getting those critical first positions easier, which will allow you to quickly move up, or out, in the field.

I question the validity of their claim that by omitting a degree over 60% of the job postings didn't require a degree of some sort (see my previous point). Hiring staff is a real pain when you're not one of the big boys so casting a wider net is somewhat necessary.

<comment> FLUX-YOU >I can only speak from my experience hiring and getting hired but all things being equal that piece of paper will likely get you hired over the other applicant(s).

It may take you 10% more applications to get a single job, but that's not much if you live in an area with a lot of jobs. I have read about struggles from both sides of the fence (degreed/not) to the point where I can't take common advice of degree advantages seriously any more.

We really need to find a way to assess skills and make a great interview process that many companies can adopt, and that will solve the problem because then the CompSci curricula will have to switch over if they want to keep incoming students and graduate hiring rates high. "Who cares about your degree? Take this test to see if you're actually worth employing at a given career level!"

10% better hiring speed just does not seem attractive considering you spend tens of thousands plus the opportunity cost of working somewhere and contributing to your retirement (which for millennials is apparently very far from previous generations). Student debt is only increasing. Number of graduates are only increasing. Degrees make you stand out significantly less- so unless you are able to attend a prestigious school -- and at that point, the decision may not even have to do with the technical rigor involved. The hiring managers are playing the same risk aversion game everyone else is, only they can sometimes afford to be picky or not.

The only time a degree will become super-important is if the middle and low level jobs suddenly start disappearing. I haven't heard any doom and gloom about that, but if it was actually happening, it'd be the biggest sleeping giant of a news story for our industry.

Even then, most of the hiring that gets done will shift to people with experience and/or a degree. It's just that there will be less hiring overall.

Plus, you can always move laterally to another portion that still uses Excel as its backing store and probably automate your job away and do 30 minutes of work per day -- I'm seriously thinking about doing this because it seems easier to reduce the amount you work than to increase your salary for the same 40h/week.

</comment></comment><comment><USER24> I responded to a recent 'Will quitting school hurt my career?' type thread. I banged my head against the wall of youthful perspectives about what experiencing a career will be like across several variations of 'you play the odds and take your lumps when you lose' until I ran out of steam. Later, having thought about it (by writing) I recognized a very distinct benefit that pretty much _only_ a college degree will provide.

It comes up on 'Ask HN' from time to time that a person without a degree is looking for a way around a degree based work visa requirement in order to immigrate for a software job. Now for a lot of developers in the US, this is probably less of a big deal since they don't have to emigrate for a high paying job at sexy company. Probably not as big a deal within the EU either. But there are a lot of other places in the great big world where it can matter and not having a degree does curtail access to jobs that a developer might want and opportunities that a developer might want to pursue for professional or other reasons.

Except in pretty rare circumstances where a person qualifies for a 'snowflake visa', a portfolio does not fill that gap. Likewise graduation from a coding bootcamp probably won't be an alternative visa qualification any time soon.

Despite their drawbacks and for better or worse, credentials provide an objective criteria for decision making and in contexts with legal implications that is very useful -- not just visas but for complying with employment laws and any other CYA context.

</comment><comment><USER25> Rhetorical question: Am I the only one who did get a degree to actually learn stuff?

I was self-taught, had programmed as a job for 4 years but wanted to make a leap in my skills. Dedicating 5 years to just focus on learning stuff, practicing, all in a structured way (courses) was really, in hindsight, pretty amazing in terms of accelerating my learning. I did get an MSc in CS, but the main motivation was to learn stuff, not to get a degree on paper.

Disclaimer: EU-citizen. Studied in Sweden. No tuition fee.

<comment><USER26> I'm in the same boat. My self-taught experience inspired me to pursue a CS degree. The degree did put me in a serendipitous position that led to a number of great industry opportunities but personal growth was my main reason for starting it.

FWIW, I'm studying in Canada and paying my way through school with internships.

</comment></comment><comment><USER27> No, but it helps. Autodidacts are rare (possibly not on this site, but in general), and few people who haven't been to college even know what they don't know. Unfortunately a large proportion of college grads are equally clueless. College is a place where you can get an education, but nobody's going to insist, and neither degree nor GPA is any indication one way or another. What's worse, people who learned next-to-nothing in college don't even know that they don't know anything, and they can interview quite well. As the numerous HN threads about hiring and interviews attest, it's murderously difficult to separate the wheat from the chaff.

</comment><comment><USER28> [College drop-out here]

TLDR: A degree is not completely relevant, but it gives you an edge.

Im my experience, a degree is not necessary, but demonstrating skills is harder than it sounds; a lot of interviewers at non-tech companies are not technical and rely on typical CS material for interviews (algorithms and the like). As a self-thought, I rarely paid attention to this sort of stuff (I started as a web developer) until I had a few interviews. Salary has an impact as well; even though Ive performed better than colleagues, my salary was ALWAYS lower.

<comment> mark-r Your salary is lower because it started lower, and there's an unwritten rule in the industry to never hand out disproportionate raises. I was lucky enough to have a couple of jobs that broke the rule, and as a result I believe my salary is in line with my degreed contemporaries.

The degree gives you an edge in two important ways. First it qualifies you at those places who absolutely demand a degree, whether you believe in their reasoning or not; having a smaller pool of opportunities will always be a handicap. Second, if a hiring decision ever comes down between you and a person with a degree, the degree will become the tie-breaker.

On the flip side, the places that won't consider you without a degree might be the places you wouldn't want to work anyway.

<comment><USER29> That's one more issue with the industry. Everyone says they don't want to train because the devs will just leave, but they refuse to give them the raise to keep them there. If a company won't give a disproportionate raise to a person who deserves it, then some other company will hire that person.

My first gig paid only around 30K/yr, but I became aware that moving jobs was a good way to get a raise. When you already have a job (and genuinely have the ability), it's pretty easy to negotiate aggressively. My next job was 70K and within two years, I was in the top 10% of dev salaries.

If I weren't willing to jump companies, it would have taken years more because (as you point out) companies don't like giving raises.

</comment></comment></comment><comment><USER30> No. I've found the college degree can be important in getting your first job, and its importance decreases over time. When you get to about 10+ years of experience, it has minimal value.

So don't let the lack of degree stop you if you are pushing ahead with making a career of it.

</comment><comment><USER31> Jumped into programming as soon as I could around 13, I'm in my 30s now and have been reading every night since. I'm a self tought system admin/dev ops/code monkey and on the side a security enthusiast. I did a year Of college in late 20s and couldn't stand the pace/starting over.

Lately I've been going through a lot of resumes and interviews. Out of 50 resumes and interviews not one was female so I'll just throw that statistic out there. Most are out of college but are grabbed by government contractor work eventually if they are good and the rest need to be open to learning or think they know everything and get fired a lot. We finally snagged a junior from college we like and training him but you'd be surprised the mistakes he can make or get stuck on but he just wasn't the type to learn on his own outside of his college classes and I think that's the problem.

There's also a lot of big data stuff these college grads aren't getting exposed to and then they some how jump into a job for 3 years working with a database and still don't know after 3 years how to create a index let alone scale something despite having it on their resume.

</comment><comment><USER32> Its been my experience that a non-degree developer can crank out CRUD apps quickly whereas a developer with a CS or engineering degree will struggle with the idea of a CRUD app since its never taught in school from a modern perspective. That being said, the theory learned in school can help a developer see the bigger picture and provide them with tools for creating solid code with few performance issues while those that are self-taught or went through the boot camp will probably have to Youtube and Google their way out of trivial or ambiguous problems, such as null-pointer exceptions and data type mismatches.

</comment><comment><USER33> In the latter part, this post stresses on 'keep learning'. That's the only thing the people who have this doubt in their head need to know.

I have met great developers who never went to college and some developers who can't even ship a small segment of a product with Masters.

</comment><comment><USER34> There are doors that close when you do not have a college degree. That's the plain and simple way of things.

That being said, a diploma from whatever institution with whatever major, honors, or other kind of augmentation is simply a very expensive piece of paper. Getting a good grade in a course, or doing well in a series of courses brings about precious little practical knowledge in and of itself. And that piece of paper says very little about things that matter a good deal - <USER2> character, work ethic, and the ability to work well with others.

Relevant experience trumps everything. Barring that, near experience and a desire to learn come next. I'm big on people having a solid foundation, but my experience tells me that even the best schools turn out people with shaky foundational knowledge. People without degrees suffer the same analysis. Some are good, some are bad.

<comment><USER35> > There are doors that close when you do not have a college degree

The question then is, are those doors worth opening? Most jobs ads I see with "requires degree in CS" are for large boring companies and government agencies.

<comment><USER29> Large, boring company job used to coincide with stability. That seems to be far less true now than 25 years ago. The gig economy of today is far different than what last generation grew up with.

<comment><USER35> I'm at the stage in life where that stability is appealing. But large boring companies are synonymous with awful code bases, decades of accruing technical debt and teams of onshored developers (partly because of requirements like CS degrees). When I'm job hunting a rank "not wanting to shoot myself in the head every day" higher than financial stability.

<comment><USER34> > teams of onshored developers

You prefer working with off-shore developers? That's honestly the first time I've ever heard that.

</comment></comment></comment></comment></comment><comment><USER36> I suppose it also depends on what type of development you want to. A lot of fields won't require it, such as front-end, apps etc.. Other fields, such as AI/ML/advanced graphics etc a lot of the people working there usually has a college degree and more.

</comment><comment><USER37> My degree is as unrelated to maths or sciences or computers as is possible but I've been working remotely for many years as a developer, despite not having looked into it until I was out of college for many years. So college really has nothing to do with it at all, in my experience.

College might get you contacts and job prospects, but I've interacted with a lot of developers who do have college degrees but because their training was relatively recently, they didn't get a lot of important knowledge about things like memory management because a huge number of schools only teach GC languages now, so I still have an edge against those with degrees since I made it a point to learn C++ really really well.

</comment><comment><USER38> > But when it comes to getting a job as a developer, there are simply more > important things than a degree. Who is more hirable: someone with 3 years of > work experience and no degree, or someone with a degree, but with an > internship experience?

Depends on the job and the type of work applicants have done. If I want a senior engineer working on a whole new networking stack at Facebook, I don't expect a fresh graduate will fit the role. There are exceptions, but I bet that number is so small I will neglect it.

If I were to look for a junior-level software engineer, I still expect some projects he/she can proudly show off. It can be a class project, or an internship project. Having an internship in the resume is a major triple +.

Some people have 5-10 years experience but they aren't the great fit perhaps because they don't know the technology we use. I want to find people who can pick up the stack quickly but I prefer to find someone who already have the experience so we can get the most out of the new hire right away.

I only have a few years of piratical experience in the area I focus on, but I am already considered senior. In the end your ability to grow as an individual is very important. Having 20 years under the belt is great advantage, but that doesn't mean a young engineer with 3-5 years experience isn't as strong.

When I consider hiring someone, I look at

* the resume (long resume is a negative, because I really don't care what you did 10 years ago, you can tell me that during the interview, not during the resume screening. Please also have a consistent formatting).

* internship / project

* experience and technology familiar

* ability to interact with me like we are building a tent together

I encourage people to get a college degree. As a student get involved in either a research project, or join / start ACM club, or do anything to help yourself marketable like giving talks or volunteering at tech meetup which will allow you to use your technical skills. College degree is not a necessity, but it does provide an unique experience.

</comment><comment><AUTHOR> I've talked to developers who have said that it can be a strike against you if you have a college degree, because it implies that you wasted time that could have been better spent learning real life coding.

Have you ever seen a situation where having a degree counted against you when applying for a job?

</comment><comment><USER39> No degree here. Left school at 15. Started coding in my 20's. Been at it for 20+ years and loved every minute of it. Currently CTO of a well funded and successful ed-tech company.

</comment><comment><USER40> I'll share my experience here for anyone who's considering the tradeoffs.

It's harder without a degree, especially getting the first job. And your jobs might pay less in the beginning (mine did not, but that might not apply to everyone.) After that it gets easier, but even now in my mid thirties I get turned down because of that - but it doesn't bother me much. There's a lot of developer jobs out there and I still end up getting to pick among several. I was making six figures by my second job, but I have no idea how common that is.

A degree costs a lot of money and 4 years of your time. You should give that a good hard look, because if you're dedicated and you love the work you can progress much faster on your own and it won't cost you anything - in fact you will likely earn a lot of money during that time. If you prefer to veg out after work every day with your choice of drug or tv, forget it. You're going to need all the help you can get, go for the degree. If you're going to put in the time and effort you'll quickly surpass your peers and get the best jobs - with or without degree.

But the biggest thing I did for my career was move to Panama where there's no tax on foreign income. I worked five years in a remote job and paid off my mortgage.

</comment><comment><USER41> Need? no.

Do you need a good working knowledge of what a degree covers? Ideally yes, in practice only parts.

Do people with degrees come out "knowing" what they covered in their degree? often partially, bits are almost completely forgotten as the significance of concepts wasn't really understood till much later.... even if you got A's

But, ideally, if you go in to a degree, highly engage with the content, it gives you a structured approach to many ideas and is a great basis for many kinds of programming applications.

Can you get the same through being self taught? sure. Though I do see that people won't teach themselves things that don't seem relevant, perhaps some of the mathematical foundations, etc. Which they often don't directly need, but it does limit the brains innovations about possible ways to attack various problems (to be fair, this is the stuff some people with degrees tend to forget). Then, of course, some people teach themselves many things, beyond what a degree would give them.

</comment><comment><USER42> Anecdotal, but given my case, a resounding NO.

32 years and counting as a developer, architect, and dev manager. Not one hour of college.

I'm mostly self-taught, but did go to a magnet computer science high school in Milwaukee.

</comment><comment><USER43> "Need" for what?

To get any job? No

To get some specific jobs? Yes

To learn how to program? No

To learn computer science? Technically, no. But may be an easier path for most than self-study.

</comment><comment><USER44> I sometimes find it hard to discuss some subjects with some of my co-workers that don't have some degree directly related to computer science.

For instance, it's very common for electrical engineers to work on software development and they tend to have a good grasp of how things work in the lower level, but when you start moving up in the abstraction ladder, the discussion starts to become harder. Compilers, types, and generally anything that is more related to math or "formalization" is not within their standard knowledge.

It could be argued the same could be said about some with CS degrees as well - category theory, what? - but that usually is a sign of a lacking education. A good electrical engineer does not need to know about context-free grammars, same cannot be said about a good computer scientist.

This is usually a problem when discussing solutions: "How are we going to solve problem X?" tends to be approached by a computer scientist from the POV of algorithms and the concepts involved (for instance, CAP for distributed systems, and how to deal with conflict resolution, etc) and then search for tools that match the criteria. OTOH, most of the time people that don't have the understanding of this area would want to choose a tool that best fits the problem by its description, without thinking about the underlying algorithm and the implications or trade-offs.

I also had some issues when discussing languages and paradigms - it's hard to evaluate the available options when you can't see the concepts and understand what they provide you with. Most engineers don't have the slightest idea of what is logic programming, though it is essential to a good number of fields in science and industry.

Either way, I don't think anyone should be forced to have a degree to be able to work with software, only reservation I have is when people say it doesn't make any difference, as "programming is easy, anyone can do it and understand anything without formal education". Sure, surgery is also easy... the hard part is to keep the patient alive.

<comment><USER45> Can you elaborate (more) what would be required to "fill the gap" to an 80% sufficient extent? Perhaps a list of links / topics / keywords that should be checked out and read about? Perhaps it's possible to get up to speed with ~6 months of self-study...

<comment><USER44> Usually anything that deals with theory of computation, formal languages, formal methods, compilers, graph theory, functional programming, logic programming.

I assume numerical analysis, probability and even assembly are subjects most people from engineering would already have some familiarity with.

More specific subjects include relational algebra (for relational databases) and AI concepts like neural nets.

</comment></comment></comment><comment> rm_-rf_slash If a hiring decision comes down to two equally qualified candidates, and one has a degree, that one gets the job. CYA, plain and simple.

However, if both candidates have several years of relevant experience, it is more of a toss-up.

<comment><USER46> How often it's the case that you have "two equally qualified candidates"?

</comment></comment><comment><USER47> Will you learn more in college than you otherwise would on your own? Probably, especially if you dedicate the same amount of effort in each.

Will having a college degree hurt your chances for getting a job? Not likely.

I'm a developer, and I have a post-grad EE degree in addition to undergrad CS. It's surprising to me how often the EE material and math is useful in my job.

I wouldn't tell anyone to go get a Masters in EE in order to be a good dev, but if you have a realistic option to get a degree without saddling yourself with crippling debt, get the degree.

It's likely to help and unlikely to hurt.

</comment><comment><USER48> I didn't. Although 1) I do have 3-4 semesters worth of college heavily focused on CS. 2) Back when I started, 30years ago. it was much less of a thing (to have CS degree) 3) I've been programming since I can remember. I grew up reading Byte (before it sucked) and Dr. Dobbs, I taught myself C in 6th or 7th grade from my dad's copy of K&R. I've spent inordinate amounts of time, way more than time spent getting a degree(or several), learning, studying and practicing the art of software development.

College degree is the easy way.

</comment><comment><USER49> Degree is a certification, not the knowledge.

For me it is useful to understand how a computer architecture, operating system, complexity theory, discrete math and calculus works. It doesn't give tangible knowledge for the everyday work, but transformed my view so I make different decisions that I would make without these skills.

But there are wast amount of quality materials that are accessible for free on these topics, so no, you don't need college degree (whatever it means; Bachelor?) but you need the skill to be a good software engineer / developer.

</comment><comment><USER50> well, i would say for the average person (and nothing bad about being average), a college degree will make it a lot easier to get a job, and getting a job is a very good start in my opinion ..

even if you define success as being the owner of a business, starting in a job will help you learn a lot about doing business

</comment><comment><USER51> Maybe I'll be down voted for speaking against the grain, but one of the benefits of someone who has the degree is that you know they have some minimal grasp of the basics (yes, there are exceptions) which make adapting to changes in the tech stack or industry practices less painful.

One of the obstacles with he thing hired out of the coding schools is that employers don't know even if you're "current" that you aren'the just equipped for their ephemeral needs.

</comment><comment><USER52> I'm a student at a top 5 CS school. I feel that the majority of the value of my degree does not comes from lecture, homeworks, or exams. I feel the acess to opportunities on campus is where much of the value comes from. We have many bright, talented, and diverse people on this campus. Not only my fellow undergrads, but also the professors, grad students, researchers, employees of companies with a campus presence, etc. There's huge opportunities for collaboration on programming projects, both in class and out of class. There's a great startup culture, with a lot of campus resources. There's a slew of companies that employ students for part-time co-ops on campus. Almost every professor talks about research they would be interested in getting students involved in. We have very active IEEE and ACM student orgs. We put on a great hackathon everywhere. I could go on, but to put it short, you almost have to try to avoid opportunities to not develop yourself as a computer scientist/engineer. If you're teaching yourself, you have to be proactive in working with projects online, motivating yourself to work on personal projects, seeking out opportunities, where as on campus, the opportunities basically come to you.

</comment><comment><USER53> I've seen degrees actually set people up for failure, or not prepare them enough.. My brother went to school for 'interactive design/dev' and 2 years later hasn't found work.. they taught php/javascript -vanilla no frameworks, he learned css/html but no bootstrap. For basic web dev, I think if you're a go-getter and self-taught you're more likely to succeed than a college grad w/ the basic college curriculum.

</comment><comment><USER12> Continuing on to college back in 2000 was a big deal. A college education was the underpinning of the American dream, the promise is that it leads to a stable and steady job, which leads to stable payments of a house mortgage, which leads to a stable marriage, which leads to a family.

Then you die.

The promise was bolstered by the returning GIs of WW2 who took advantage of the GI Bill to go back to school. Every generation there after took to that prototyping.

Earn a degree, get a job, buy a house. Repeat.

But in 1996 a very curious thing happened.

The folks that commercialized the works of academics and scientists started to take off and get attention.

Thereafter the work in the industry started to outpace the output from academia.

You want to build a dot-com business? School wasn't going to teach you that. You have to go learn it yourself. You would be stupid to stay in school.

This held true so much that in the early 2000s, when the risk of NOT having a college degree made dropping out to pursue your tech dreams an actual proposition.

But we're flipped now.

In 2017, schooling has caught up. What's discussed in the latest industry is discussed in the class rooms. And not only caught up but been condensed to mere months. You want to build a website? It makes more sense to go to a technical school or college, participate in the college level entrepreneur safe space, or leverage networking.

You would be stupid to not have a college degree.

But now the high cost of college is more of a privilege than anything else.

Good luck.

</comment><comment><USER54> I've been in the software industry for 20 years. To my knowledge, there has never been a time when there wasn't a significant number of professional programmers without degrees. It's a field that attracts people who love to do it - aka "amateurs". Many people love it enough to delve into CS of their own accord.

I didn't go to college. I've _never_ been asked about my education during any hiring process. I've worked on several phenomenally successful products, and I'm quite sure I've been considered a high performer at every job I've had.

I've worked with a dozen people like this, often at big companies with highly technical developer cultures. I know a few no-college developers whose knowledge of our mutual specialization is so deep that I have a hard time following them.

As long as demand for talented devs is like it has been so far, the industry as a whole can't afford to exclude any.

</comment><comment><USER55> I got into web development about 5 years ago as a self-taught developer with no degree. Since I was laid off at the beginning of 2016, I decided to take the entire year (all of 2016) off work for personal reasons. Now that I have started interviewing again in the last few weeks, I've found my lack of degree to be a serious sticking point for interviewers. I think the industry is being flooded with "bootcamp" grads and other self-taught developers now, and it's becoming much harder to get your foot in the door without a BS.

If you're wondering whether you need a computer science degree to build your own iPhone apps or launch a SAAS, the answer is no. But if you want to work for large corporations or SV startups as a Software Engineer, then it's almost a hard requirement.

</comment><comment><USER56> I would not hire a software developer if he/she does not have a CS degree from an accredited university.

I could care less about what people learn at colleges or how someone without a degree could know more than them. It's not the knowledge that I'm after, it's the person.

Someone with a college degree has shown they can make a long term commitment, take on a large and complicated task and see it through. I know that for at least four years they have been exposed to individuals who are at the top of the industry and have learned about CS with peers who share the same interest and are now their close connections.

Although all of these might be true with an individual without a CS degree but the odds of that is so miniscule that I believe it's not worth taking a chance.

Just my opinion

<comment><USER57> I appreciate your optimism about the value of your average CS degree, though I think it's completely unfounded. There are hundreds of thousands of CS degrees handed out from over a hundred accredited universities every year.

> I know that for at least four years they have been exposed to individuals > who are at the top of the industry

The chances of all of those students being exposed to "individuals who are at the top of the industry" is pretty much nil (I'd even argue that folks who fit that description are not to be found in most, if not all, universities).

> peers who share the same interest and are now their close connections.

Those close connections with their peer groups is going to provide, IMO, pretty much zero value in the short term. That's a recipe for an echo chamber where programming memes are passed around and mistaken for wisdom.

In the long term, as they gain experience and learn about the real world, that's when those peer groups are going to be valuable. But by that point, if you're still looking for that CS degree, you're looking for the least valuable part of their experience.

<comment><USER56> > I appreciate your optimism about the value of your average CS degree,

It's not perfect, but when you're hiring you're taking a chance and have to hedge your odd for success.

> The chances of all of those students being exposed to "individuals who are > at the top of the industry" is pretty much nil

It's higher than someone who is plowing through online courses and YouTube videos.

> Those close connections with their peer groups is going to provide, IMO, > pretty much zero value in the short term.

I would have to disagree with your opinion. Being exposed to other individuals who share the same value and aspiration has plenty of short term and long term values for the student and the individual that hires her.

In short term, when you hire a new grad who is a great fit, odds are his friends from college would also be a great fit.

In long term these individuals and their network "gain experience and learn about the real world" concurrently. So their network expands much faster than someone who is picking up the trade on their own.

</comment></comment></comment><comment><USER58> It's quite ironic, I have a degree in (Theoretical) Physics but it's is waaaay easier to find work on pure programming/Web projects and not something with numbers involved. And the latter is basically what I've been drilled for in my studies.

<comment><USER59> Yes. I also have major in a math-y subject, with extensive minor in CS, but all the jobs seem to be in building shiny webapps with the latest JS framework to sell people stuff or services. Data Science that is much talked about seems to mostly about glorified statistics for advertising. Chances of getting into the R&D department of BigCo's moonshot project (think about self-driving cars or something) are 1-in-million.

As far as I know academia has no pay and no stable career prospects for a student like me because I'm not the top-of-the-top of my class, just slightly above the average, but at least there is a promise of a chance of doing something _interesting_ that might wider humanity's perspectives and maybe even _help_ us. With real technological progress.

<comment><USER58> Exactly... Well at least working there are startups (at least in Berlin) which offers good working conditions, 40h or less and it's even possible to work then apart from the job...

</comment></comment></comment><comment><USER60> There's also a huge difference between "how much does a college degree help an individual programmer" and "how much does a policy of requiring CS degrees improve programmers as a class". I'd argue that there's more of the first than the second - a college degree is a largely a positional good in that having a more impressive educational background gets you hired only as much as other folks have less.

I don't think the program is worth the massive investment getting put into it. There's obviously superior alternative structures - proctored algorithms tests to filter for IQ/ability, which qualifies you for a year-long apprenticeship with a working programmer.

</comment><comment> compiler-guy 'a Boolean search for "degree OR bachelor OR BS OR BA OR B.S. OR B.A." yielded 1,760 matches.'

Thus missing jobs that include "Masters" or "Phd". In certain fields, (such as compilers) jobs that require an advanced degree are quite common.

</comment><comment><USER61> Having a college degree can be a requirement for work visas. I moved to SF from Europe, and this would have been a real problem without a master degree. Not sure about requirements for european visas, but that's probably true too.

</comment><comment><USER62> Instead of going to college, I did an apprenticeship and have now been working for three and a half years in the tech industry.

I have also been doing a college degree part-time online, it will take six years in total, but I am working full time so I don't _need_ it, but just _want_ it to maximise my potential.

I am three years into the degree already, so only have three left. I am 21, and my friends are all still at college, so feel like I already have the upper hand.

Just need to get some good content on my GitHub profile!

</comment><comment><USER63> Succeed is not just getting a job. I have not finished a bachelor. And I had no problem getting in jobs requiring a degree. But the future is unknown. Am I just a good cheap worker? How about career progress? How about when I'm 45 with less energy/interest and stuck in some low uninteresting position? Because although many companies relax on hiring they might not on promotion. I am definitely considering long term finishing my bachelor at least.

</comment><comment><USER64> Probably as people flood into the field my guess is those with formal education will be picked purely because they check somewhat arbitrary boxes.

</comment><comment><USER65> No. Definitively. That's not the same as not needing an education. Some US college is optimal imho. US High school is specifically socialization now (thanks to the teacher's unions). Nowhere was this more evident than in pursuit of a teaching credential where the filters are stark and narrow for a specific mindset allowed to be a teacher.

</comment><comment><USER66> The key here is "developer". A web developer can learn to write code for a pretty website. This only requires very basic knowledge and essentially no math is involved.

In contrast, an engineer or computer scientist capable of working as an applied mathematician definitely requires an advance degree. I laugh when webdevs call themselves engineers.

<comment><USER67> >In contrast, an engineer or computer scientist capable of working as an applied mathematician definitely requires an advance degree. I laugh when webdevs call themselves engineers.

Why would you think this? Do you think everyone who has a degree in CS understands algorithms, compilers, type theory, PL design, or operating systems at a deep level?

Why would it be impossible for a self taught dev to learn these things? I've been in the industry for over twelve years and have found no correlation between degrees and deep understanding of CS concepts. Some with degrees have it, some without... _shrug_

<comment><USER68> It's just simple gatekeeping. People are finally having to admit you can be a developer without a CS degree so they're moving the goalposts.

"Fine, you're a webdev, but you'll never be AN ENGINEER."

</comment></comment></comment><comment><USER69> Maybe. I know excellent (software) developers without formal degrees, and I know many incompetent developers with them.

</comment><comment><USER70> I did it my way, but I wouldn't wish that path on anyone. Stay in school kids!

</comment><comment><USER71> Do health professionals need college degrees?

It depends, as it is not the same to be a first aid officer to a dentist, a physiotherapist or surgeon. In some cases you need a higher degree than in others.

The same with software development, IT, etc.

</comment><comment><USER72> Yes, they do. Having a degree opens more doors, there is no denying that. Degree doesn't offer enough proof of your skill, but this doesn't mean it is pointless.

<comment><USER73> I do not agree. It's nice to have options, but one doesn't not need, and practically speaking cannot take advantage of, infinite options.

If maximizing the number of doors opened were the best choice, then a logical extension to "Do Developers Need College Degrees?" is "Do Developers Need A CS Degree From <'best' CS school(s)>?" Clearly they don't. When we're given infinite time, energy, and other formerly finite resources, I might feel differently.

<comment><USER72> But the truth is a bachelor degree is not a very difficult option, for 40% of US population, it is very PRACTICAL.

Having a degree definitely helps me get a lot more interview opportunities than my friends who come out of a coding bootcamp.

<comment><USER73> If I am hearing you correctly, you are saying that a CS college grad (maybe with STEM grad with programming) is more likely to get the opportunity to interview than someone with only bootcamp coding experience. I agree with that. The former has been coding for at least a few years, and the latter a few months. There's no substitute a the right kind of foundation built from experience.

That being said, when hiring for a junior role, it's hard to spot the "right stuff" on a resume. If you figure out how to spot that, let me know :). Or keep it a secret and sell me that as a service! There's a reason that currently most recruiters can't charge a commission for placing junior candidates. It's hard enough for you to spot the junior dev you want to hire in a sea of applicants you've never spoken to. A recruiter who isn't you will have an even harder time figuring out what you want.

</comment></comment></comment></comment><comment><USER74> for developers, i think in some ways it hurts you if you had college experience. and drop out students are considered accolades in a bizzarre way. sad but true.

</comment><comment><USER75> Elon Musk started a space and a car company. I'd say nah you don't need the degree.

<comment> UK-AL Elon has a degree, and was a PhD candidate.

</comment></comment><comment><USER76> The discussion here shows the three main aspects of this question; as a pre- requiste for getting hire, as a mechanism for learning skills, and as a limit on what I can do.

Is it a pre-requisite? Generally no. But the word 'developer' is very broad. Putting up wordpress sites? Definitely not. Developing real time systems in rockets? Definitely helps. Mostly though there are a lot of developers out there looking for the next big thing and having a degree differentiates you from people without a degree. It says you can take a multi-year project and see it through to the end. Shipping a fairly complex product has the same credentials, there is a lot of scut work you have to do when you ship a product just like there is a lot of crap you have to do to finish a degree, the big signal here is that you can do _all_ the work to get the project done and won't stop when you get push back.

The second aspect is skills learning, here again a shipped project will help you get through a lot of the challenges for that particular project. A CS curriculum puts you through a bunch of material that is known to be fundamental. So people who have shipped a wordpress site or a Heroku project have an understanding a some of the things that have to be done when shipping such a project but no idea about the things that have to be done to build a new interpreter (for example). It is faster to develop expertise on a single topic by shipping product related to that topic, it is faster to develop tools to let you handle a broad range of topics by learning from a curated curriculum that is designed to be as wide as possible.

And then there is the limit question. In my experience people are mostly self limiting, which is to say the tell themselves "I couldn't figure that out, especially not on my own." So a college program typically has some history about how people went from not knowing something to it being part of the curriculum. And if you're lucky that rubs off on you and you develop a sense of how to get from not knowing to knowing. (that is the essence of science, getting to the right answer when there is no textbook to tell you what the right answer is.) As a result I've found people who are curious and stubborn and refuse to believe they can't learn something do well either way, but a college degree can sometimes indicate training in how to figure out the unknown. Whereas people who are self taught at one thing may become stuck when that thing is replaced by a new thing.

I often rail against "milestone" thinking as in once I have this milestone _then_ I can make the next milestone. Especially when it comes to learning. Humans are a bunch of experiences and learning wrapped up in a personality. Their ability to learn new things is unparalleled but only if they have the right tools in the toolbox.

If you work to develop those tools, you will always be able to learn new things and be relevant in a changing world. If you learn only a few things and don't change you will become irrelevant as the world changes. Does anyone 'need' a degree to learn something? no.

</comment><comment><USER77> No.

</comment><comment><USER78> This is not the time to ask that question.

The time to ask that question is when you're 38 years old, married with two kids and the wife home raising the youngest one. Then you're laid off. And it's 2000 or 2001. Or 2008 or 2009.

Companies need people now so it's in their interest to tell you to leave school and work. You're on the hook for your future, not them.

</comment><comment><USER79> Do any engineers need degrees? Does anybody? Before you go too deep down that philosophical rabbit hole just consider one thing.

Is it a job that requires a lot of skill?

Any job I've seen that is highly skilled and not in the "get your hands dirty" kind of way usually has a degree behind it.

I've seen many kind of engineers without a degree. It's not like you couldn't figure it out on your own for any kind of engineering. The two main problems are commiting enough time to learn it on your own and getting a company to take a chance on you.

You can do it without a degree but it will be a lot harder to learn enough and to get your foot in the door. If someone takes a risk on you, you'll probably get paid like crap for a few years too.

Is it worth it to do that or just spend 4 years on a degree? Most of the time the answer is a degree.

Computer science isn't any different from any other branch of engineering even though developers like to think it's so special

<comment><USER29> If you are an engineer, you need to take the PE exam. In most states, you cannot take it without a BS degree. Not really comparable to computer science where such things don't really exist.

</comment></comment><comment><USER80> No.

A person can go from zero knowledge to landing a full-time non-entry software engineering position in 3 months. Many of my friends have done it and I am in the process of doing it right now. I just started learning in December and I am in the final stages of an interview for a Software Engineer job at Big Name Tech Company that I fully expect to receive an offer for.

Coding is the easiest and highest paying profession in the world today. Everyone should do it.

<comment><USER81> Define non-entry software engineering position? I really don't thing _good_ code is easy to produce, so it is not definitely the easiest in my mind. I think there is a distinction to be made between becoming a good software engineer, and get a job as a software engineer. The first option takes more than 3 months.</comment></comment>


Leaked US hospital prep document estimates 96m coronavirus cases, 480k deaths - <AUTHOR> http://www.businessinsider.com/presentation-how-hospitals-are-preparing-for-us-coronavirus-outbreak-2020-3 <comment><USER2> "The American Hospital Association said the webinar reflected the views of the experts who spoke during it, not its own."

This seems like they're trying to distance themselves from the content, which is odd.

The AHA is huge in terms of lobbying (see [https://www.opensecrets.org/orgs/summary.php?id=D000000116](https://www.opensecrets.org/orgs/summary.php?id=D000000116)), which makes me wonder if this deck was meant to stimulate contributions from its members. One way to sort it out would be to learn more about the people in the audience and to find out if the speakers were paid consultants.

<comment><USER3> Not a surprise. Nobody wants to openly contradict the president

<comment><USER2> To be clear: I wasn't making a political point. Just trying to offer an explanation as to why the numbers differ from those that we're getting from other sources. The AHA has a history of making contributions to both parties. If my hunch is correct, they were using this deck as a way of stimulating their members to make financial contributions that would then be used to lobby on behalf of their members' interest. It's an educated guess, not a political stance.

</comment></comment></comment><comment><USER4> These numbers put the expected mortality rate at 5%. However, the WHO estimates it at 3.5%. Either way, it appears to be significantly higher than the flu

<comment><USER5> 480k is 0.5% of 96m, it is ten times less.

</comment></comment><comment><USER6> I can't access this paywalled content. Is this estimate for US only or for the globe?

<comment><AUTHOR> US only</comment></comment>


HTML5 2D gaming performance analysis: Canvas 2D vs. WebGL vs. C++ - <AUTHOR> http://www.scirra.com/blog/58/html5-2d-gaming-performance-analysis

<comment><USER2> I can speak to WebGL as we've actually built some stuff on top of it. Yes performance is good, sometimes. But if your user is on hardware like Intel X3100 graphics cards, then the WebGL context will run in software mode, performance will be dismal, and you as a developer don't have any real checks to see that.

Secondly, hardware support for WebGL is very dismal right now. For example, newly shipping MacBook Air's don't support WebGL.

Third, we found so many inconsistencies across different hardware and different browsers that it made it not worth it to work on a WebGL project for the time being, especially for a small team. We wrote a number of runtime checks, but we still could not account for all the bugs, or find ways around every one of them.

If you're writing a new 2D game in HTML5 from scratch, you'll have a much larger market share by going after a slightly simpler (artistically) game using canvas, rather than trying to go for more horsepower with WebGL. However, WebGL can be useful for porting, if you'd like to see an OpenGL game you've already made come to the browser.

<comment><USER3> _newly shipping MacBook Air's don't support WebGL._

How new? My MBA is only 2 or 3 months old and WebGL runs fine (and fast) under Chrome 17. Indeed, under the test on the parent link, I get about 500 objects on Canvas, 6000+ on WebGL.

<comment><USER2> The latest generation wasn't working in my testing. Hmm, well as of Chrome 15/Firefox 7 they were not supported. Would you try out <http://drawwith.me/demo> and let me know if that works?

<comment><USER4> I have the Nov 2010 MacBook Air, and that demo works fine under both Firefox 7.0.1 and Chrome 15.0.874.121

</comment></comment></comment></comment><comment><USER5> "Finally it's a shame no mobiles support WebGL yet. iOS actually supports WebGL, but they've disabled it! I'm not sure why they've done this, because enabling WebGL is crucial to high performance HTML5 games on mobiles."

The cynic says: App store! App store! Money money money!

<comment><USER6> Could be good reasons. Perhaps Apple's webGL implementation actually could be used for exploits, and until it's secure they won't allow it for general use. Notice the one place Apple does allow WebGL is iAds, which are reviewed & controlled by Apple.

<comment><USER7> This is what i was told by apple engineers when asking straight out.

</comment></comment></comment><comment><USER8> _if the renderer can leave the majority of the frame time free for game logic to run, it's done its job. Consider it this way: Chrome 15 leaves 86% of the frame time free and Classic leaves 97.6% of the frame time free_

Well, if you're going to evaluate it that way then surely you also have to account for the game logic running much slower in JavaScript than in C++.

The bottom line is: If you care about graphics rendering, C++ wins by a large margin. And if you care about game logic, C++ wins by an even bigger margin.

<comment><USER9> A good part of game logic is done in a "scripting" language these days. For example Lua is used in WoW & Starcraft 2 and the newer Civilization games use Python. Generally they do use the core C++ engine to all the math heavy tasks like collision detection.

<comment><USER10> And this obfuscates the point that many web games rely on scripting languages on the server side to handle most tasks. You can't rely on the client to do much game logic without (rightfully) being paranoid about the user themselves interfering with what's in their active memory and that being sent back to your server...

</comment></comment></comment><comment><USER11> As a side note, if GPUs and CPUs are both _that awesome_ these days, why do side-scrollers still not look perfect? I've been playing Braid on OS X and while it's a pretty game, scrolling is just noticeably blurry (and this is on a pimped-out MacBook Pro Core i5, NVIDIA GeForce GT 330M).

I've just always held out hope that once the hardware is fast enough, side- scrollers would look just as crisp scrolling as they do standing still.

<comment><USER12> I'm pretty certain you're describing an effect of the display rather than the GPU.

<comment><USER13> Yep. Ironically, the quality of the Macbook Pro's screen is what's causing the problem. The Pro's IPS screen has much better color reproduction and view angle consistency than the cheaper TN screens you see everywhere. However, a disadvantage of IPS LCDs for games is a relatively slower color switching speed. Hence, the blurriness during motion.

<comment><USER14> MBPs do not have IPS displays, only the larger iMacs. Look at your screen from a downward angle, you'll see it yellowing, look from above and light colors are inverted.

And interestingly, most newer IPS panels have a gray-to-gray time similar to TN, around 4ms (60fps = 16ms/frame). You can't tell anymore if a display is good or not just by it's specs, each one is different.

<comment><USER13> I looked it up and you're right! That's a surprise to me. My buddies' pro has significantly better color viewing angle than my macbook. I assumed it was an s-ips or something similar.

<comment><USER14> Yeah, I also believed they were IPS before buying mine :)

They seem like a slightly better TN, but still far away from IPS quality, specially for photography/video.

</comment></comment></comment></comment></comment></comment><comment><USER15> I wonder whether your huge[1] runtime had any effect on the benchmarks. Wouldn't using pure Javascript have been a better idea?

I also notice your "C++" version used Direct3D. Shouldn't you have used OpenGL with the exact same calls as the JS to get a fair comparison with the WebGL versions?

[1] <http://www.scirra.com/labs/perftest-2d/c2runtime.js>

<comment><AUTHOR> It's a 61kb script minified, and jQuery 1.7 is currently 91kb. Yes jQuery is likely to be cached but IMO it's not huge, one of the game's images could easily be 61kb too. On top of that we've seen some competing tools generating like half a megabyte of JS :P

Edit: also our intent was to compare real game engines, which necessarily add some performance overhead, rather than a thin experiment.

<comment><USER14> I believe he was talking about execution speed (the overhead of the framework), not download size.

</comment></comment></comment><comment><USER16> Hmmm ... the author says that percentage of frame time left for game logic is the important factor, but if raw c++ is around 6 times faster, doesn't that mean you can do 6x more sophisticated game logic in a given amount of free time as well?

That said, the webgl performance in chrome is indeed (relatively) impressive. Am also a macbook air user and have no trouble getting good performance on it.

One point to note is that the webgl engine in chrome runs _all_ graphics in a single process, atleast partly for reasons of security (shader code gets checked by the browser before being set to the gpu, for example). That is sort of like a driver on top of a driver and so there will always be like a 2x performance gap between webgl and c++ i think.

Still ... the future looks bright.

<comment><USER17> For a given number of triangles/quads, you have a certain amount of time left in the frame period for the game logic. Say 5 ms out of a 17 ms frame (@60 FPS). A faster language like C++ is going to take less time for feeding vertex data to the GPU. So instead of taking 12 ms to push the vertices it may take 2 ms, giving you 15 ms for game logic instead of 5, a 3x increase in time.

The game logic will likely be faster by a similar factor, so you could quite possibly get an 18x increase in game logic capacity.

</comment></comment><comment><USER18> It would be interesting to see a NaCl implementation.

</comment><comment><USER19> Why was the development version of Opera used, but not of the other browsers? Both stable and development Opera is shown there, but just stable versions of the other ones.

The development Opera does great, but the development versions of the other browsers are likely also much faster than their stable versions.

<comment><USER20> It's only included in the last chart, with this explanation: "The Opera 12 alpha comes with hardware acceleration but since it's alpha I don't want to include its results yet - sometimes making software more reliable also means making it a little slower, and considering I used the stable branches for all the other browsers I also thought it would be unfair to include Opera 12 alpha (until the end where I throw it in for fun)."

<comment><USER19> Yes, I saw the explanation. But I think it would be more fun to include alpha versions of the other browsers too :)

</comment></comment></comment><comment><USER21> It seems that Canvas 2D isn't accelerated by Firefox 7 on Linux at all. I'm only able to get about 600 objects, versus ~4200 with WebGL. Chrome's Canvas settles at ~4200-4300 on the same system (WebGL does ~6100).

</comment><comment><USER22> Very interesting analysis. Still, when comparing to C++, we have to consider that with a game that actually _does_ something (game logic, interaction etc.) C++ advantage would be much bigger.

<comment><USER23> Actually C++ advantage would be smaller, since the test isn't at all GPU bound. It's basically testing how fast you can copy data through the JS <-> C++ FFI into the GL library.

A test that stayed within JS would optimize better and perform better relative to C++.

</comment></comment><comment><USER24> I have a feeling they'll announce the Chrome port to Android at Google I/O next year (which is also a Chrome event), and it might get WebGL support along with it. I know some people were asking the devs about WebGL on Android at last I/O, so they might've taken that into consideration for the next I/O.

It would be a good time to do it, too, because otherwise Mozilla and Opera will do it anyway next year.

<comment><USER25> Firefox for android already implements webgl. of course, your phone's gpu may not be up to the challenge.

</comment></comment><comment><USER26> It would be interesting to see an svg comparison also. From my experience you can crank out quite alot of scaling images there in newer browsers.

</comment><comment><USER27> How come IE9 2D was faster than Chrome and Firefox?

</comment><comment><USER28> Your benchmark is obviously CPU bound, not GPU bound. That pretty much invalidates this "analysis".

<comment><AUTHOR> I made an effort to specifically highlight that in the conclusion.</comment></comment>


The impossibility of intelligence explosion - <AUTHOR> https://firstname.lastname@example.com/the-impossibility-of-intelligence-explosion-5be4a9eda6ec <comment><USER2> Discussion of the original article on HN: [https://news.ycombinator.com/item?id=15788807](https://news.ycombinator.com/item?id=15788807)

<comment><USER3> We changed the url from [https://mindmatters.today/2018/11/software-pioneer- says-gene...](https://mindmatters.today/2018/11/software-pioneer-says-general- superhuman-artificial-intelligence-is-very-unlikely/), which simply copies excerpts from this.

<comment><AUTHOR> If the original article is a year old, why was this killed as dupe? I've seen old articles reposted on HN before. This repost seemed to be pretty popular.

Also, why is it considered blogspam for having excerpts from an original article? I also see this occur frequently on HN. The article not only has excerpts, but comments on the excerpts and links to related material. This appears useful to an interested reader.

</comment></comment></comment><comment><USER4> Quote: "An overwhelming amount of evidence points to this simple fact: a single human brain, on its own, is not capable of designing a greater intelligence than itself. This is a purely empirical statement: out of billions of human brains that have come and gone, none has done so. Clearly, the intelligence of a single human, over a single lifetime, cannot design intelligence, or else, over billions of trials, it would have already occurred."

What an incredibly inadequate argument. Obviously, none could have done so in the past. Because the required resources simply weren't available. Breakthroughs are being made right here in this era, with Jeff Hawkins' being one of the latest.

This guy reminds me of Richard Smalley, who, against better judgment, attempted to make irrational arguments against molecular nanotechnology, as envisioned by Drexler.

Also, he can't be a software pioneer. He's too damn young.

<comment><USER5> Wow. That argument can be applied to _any_ invention or creation. There are bad arguments and then there are ridiculous ones.

<comment><USER6> Yes. The argument is logically equivalent to "nothing can ever happen for the first time."

</comment></comment></comment><comment><USER7> "When a distinguished but elderly scientist states that something is possible, he is almost certainly right. When he states that something is impossible, he is very probably wrong." ~Arthur C. Clarke

<comment><USER8> Yeah. Here we are in those rare cases when he is right (though not necessarily for the arguments he makes)

<comment><USER9> So what are the right arguments?

<comment><USER8> 1) That the rise of AI has been predicted again as "coming soon" in the 60s and 70s and nothing came out of it once already.

2) That current AI is just very primitive NNs, and all the hoopla is mostly hype (like Big Data, Grid Computing, Biotechnology, Nanotechnology, Virtual Reality, 3D Printing, and several other previous fads served as revolutionary and the cure for everything)

3) That they are several orders of magnitude more primitive than a human brain.

4) That we haven't had Moore-law style increases in CPU power for quite some time.

5) That, never mind AI, we can't even make a good email app...

6) That all kind of peddler make good money by tooting AI (e.g. IBM selling BS tech as "Watson")

<comment><USER10> If you can agree that intelligence is just an information processing challenge instead of a magical god-given treasure, then general AI is inevitable.

Though note that you couldn't come up with an argument against the future of AI development in six points. They were all independently irrelevant, like denying future medical breakthroughs because doctors didn't wash their hands 100 years ago. Your points are all distracted, like suggesting Elon Musk's tweeting habits today doom all future humans from ever reaching Mars.

<comment><USER8> > _If you can agree that intelligence is just an information processing > challenge instead of a magical god-given treasure, then general AI is > inevitable._

As a scientist, I don't believe anything is "inevitable" (that's for religious people to believe).

I can very much imagine scenarios where we're already on the steep end of a technological curve, having exhausted most low hanging fruit, and failing to make many more revolutionary breakthroughs (no matter the timeframe).

> _Though note that you couldn 't come up with an argument against the future > of AI development in six points. They were all independently irrelevant, > like denying future medical breakthroughs because doctors didn't wash their > hands 100 years ago._

I didn't want to make an argument against the possibility or impossibility of AI in abstracto (whether it's physically possible or not. Since our brain does it, it is physically possible. That's boring, again left to religious people to discuss, of which there's no shortage, even among the atheists). I wanted to make one about its _actual_ possibility, given what we know of our technological development, past claims, trends, etc.

</comment></comment></comment></comment></comment></comment><comment><USER11> There is an estimated 100 billion nuerons in the human brain. We know from information theory that DNA is not nearly long enough to describe all of those connections. This means that most of the complexity of the brain is emergent.

I envision bundles of neurons that begin their existence mostly disconnected... These bundles are described somewhere in DNA (but not their ultimate learned configuration) and so is whatever learning algorithm drives this process.

We will have AGI when we understand the underlying learning algorithm our brain uses... Personally, I believe that algorithm involves fantasizing future scenarios and learning from the fantasies.

<comment><USER12> Fantasy is a mental computation as well. Fantasy AI ftw!

</comment></comment><comment><USER13> "Feynman reported 126, James Watson, co-discoverer of DNA, 124 — which is exactly the same range as legions of mediocre scientists."

Can we stop the Feynman had an IQ of 126 narrative? Many people doubt his IQ was in the 120 range. IQ scores, despite what people thing, are not always accurate. Feynman is an example of such a case. Plus, you'd typically report a range on IQ exams. Given a 5+/\- point range that could place him in the 131 category, which still feels too low for someone as brilliant as he was.

>"Feynman received the highest score in the country by a large margin on the notoriously difficult Putnam mathematics competition exam, although he joined the MIT team on short notice and did not prepare for the test." [0]

Someone that does that, most likely does not have a 126 IQ. Given his accomplishments in Physics, it is likely he is more intelligent than any IQ test gave him credit for.

[0] [https://www.psychologytoday.com/us/blog/finding-the-next- ein...](https://www.psychologytoday.com/us/blog/finding-the-next- einstein/201112/polymath-physicist-richard-feynmans-low-iq-and-finding- another)

<comment><USER14> IQ is just a number determined by a test, by definition. I don't think it's possible for a person's IQ number to be independent from the IQ test. Certainly he had more intelligent contributions to physics than expected from 126 IQ.

<comment><USER15> IQ is valuable insofar as it is a proxy for g. I think that your parent poster was suggesting that while IQ is in general correlated with g, there are cases where it is not.

</comment></comment></comment><comment><USER16> And yet general biological intelligence arose from unintelligent forces? Hm, interesting.

I don't know enough about general artificial intelligence, but his claim seems to hinge a lot on what we already know. There are things we may not know yet that will lead to us generating general artificial intelligence. Although I don't think it'd be required, it may turn out that the experience of consciousness isn't something we can mechanically produce but is a property of matter itself. Now, I can't prove that is so but it's a fun little hypothesis I enjoy thinking about. None the less, there's no particular reason to disbelieve why humans couldn't figure out similar knowledge and apply it to creating better artificial intelligence.

Some of his reasoning is just flat out fallacious:

> An overwhelming amount of evidence points to this simple fact: a single > human brain, on its own, is not capable of designing a greater intelligence > than itself. This is a purely empirical statement: out of billions of human > brains that have come and gone, none has done so.

Yet out of all those billions of brains, how many of them have tried developing general artificial intelligence, let alone the "AI" of an if-then- else statement? Probably 0.00001% of those billions of brains. Yes, I made that number up, but it wouldn't be surprising for that number to be minuscule, below a fraction of a fraction of a percent.

Evolution has had billions of years. We've only had computers for less than a century. In that respect, it's not at all surprising that humans haven't mastered what nature unintelligently developed for much longer.

> In particular, there is no such thing as "general" intelligence. On an > abstract level, we know this for a fact via the "no free lunch" theorem — > stating that no problem-solving algorithm can outperform random chance > across all possible problems.

That depends on how you define the word "general". I don't think that scientists and engineers working on intelligence are actually using the word "general artificial intelligence" in the sense that such intelligence could solve literally any problem. Humans are _generally_ intelligent within a set of fixed domains, but that doesn't mean they don't have general intelligence within certain constraints.

</comment><comment><USER17> Our brains already do it, likelihood is 100%. Nothing would stop transistor based computers from doing it, though they might be very much slower at it.

<comment><AUTHOR> How do we know our brain creates our mind? That is a materialist assumption, which is just an assumption.

<comment><USER18> It's an assumption that has been tested many times. Humans can survive losing parts of their brain, but it causes observable changes in their mind. That's were those colorful maps of brain regions and their functions come from: by recording what kind of brain damage caused what kind of function to deteriorate.

Don't forget that people used to believe that the heart contained the mind and the brain was just a cooler. There was real evidence that caused scientific consensus to change.

<comment><AUTHOR> There are some interesting examples of very highly functioning individuals with very little brain.

At any rate, correlation does not imply causation.

<comment><USER19> What's your proposed alternative? I'm trying not to be dismissive, but I'm also having trouble coming up with a reasonable alternative hypothesis.

<comment><AUTHOR> I would say halting oracles are a possibility that have some degree of mathematical traction:

[https://www.am-nat.org/site/halting-oracles-as- intelligent-a...](https://www.am-nat.org/site/halting-oracles-as-intelligent- agents/)

But, we shouldn't prefer an incorrect model to no model, and the brain = mind model does not seem correct.

<comment><USER6> From that article:

> So, the objection that humans cannot solve every problem only shows that > humans might not be complete halting oracles, but cannot show that humans > are not partial halting oracles.

I don't get it. We can already easily making Turing machines that answer the halting problem for certain infinite sets of Turing machines, so there's nothing unique about the human brain in this regard.

<comment><AUTHOR> The previous sentence to the one you quote explains:

> We can even remove an infinite number of problems from the set and still > have an infinite and undecidable set.

It is an undecidable set, so cannot be described by a TM.

<comment><USER6> Oh okay, I guess that entire paragraph is just a complicated way of rephrasing their claim, which is that there is at least one TM for which no TM can possibly answer the halting problem, but for which humans can.

So then, the claim is that it's at least conceivable that humans can do this, because you can remove a finite or even infinite number of elements from an infinite set and still be left with an infinite set. I still don't understand how this is a remotely useful insight or in any way an indication that humans may have super-Turing abilities.

<comment><AUTHOR> That's correct. It does not prove that humans have this capability. It just shows that a common counter argument fails, and then the article goes on to explain how it would make an empirical difference if humans are partial halting oracles.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER20> It seems more likely more fundamental innovations are going to come from academia with a culture of seriousness and decades of work without returns.

On this side there is a strong tendency to be blinded by hype, underestimate problems or wish them away with naive desperation that things will just happen based more on hope than reality.

We saw that with the self driving crowd underestimating the problems and overestimating the existing technology, and now with the AI folks, who are already guilty of perpetuating hype knowing fully well that their extremely limited definition of 'AI' is nothing like what the world understands by AI.

All the privacy shenanigans, crypto disaster, self driving cars and AI leave the reputation of tech community in a very bad place.

</comment><comment><USER21> I too have some resistance to the notion that we will see AGI at a higher level than humans within 50 years. I don't think the arguments he has make any sense. The technology simply did not exist and we're improving on so many fronts mostly because we're now capable of yielding huge neural networks we couldn't fathom having access to just a few years ago.

I don't think the technology required to build superhuman AGI exists yet at least at a reasonable cost to humanity. I don't think we will reach this level of massively parallel computing required for Superhuman AGI until maybe 2070 and that's only if we bring together all the world's supercomputers together in one giant artificial brain.

<comment><USER22> I think we've seen the cross-over point for AGI in the last few years.

Just recently, within the last decade, we've seen incredible advances of the _usefulness_ of existing ML/NN based approaches. We have phones and smart speakers which have sufficiently reliable speech recognition. Ditto for vision tasks.

What's different now compared to decades past is that businesses can see the benefit of incremental improvements in existing systems. If Siri can easily be demonstrated to be more useful than Cortana, that is a significant competitive advantage, which will sell products and services.

The tech giants (and others) see this, so they will continue to invest. This isn't like in past where we tried things here and there, they didn't work as well as we had hoped, and then we stopped investing.

The pressure is on all the tech giants to keep investing, and applying that research to more and more of their own businesses (like using ML to manage power and cooling at a data center).

We're on a roller-coaster ride into the future, and nothing short of worldwide disaster will stop it. For good or for bad.

</comment></comment><comment><USER23> To make an accurate projection or statement about something, it is generally necessary that you have a sound understanding of it. This is just my general intelligence speaking here. I see nothing of note that reflects that this person has a fundamental understanding of General Intelligence or has even been in the pursuit of it. Authoring an optimization algorithm suite doesn't mean you have an understanding of General Intelligence. A non-read before even clicking on the link. Two posts today about AGI. Seems the next hype train is arriving right on schedule and its banner will be (AGI).

</comment><comment><USER24> the meat computer hidden in your head running on ~20W of power does it. why wouldn't an electronic computer be incapable of the same feat is beyond me. make it 20kW or 20MW if 20W sounds unreasonably low.

</comment><comment><USER25> > There is no evidence that a person with an IQ of 170 is in any way more > likely to achieve a greater impact in their field than a person with an IQ > of 130.

This feels disingenuous. If other things are bottlenecking human success than intelligence (which isn't even entirely true), computers are generally better at these things, especially in an era of massive low-cost computing resources.

</comment><comment><USER26> We have an example AGI - the human brain.

We have an example superintelligence - humans working together in groups such as corporations are a superintellgence.

So from that, the invention of a human-level AGI naturally leads to superintelligence - lots of the AGIs cooperating.

The question then becomes of whether we're going to get to AGI. Evidence points to yes. AGI (human intelligence) is a collection of abilities and the machine learning community is steadily making progress on them. Speech, vision, machine translation, question answering, summarization etc. are all being worked on and steady progress, or in many cases - rapid progress, is being made.

Unsupervised learning and reinforcement learning are the frontiers and both have advancements in just the past couple of years (GANs, predictive learning, inverse reinforcement learning, imitation learning, domain randomization).

Unsupervised learning in particular is likely the key to AGI and only recently has significant progress been made on it - predictive learning (as Yann Lecun calls it).

(Personal conjecture - the next couple of years when a larger number of people investigate predictive learning might lead to AGI - in maybe just 2 years).

</comment><comment><USER27> I don't have the exact quote in front of me, but in 1979, Douglas Hofstadter wrote in his book "Godel, Escher and Bach" something to the effect of: "It may be that some day a computer can beat a human at chess, but when it happens, it will be by the sort of computer that will say, 'no, I'm bored with chess, I would rather talk about poetry'". If Hofstadter can be wrong about anything, anybody can be wrong about anything.

<comment><USER28> Nice quote!

Wasn't there an assertion, mentioned several times here on HN, that researchers have found that with AI the seemingly hard becomes easy (e.g. playing chess) and the seemingly easy becomes hard (e.g. walking or... becoming bored with chess)? It now seems qualitatively harder to design a program capable of boredom than one capable of being a chess master.

<comment><USER6> That sounds like [https://en.wikipedia.org/wiki/Moravec%27s_paradox](https://en.wikipedia.org/wiki/Moravec%27s_paradox)</comment></comment></comment>


Ask HN: Are projects as important as internships? - <AUTHOR>

I'm a software engineering student (graduating next year) and I have done internships every summer for the past 3 years.
This summer I'm thinking of building a web project (not commercial but NGO oriented).
Do you think that on my resume this will be valued? Or maybe recruiters won't see the value of it and assume that I have had a lazy summer? <comment><USER2> I'm long out of college (and never did an internship), but not a week goes by where I don't get an email from some recruiter or startup cto who's been scanning github and found something of mine. Once you build a project, it stays out there, and with github it's quite visible to anyone who wants to take a look.

Personally, when hiring, I'd rather see some code you've written. It also gives us something cool to talk about during the interview, when I'll ask about why you chose technology X, what other things you looked at, how you came to your decision (even if it was "well, it looked good enough I guess" \- which is perfectly valid), what problems you encountered and how you handled them, what you think about things retrospectively, etc.

Internships can be useful for learning how to interact with others in the office and even for programming experience, but only if the company you worked at actually made an effort to mentor you rather than take advantage of cheap/free labor.

<comment><AUTHOR> > rather than take advantage of cheap/free labor.

This is exactly what is happening. I'm getting offered 100$/month to rebuild entire apps that usually would require a team.

<comment><USER3> This might be the difference between an internship and a co-op, but when I was a co-op at JPL, they paid a salary comparable to what other companies paid new grad hires. And the total number of months you co-oped was used in their salary formula if you got an offer for a permanent position. The fact that you are getting such a tiny fraction of that - 20 years later in this job market - is astounding to me. Sounds like you could do better on Elance or Odesk, and that's saying a lot.</comment></comment></comment>


Xkcd: Pixels - <AUTHOR> http://xkcd.net/1416/ <comment><USER2> Repost from last week's [https://news.ycombinator.com/item?id=8281857](https://news.ycombinator.com/item?id=8281857) . For background notes on implementing the cartoon, see [https://news.ycombinator.com/item?id=8281857](https://news.ycombinator.com/item?id=8281857) .</comment>


Ask HN: What interesting books are you reading now? - <AUTHOR>

I'm reading Richard Feynman's 'QED' right now.  It is fascinating to know how much we don't know :) <comment><USER3> _Peopleware: Productive Projects and Teams by Tom DeMarco and Timothy Lister_ \- a great book about software projects management

 _Founders at Work: Stories of Startups' Early Days_ by Jessica Livingstone - fascinating stories of founders of companies both young and old

</comment><comment><USER4> "This is Running for Your Life", a collection of essays by Michelle Orange. She writes about a trip to Beirut and her grandmother's death to discuss our cuture's relationship with nostalgia and death. Very witty and fascinating - <USER2> ook forward to reading her next book.

</comment><comment><USER5> Book Yourself solid.

Very interesting if you're a freelancer or building products. I'm 1/3 through the book. Goes a lot into how to create trust and how to adjust your sales and marketing based on the trust you've created.

</comment><comment><USER6> The Half Life of Facts

Most useful explanation I have found to explain why the pre-internet age grown-ups (that would also be me) get stuck thinking that facts remain always the same.

</comment><comment><USER7> The Emperor's New Mind by Sir Roger Penrose. It's a very accessible and highly fascinating discussion about whether machines will ever be able to emulate the human mind.

</comment><comment><USER8> Reading Infinite Jest by David Foster Wallace. It's an incredible novel, but very dense and over 1000 pages. It's a trek, but has been so worth it so far.

</comment><comment><USER9> I'm reading "The Launch Pad Inside Y Combinator, Silicon Valley's Most Exclusive School for Startups" by Randall Stross

</comment><comment><USER10> Security Analysis - 1940 Edition.

Re-reading it for the one millionth time. Always learn something new from it.

</comment><comment><USER11> The Cuckoo's Egg. It's Clifford Stoll's story of chasing a hacker who broke through LBL during the late 80's.

</comment><comment><USER12> I just finished The Checklist Manifesto. Jack Dorsey gift this when you enter Square.

</comment><comment><USER13> The Brothers Karamazov . Incredible insight into human psyche .

</comment><comment><USER14> The Design of Everyday Things by Donald A. Norman

</comment><comment><USER15> "The Story of My Life" by Giacomo Casanova.

</comment><comment><USER16> 'Laravel: Code Happy' by Dayle Rees

</comment><comment><USER17> Algernon Blackwood's short stories.

</comment><comment><USER9> Also "Start With Why" Simon Sinek

</comment><comment><USER18> Beginner's guide to HTML5/CSS

</comment><comment><USER19> The $100 startup.

</comment><comment><USER20> Just finished Alfred Lansing's incredible classic Endurance. Highly recommended.

</comment><comment><USER21> The Souls of Black Folk by WEB Dubois.</comment>