How Does React Tell a Class from a Function? - <AUTHOR> https://overreacted.io/how-does-react-tell-a-class-from-a-function/ <comment><USER2> What's the rationale for allowing the components to be defined as functions in the first place? As far as I can see, it has a single thing going for it: saving a line of code, at the expense of jumping through the JavaScript hoops to implement the class/function distinction described in the post. Besides, when the function component evolves and acquires the need for state or other features, the saved line of code goes right back in.

<comment><USER3> To me it's all about intent. By using a function instead of a class, you are basically saying "future reader, this component is nothing more than a simple mapping from those values to that DOM tree, don't try to look for internal states or any complex treatment here".

Sure you could write a "normal React component without state" and do the same, but having those properties baked in the way you defined the component is much stronger.

<comment><USER4> I absolutely agree with you.

This makes me very skeptical about the proposed feature in React, called "hooks", which is linked to in the article. It lets you add state to your functional components, and it looks like you end up bundling all your code into one function rather than having a separate constructor to initialise the state (to me, separating out that function is a good thing). I would be interested in the motivation for that.

Link: [https://reactjs.org/docs/hooks- intro.html](https://reactjs.org/docs/hooks-intro.html)

<comment><USER5> I have this doubt as well.

Hooks will allow people to use "class like" features and behavior, but with none of the conventions forced by syntax, plus some pitfalls.

To me it seems a good way to ensure most devs (espacially unexperienced casual ones, which are legions in JS by nature of the market) will dump their logic wherever it works with as little structure as it allows. It's a technical debt catalyser, and will make sure nobody feels at home in someone else's code. The community will pay the price in a year.

It's also yet another way to do the same thing, and JS has already a lot of those. React as well. Documentations, tutorials and examples will suffer from it. But again, it's very common in JS land where learning anything requires gathering scattered puzzle pieces then assembling them, hoping they are from the same set this time. It allows me to bill more, so I'm not complaining, but it's not fair to newcommers.

Note that I can see some nice things about hooks. I just strongly think they don't outweight the cost by an order of magnitude.

FB idea of ergonomics and user friendliness, in API and UI, has always been to force their way into things, until it blocks, back down, and fix things when possible or use a workaround.

Having been training people in web tech for years, the consequences of such policy show in the classroom. But, hey, more money for me :) Plus when I dev, I have the experience to avoid the pain, mostly knowing when not to do or use things. But I can tell than many of my younger colleagues don't, and a few of my not so young ones too.

Still, I wish they gave a bit more though to this aspects of their products: their are brillant technicians, so it's not that they can't, it's just a matter of culture.

<comment><USER6> > will dump their logic wherever it works with as little structure as it > allows. It's a technical debt catalyser, and will make sure nobody feels at > home in someone else's code. The community will pay the price in a year.

I don't want to downplay your concerns, but I will say that this is already a problem. Part of the goal with hooks (and I can't say if it achieves that) is to encourage the separation of a lot of state-interaction OUT of the components. Today it is much too easy (arguably it is easiest) to write a component that is basically untestable - basically a mini-application in itself, which is the opposite of good React design.

I'm hopeful that Hooks will help, and I think the original demonstration focused too much on state and not enough on other interactions external to the component, which is where the real pain today exists. I've not played with the alpha at all to have a feel for how realistic my hopes are.

<comment><USER7> I read the hooks documentation. Why would someone find this pattern better than a pre-defined state object ? I don't get it.

React seems like it's getting more complicated every single day. I loved it due to its simplicity but now i'm not so sure.

<comment><USER8> mostly because you can encapsulate and reuse some state logic. allows for easier testing too.

<comment><USER5> You could already do that with regular functions, class inheritence, mixin, prototype inheritence, composition, event dispatching or stores.

If preventing people from being confused and doing the wrong thing was the goal, I'm not sure adding one new way to the mix is going to make things clearer.

Besides, while I agree tooling help with applying good practices, including encapsulation, it's no substitute for a good initial API design.

React and JS API are confusing, because they have been designed this way from the start. We are now adding things on top of it, again and again, without ever fixing anything at the bottom. This creates problems at the same time it solves others.

Another issue is that the JS community wants to professionalise without aknowledging that a huge part of it doesn't have the skill to do so yet. It's a community that includes many young devs with little experience, people that are not programmers but ends up doing so, devs born in a culture of instant results... It's important to address this as well, by talking to them in tutorials and documentation, by creating API shaped with them in mind, so that they can grow in empowering directions.

Instead, we create monster trucks, and they put ads on youtube to tell everyone how "easy it is to drive" and "you should do it too right now".

For me, hooks are a monster truck. And most JS devs I work with are not capable of driving that safely.

<comment><USER9> Sure, but if you can drive hooks safely, they seems to make some things _very_ clean. I'm going back through and rewriting a toy app I haven't launched yet to use hooks and it's been a joy to work with them so far.

<comment><USER10> This seems to be the response to every addition to javascript or react without addressing the above concerns.

Nothing wrong with your comment on trying to embrace it per se, but it would be healthier if this sentiment was balanced in the community with more skepticism rather than blind embrace.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> "Please don't turn this into an interview question. In fact, this post is more about JavaScript than it is about React" I love this line.

<comment><USER12> "In a December, 2nd, 2018 blog post, developer Dan Abramov explained in length and in detail how React can (and/or can not) tell a Class from a Function. He wrote: 'please don't turn this into an interview question' Can you define what _this_ refers to?"

<comment><USER13> I don't think I can answer that without knowing how this has been bound by the caller.

</comment></comment></comment><comment><USER14> I've read at least two dozen explanations of prototypes that didn't offer 10% of the clarity of this post. And another brilliantly told story of how React does its work. Bravo.

<comment><USER15> I agree, this is the best explanation of JavScript's new/this/prototype/__proto__ I've seen yet. It was definitely worth the read.

<comment><USER16> Totally! I'm not even a full time JS dev (I just have played around with React before) and I understood all of it.

</comment></comment></comment><comment><USER17> I'm really quite surprised how much time is spent worrying about Babel.

I always thought that you could just write valid JavaScript and it's completely Babel's responsibility not to screw that up.

Edit: not sure what's wrong with my comment so let me clarify:

I wouldn't have thought that library developers had to think about what other tools might do with their library. I always thought that so long as your code is valid JavaScript, Babel would faithfully transpile it down to another valid target using polyfills and whatnot.

<comment><USER18> (I work on React.) Most of our users use Babel so it would be irresponsible for us to not consider how React and Babel play together; if we didn't we'd quickly get into a situation where no one can use React because their setups are incompatible.

For what it's worth, if we found while developing React that Babel was compiling something in a problematic way and we had a better suggestion for the compiled output, we'd certainly see if we could get it fixed upstream. In this case the Babel output for classes is pretty reasonable so there's nothing to change.

We did briefly consider if it made sense to require every function component to be written using an arrow functions and asking Babel to delete the .prototype property from every compiled arrow function (compiling _a = () = > ..._ into something like _a = function() { ... }; a.prototype = undefined;_ ). We eventually decided that the .prototype.isReactComponent compromise described in the post was a better result overall, both for authoring ergonomics and runtime performance.

</comment></comment><comment><USER19> > I didn't know this for years. Please don't turn this into an interview > question. In fact, this post is more about JavaScript than it is about > React.

Well, I think how prototype works is much more important than using React.

I think having an interview in JS without knowing prototype is like having an Java interview without knowing polymorphism, abstract class, interface or something.

<comment><USER20> I have heard Prototype in js used as a term, but I don't really understand what it means. I have programmed a good deal of things in js also, and I have never felt like I needed to explicitly know what Prototype means. Is it really essential to know what this term means?

<comment><USER21> As a js dev for 6 years now, and having conducted hundreds of interviews, I would say it is not necessary for a junior developer and most of the things they'd be doing.

However, when it comes to a mid or senior level engineer, it's important not to just make things work, but to understand the how and why in order to build performant applications at scale.

So to answer your question, no it's not a necessity to build applications. Yes, it is if you want to excel at building applications.

</comment></comment></comment><comment><USER22> "In the old days, JavaScript did not have classes" gave me a laugh. This was 3-4 years ago.

<comment><USER23> My reaction was "Wait, JavaScript _has_ classes now???"

<comment><USER24> If you have to use .bind(), then no, it doesn't.

<comment><USER25> In C++ you have to use bind too.

<comment><USER24> No, not even close.

You can use it if you want to, but it has never been popular in C++, and in 20 years I have never encountered a problem that could be solved by using it, so I have never used it. And in C++ bind is part of the functional programming paradigm, as it does currying, not much to do with classes.

Bind in JavaScript makes your shoehorned collection of attributes actually behave like objects. We can see JavaScript's bind used everywhere.

<comment><USER25> The issue we complain about in JavaScript is one like this:

        class C {
            handleEvent() {}

            someMethod() {
                onEvent(this.handleEvent); // bad; "this" lost
                onEvent(this.handleEvent.bind(this); // ok
            }
        }

C++ requires the same thing. The bad case will even generate an error at compile time.

        class C {
            public:
                void handle_event() {}

                void some_method() {
                    on_event(&C::handle_event); // bad; error
                    on_event(std::bind(&C::handle_event, this)); // ok
                }
        };

</comment></comment></comment></comment></comment></comment><comment><USER26> TLDR Version: React defines the property "isReactComponent" in its "Component" class prototype object. When you extend "Component" React can simply check "MyClass.prototype.isReactComponent" and if the result is true, it knows it's a class and not a function!

</comment><comment><USER27> i've used this in the past:

      function isClass(fn) {
        return !Object.getOwnPropertyDescriptor(fn, 'prototype').writable;
      }

it relies on the fact that the prototype object of ES6 classes always non- writable.

<comment><USER28> Note that this breaks with Babel and TypeScript, since I guess this is one aspect where neither strictly follows the spec. Both of these examples print false:

[https://babeljs.io/repl/build/master/#?babili=false&browsers...](https://babeljs.io/repl/build/master/#?babili=false&browsers=&build=&builtIns=false&code_lz=GYVwdgxgLglg9mABDAzgYQDYEMUoBTBgCUiA3gFCKIBOAplCNUgIQDyARgFa3QB0A5vVYB3MAAVqcAA61qUAJ4ARWigjUYUqHGoEwAGkQByKZK0KZhor2HqoWdhloBucgF9y5CNlyIAgmXdPBBQ4R14MOH48VEwcfF8iIhcgA&debug=false&forceAllTransforms=false&shippedProposals=false&circleciRepo=&evaluate=true&fileSize=false&lineWrap=true&presets=es2015%2Creact&prettier=false&targets=&version=7.1.6&envVersion=)

[https://www.typescriptlang.org/play/index.html#src=function%...](https://www.typescriptlang.org/play/index.html#src=function%20isClass\(fn\)%20%7B%0A%20%20return%20!Object.getOwnPropertyDescriptor\(fn%2C%20'prototype'\).writable%3B%0A%7D%0A%0Aclass%20A%20%7B%7D%0A%0Aconsole.log\(isClass\(A\)\)%3B%0A)

</comment></comment><comment><USER29> On a related note, this is the one article which after reading I wanted to subscribe to, but could not find a newsletter or subscription. Dan, if you're reading this, this might help: [https://www.gatsbyjs.org/packages/gatsby- plugin-mailchimp/?n...](https://www.gatsbyjs.org/packages/gatsby-plugin- mailchimp/?no-cache=1)

I'm guessing the site is built with gatsby from the theme.

<comment><USER30> Yup, it is gatsby. [https://github.com/gaearon/overreacted.io](https://github.com/gaearon/overreacted.io)

You can use [https://overreacted.io/rss.xml](https://overreacted.io/rss.xml) for subscription.

</comment></comment><comment><USER31> So React added isReactComponent to Component class but the author doesn't explain why they couldn't just check for render() method. It works in this React-like library:

[https://github.com/wisercoder/uibuilder/blob/master/UIBuilde...](https://github.com/wisercoder/uibuilder/blob/master/UIBuilder/UIBuilder.ts#L130)

<comment><USER32> Someone else asked that same question on Reddit [0], and Dan pointed out the paragraph in the post that answers it :

> One other possible heuristic could be to check for presence of a render > method on the prototype. However, at the time it wasn't clear how the > component API would evolve. Every check has a cost so we wouldn't want to > add more than one. This would also not work if render was defined as an > instance method, such as with the class property syntax.

[0] [https://www.reddit.com/r/reactjs/comments/a2j6xk/how_does_re...](https://www.reddit.com/r/reactjs/comments/a2j6xk/how_does_react_tell_a_class_from_a_function/eayzfhx/)

</comment></comment><comment><USER33> > In the old days, JavaScript did not have classes.

Feels like yesterday to me. I still do my objects prototype style because classes feel too new and bleeding edge.

</comment><comment><USER34> > Please don't turn this into an interview question. In fact, this post is > more about JavaScript than it is about React.

Aren't most people hiring frontend developers looking for people who understanding Javascript (and not just React)?

Or is "React" a skill separate from Javascript these days?

Personally, I'd be hesitant to hire anyone who "knows React" but doesn't know the basics of how it works.

<comment><USER35> All of the hiring managers I've talked to recently have the JQuery/JS dichotomy applied to React now. That is, they don't seem to really care that there's a difference. You can say you're good with JS, Vue, DOM etc, but if you don't check that React box, it's not good enough.

</comment></comment><comment><USER36> I recently discovered [http://imba.io/](http://imba.io/) which makes the virtual DOM approach irrelevant. It just renders "everything, every time" like the main loop of a game, so you don't need any more reconciliation, async state management, etc.

In some benchmarks this approach is 20 to 30 times faster than React.

</comment><comment><USER37> Great job Dan, please keep posting more articles on your blog!

</comment><comment><USER38> I'm pretty much aware about prototype inheritance in js. But still scratching my head everytime, I try to understand difference between prototype and __proto__. Thankfully with ES6 classes and class inheritance constructs, we don't need to override prototype constructor and such a things anymore. Still wish, that somebody will explain it to me in plain english.

<comment><USER18> This post does try to explain it in plain English. See the explanation starting at the bolded sentence that starts "Confusingly,".

<comment><USER22> Honestly I don't think it does a good job at explaining it. Classes are mostly syntax sugar for "old" constructors and prototypes, not the other way around (that's the whole reason you can't tell them apart). Would be easier to explain it that way; on mobile right now so can't comment too much.

<comment><USER39> I thought it was unfortunate that prototypes were characterized as an inadequate approximation of classes, when in fact prototypes are a wholly legitimate, powerful, and certainly interesting way to approach object- oriented programming ([https://en.m.wikipedia.org/wiki/Prototype- based_programming](https://en.m.wikipedia.org/wiki/Prototype- based_programming)).

20+ years of confused programmers suggests that maybe it wasn't the right way to go for a language that is frequently used by beginners, but still that wasn't the fault of prototype based programming itself.

The new class system is syntactic sugar leveraging the power of prototypes. This was always possible, and nothing stopped you from implementing a class- like system in JavaScript a long time ago.

More, very readable, info here: [https://developer.mozilla.org/en- US/docs/Web/JavaScript/Guid...](https://developer.mozilla.org/en- US/docs/Web/JavaScript/Guide/Details_of_the_Object_Model)

</comment></comment></comment></comment><comment><USER40> React doesn't care whether something is a class or function until Congress notices.

</comment><comment><USER41> I like a domain name.

</comment><comment><USER42> mfw __proto__ instead of Object.getPrototypeOf

</comment><comment><USER43> TL;DR -- it uses `instanceof`

<comment><USER44> Wrong, try again.

</comment></comment><comment><USER45> Ugh. This just doesn't make me want to touch JavaScript. I'd rather stick to Django and Python

<comment><USER46> I'm quite sure the authors of Django would be able to tell similar stories about Python...

<comment><USER47> Yeah that's kind of the point of this blog. I dive a bit deeper than you need to know as an app developer. Also touched on this at the end:

>If the final API is successful, its users never have to think about this process. Instead they can focus on creating apps.

<comment><USER48> > Instead they can focus on creating apps.

If only it worked that way. Unfortunately, somehow I always end up needing to know about the process cause the abstraction leaks like a sieve. And it's leakier in javascript than in any other language.

</comment></comment></comment></comment><comment><USER49> You get an error if you try to call an ES6 class as a function (without 'new'). So just try to do that inside a try-catch. If there is no error you know it is not a class and you have the result of the function already. If you do get an error and you know it is a function you know it must be a class.

<comment><USER28> I believe throwing and catching exceptions over and over as part of normal rendering is the sort of thing that would be disastrous for performance, certainly the sort of thing that the React authors would really want to avoid.

<comment><USER50> The new suspense api is based on throwing and catching promises as part of the render, so I don't think its that.

<comment><USER47> Suspense only uses throwing when it's blocked on network. There is huge difference between doing this once every few seconds, and doing this thousands of times per second.

</comment></comment></comment></comment><comment><USER51> I have written maybe 200 lines of JavaScript in my life, and this article has strongly reinforced my desire to never have to write a single one more. The next time someone asks me what the problem with JavaScript is, I will send them this article. "Scheme for the browser" what a joke.

Some excerpts for those that didn't have the strength to sit through the entire thing without pulling their hair out:

> If you called Person('Fred') without new, this inside it would point to > something global and useless (for example, window or undefined). So our code > would crash or do something silly like setting window.name.

> However, JavaScript also allows a function called with new to override the > return value of new by returning some other object. Presumably, this was > considered useful for patterns like pooling where we want to reuse > instances:

> However, new also completely ignores a function's return value if it's not > an object. If you return a string or a number, it's like there was no return > at all.

> And yet I still find it very confusing that a property called prototype does > not give you a value's prototype (for example, fred.prototype is undefined > because fred is not a function). Personally, I think this is the biggest > reason even experienced developers tend to misunderstand JavaScript > prototypes.

> However, some class implementations we wanted to target did not copy static > properties (or set the non-standard __proto__), so the flag was getting lost

Edit: And I missed the best/worst one yet: You can have MULTIPLE VERSIONS of the SAME DEPENDENCY running around in your codebase, interacting in ways that only god knows. In retrospect, this should have been obvious from the way javascript "imports" work, but, holy shit! If Satan himself had to design a language, he could not have done a better job. And I'm sure he would not have the stroke of genius required to make it the only programming language you can use if you want to target the most widely available platform for code in the world.

The next time I have to allow NoScript to let some js in, I will wonder how many goat sacrifices went into making the thing work.

<comment><USER47> Author here :-) I don't think I disagree with you. JS has its warts and some of them are... weird. The web delivery mechanism has always been its killer feature, not the language. And for web delivery mechanism to work, it needs to maintain backwards compatibility.

In practice, however, I think a lot of these things become irrelevant because JS subcommunities carve out reasonable subsets of the language. For example when using React you almost never need to care about prototypal (or even normal) inheritance because it's explicitly discouraged by React. And in the future, we might not need to encourage classes when writing components altogether.

If you limit yourself to avoiding some features then it's not such a bad language after all.

<comment><USER48> > If you limit yourself to avoiding some features then it's not such a bad > language after all.

Unfortunately that's not possible unless you never interoperate with other code.</comment></comment></comment>


Linked list patent - <AUTHOR> http://www.google.com/patents?id=Szh4AAAAEBAJ&printsec=abstract

<comment><USER2> In the interest of advancing the level of debate regarding intellectual property, once again as countless time before, I beg everyone to read Against Intellectual Monopoly at [http://levine.sscnet.ucla.edu/general/intellectual/againstfi...](http://levine.sscnet.ucla.edu/general/intellectual/againstfinal.htm)

 _It is common to argue that intellectual property in the form of copyright and patent is necessary for the innovation and creation of ideas and inventions such as machines, drugs, computer software, books, music, literature and movies. In fact intellectual property is a government grant of a costly and dangerous private monopoly over ideas. We show through theory and example that intellectual monopoly is not necessary for innovation and as a practical matter is damaging to growth, prosperity and liberty._ \-- David K. Levine and Michelle Boldrin in _Against Intellectual Monopoly_

This book has absolutely change my thought about how economic progress are made, who is the real good guys and bad guys of civilization, and everything else. I never quite look at innovation and entrepreneurs quite the same way ever again.

Please, everyone, read it. It's free to download!

<comment><USER3> I haven't read the book, but the interview with the author on Econtalk was great: [http://www.econtalk.org/archives/2009/05/boldrin_on_inte.htm...](http://www.econtalk.org/archives/2009/05/boldrin_on_inte.html)

<comment><USER4> I love Econ Talk but I haven't listened to that episode yet. Thanks for the pointer!

</comment></comment></comment><comment><USER5> Every time the patent debate comes up, someone links to this patent as the summit of absurdity. Why not link to this one: <http://www.freepatentsonline.com/6368227.pdf>

It's just as absurd as lots of software patents -- that doesn't mean _all_ software patents are absurd. Some are genuinely novel, unobvious, and valuable.

I still don't understand why someone could patent a physical machine that computes instructions, but not software that does the same thing.

It seems like we are throwing the baby out with the bath water. I know patents cause trouble, but what about the case where a patent helps an entrepreneur get the value out of an invention when big corporations steal it, market it, and make money without giving the inventor a dime?

There's good and there's bad, but it seems like around here there's only mud slung at software patents. Some inventors of software algorithms are every bit as clever as inventors of anything else that may get patented. Why shouldn't they be treated the same under the law?

Equal rights under the law. That's the way it should be.

<comment><USER6> Perhaps you can provide a counter example that shows the usefulness of software patents.

I personally think they are absurd, as demonstrated by the OP, but am open to changing my thinking if proven wrong.

The internet has leveled the playing field for everyone. But one of the few ways that big corporations can take advantage of their size against smaller, more innovative entities is by throwing money into a legal battle which the smaller entity can't afford to fight.

Equal rights under the law. But currently, the more money you have, the equaler you get.

<comment><USER5> Okay, then the problem is not software patents, or patents in general, but that they unfairly tip the scales in favor of the big corporations.

How do we fix _that_ problem? That problem exists outside the world of patents and software. Monsanto patents seeds and those are just strings of DNA which are essentially just _four_ characters repeated in a seemingly random order. And yet farmers lose their farms over those strings of four letters. Not because they were even choosing to use the seeds, corn is just pollinated by the air and some of that code got into their crop as it blew in from the neighbors' field -- a farmer who _did_ use Monsanto's DNA. It's absurd, I know.

One case on the not absurd side of the spectrum, is, as it turns out, the original case that ruled software could be patented in the first place. It was by a guy who had to fight, iirc, all the way to the supreme court to protect his right to patent his software invention. I'll try to find a link, but is a true story indeed.

<comment><USER7> > Okay, then the problem is not software patents, or patents in general, but > that they unfairly tip the scales in favor of the big corporations.

Agreed. Legal issues (patents included) tend to favor big corporations because you're more likely to win a case if you spend more money on it. I don't know about all the factors contributing to this, but I think a big one is that law (in the U.S., anyway) is difficult to understand for laypeople, and so you need lawyers to defend you, and the lawyers that cost more have higher success rates.

<comment><USER8> More likely, lawyers with higher success rates cost more.

<comment><USER7> Sure, but it's beside my point, which is that the small g(uy|al) would be better off if lawyers were either obsoleted by a ``Law 2.0'' or made into a purely public resource.

</comment></comment></comment></comment></comment></comment><comment><USER9> To be fair, it's not just a linked list. It's a _triply_ linked list. Must be at least 3 times as hard to figure out as a singly linked one...

</comment><comment><USER10> Just to be clear, this is not a patent on a plain vanilla linked list. It's a patent on a linked list where each node in the list has 1 or more extra next pointers, to facilitate different orderings.

Now, if the US is serious about innovation and economic recovery, they will employ software patent evaluators who are actually aware of the state of the art in software engineering / computer science and who can judge the obviousness of an invention. Their failure to do so has resulted in a lot of extra friction that prevents economic growth. Every frivolous patent suit filed, every agreement to give in and pay up, is another bit of economic growth lost to friction.

Good luck with the recession.

<comment><USER11> Amen to that. I love your analogy, I've always thought of the government as "friction"

</comment></comment><comment><USER12> I'm really too tired to read this, but is someone seriously trying to patent a linked list? This is really a "palm to the forehead" moment for me.

<comment><USER13> It's not exactly what you'd think when someone says "linked list." The "next" pointers are there, but there's also an "aux" pointer that the patent suggests can point to any other element in the list, not just next or previous, and can be used for any purpose to form any kind of sequence desired.

I think it's "new" and "novel" because really there's no use for it.

(Ok, I jest... I expended barely 30 seconds worth of thought and couldn't come up with anything. Maybe there is a use for it, but the patent's still pretty lame.)

</comment></comment><comment><USER14> Duplicate: <http://news.ycombinator.com/item?id=1165089>

<comment><AUTHOR> Oops. I saw it on Twitter (likely by someone who saw it here or on Reddit...) and posted it not knowing it was already posted. Sorry.

</comment></comment><comment><USER15> My first reaction is, oh no, Google has patented the linked list, forsooth.

Instead, it's a company called LSI Logic Corporation.

</comment><comment><USER16> Oh no! Now that I've read the patent all the software I've written that uses linked lists (and that's rather a lot) is now in violation of the patent, and I'm liable for treble damages, right?

Damn you, Hacker News!

</comment><comment><USER17> Ridiculous. I have books older than that patent application containing the same diagrams, and so do most programmers.

</comment><comment><USER18> The only "novel" part of this appears to be the use of the aux pointer to make navigation more efficient in some circumstances.

Which sounds awfully like skip lists to me:

<http://en.wikipedia.org/wiki/Skip_list></comment>


Ask HN: Can you explain Amazon EC2 Reserved Instances? - <AUTHOR>

I am trying to price up running an instance for 12 months. Part of that is trying to understand their reserved instances and if savings can be made by buying them.
Unfortunately Amazon's pages are cryptic at the best of times and damn right nonsense in some cases (or maybe I'm just a moron).
So I have the following questions:
- If I get a 12 months reserved instance, do I need to buy a "on-demand" instance first? Are you reserving the on-demand instance or is a "reserve" instance a type of instance within its self?
- What the heck is the "Offering Type" (or RIs) and why would a Heavy cost LESS than a Light instance? Shouldn't it be the other way around?
Just to give you an example. Let's say we want a "medium" Linux instance for 12 months. 100% monthly utilisation.
If we do a single on-demand instance that is $117.12/month. But if we do a single reserved instance that is ONLY $23.42/month.
That seems "too good to be true" in terms of discount/savings (80% off). So I am guessing that isn't how Reserved Instances work. <comment><USER2> Have you read this page :

<http://aws.amazon.com/ec2/pricing/>

The first sentence under Reserved Instances is :

 _Reserved Instances give you the option to make a low, one-time payment for each instance you want to reserve and in turn receive a significant discount on the hourly charge for that instance._

In the table below you'll see that for each type of reserved instance there's an Upfront column followed by an Hourly column. To get your total annual cost for 100% utilization you would presumably add the 1 yr upfront cost to the hourly rate multiplied by the number of hours in a year (8760). You'll find that the total cost for a reserved instance is significantly less than that for an on-demand instance (where the upfront cost is zero but the hourly rate is higher).</comment>


NixOS on Prgmr and Failing to Learn Nix - <AUTHOR> https://push.cx/2018/nixos <comment> vertex-four I use NixOS on a day to day basis, and have encouraged others to do so - and I completely agree with the documentation issues described here. I'll also note that using Nixpkgs/NixOS will practically require you to actively maintain at least some portion of Nixpkgs to keep it up to date and functional for your specific use case. I think that's where a lot of the configuration mess comes from - NixOS modules have tended to be created to meet a specific user's need, rather than meet some holistic design goal.

</comment><comment><USER2> How long did you spend trying to learn Nix? I am trying to learn Nix as well because when I see it working it looks very clear and organized.

NixOS seems like it is from the future in my opinion. I agree the docs are outdated a bit. I had to go on IRC to #nixos to find out nix-shell is now nix shell. I submitted a pull request to the Nix Pills for that.

<comment><USER3> This was probably ~20 hours over two weeks. (I'm the author of the post.)

</comment></comment><comment><USER4> author got a bit backward, nix came first, I wonder if he would still have desire to try guixsd ..

<comment><USER3> (author here)

I knew Nix came before NixOS but was interested in both for the possibility of managing servers. I'd have made significantly less progress starting from Nix.

I can see how Guile would be an improvement over the Nix language, but have tapped out my patience on related topics for a while.

<comment><USER4> Hi,

I hope you took no offense by my comment. I tried nixos and failed to get what I want from it then went back to archlinux. But I understand how it's full of ambiguity (that's why I got back into familiar territory)

Maybe I'll make an article about guixsd and you'll read:p

</comment></comment></comment><comment><USER5> Prgmr is still around? They seemed like they went tits up.</comment>


Just How Correlated Are Silicon Valley Housing Prices and Venture Activity? - <AUTHOR> https://mattermark.com/vc-activity-just-might-predict-silicon-valley-housing-prices/ <comment><USER2> VC activity and housing prices are certainly correlated. I'd guess there are several additional correlated metrics we can talk about: Traffic, employment rates, salaries, etc.

What the world wants to know is the _causal_ relationships among them. If cause can be well understood, the experiment can be repeated successfully elsewhere.</comment>


Harman: How to Listen (2011) - <AUTHOR> http://harmanhowtolisten.blogspot.com/ <comment><USER2> After reading the entire post still not clear what is it- some music test for researchers? Audio test for listeners? Is it entertainment or utility or research?

<comment><USER3> Harman uses juries of "trained" listeners to evaluate its products and to participate in audio experiments (Dr. Olive and his mentor Floyd Toole are prominent in the field for their audio listening experiments). The "How to Listen" program is a tool that Harman uses to train its listeners. But they also make it available for everyone to train their ears.

So the answer is "all of the above."

</comment></comment><comment><USER4> [https://www.soundgym.co/](https://www.soundgym.co/)

^ if you are a producer trying to train your ear.

<comment><USER5> Also:

[https://www.gnu.org/software/solfege/](https://www.gnu.org/software/solfege/)</comment></comment>


Pentium III: Processor Serial Number Controversy (1999) - <AUTHOR> http://archive.wired.com/politics/law/news/1999/01/17513 <comment><USER2> It's hilarious reading this 1999 article about the great blow we struck for freedom in getting the CPU serial number removed. Since then CPUs and the rest of our hardware have way more unique identifiable information embedded in the hardware. Not to mention dodgy random number generators and reprogrammable microcode enabling all sorts of hardware-level backdooring. But that's all low level, at the high level we all tolerate tracking HTTP cookies with a level of global surveillance Jeremy Bentham couldn't have dreamed of.

The idea our computers should not be uniquely identifiable has long since flown out the window.

</comment><comment><USER3> What I don't understand is Intel's rationale for developing this feature in the first place, especially back in the dark ages when the current ideas about trusted software had not been developed (for instance, in the Windows environment, replacing a dll with one that passes-through all calls except the interesting one, which would simply return arbitrary data)

I always turned off this feature in the BIOS-setup of machines that gave the option.

<comment><USER4> _especially back in the dark ages when the current ideas about trusted software had not been developed_

The ideas of this "war on general-purpose computing" have been around for a _long_ time:

[https://en.wikipedia.org/wiki/Next- Generation_Secure_Computi...](https://en.wikipedia.org/wiki/Next- Generation_Secure_Computing_Base#History)

Stallman's well known, eerily prescient story also dates from that era:

[http://www.gnu.org/philosophy/right-to- read.en.html](http://www.gnu.org/philosophy/right-to-read.en.html)

The industry realised that pushing out the whole platform at once would cause intense opposition, and figured out that if they did it incrementally and convinced the users that it's "for your security", they could "boil the frog" while almost everyone remains blissfully ignorant. First code signing, then _enforced_ code signing, secure boot and TPMs, now SGX, ...

In fact, mobile devices today are already more locked-down than PCs, and both their SoCs and recent Intel CPUs (due to remote management/antitheft) contain unique identifiers which are even harder to disable than the PIII's serial number, yet the majority of users are not aware; furthermore, because they are "security features", anyone thinking of disabling them gets accused of being a terrorist/hacker/thief/pirate/etc.

Meanwhile, the media producing a near-constant stream of news about hacks, leaks, and security bugs has made the population easier to convince in giving up freedom for security... it's immensely scary, and I'm not referring to the security issues; it's the long-term effects of the effort to eliminate them.

<comment><USER5> I want code signing, TPM, and secure boot. I just want it to be exclusively under my control. CPUID, this could be useful for business asset management.

<comment><USER6> Asset management was one of the use cases presented by Intel. But, unless you are Intel, you don't manage processors as assets. You manage computer chassis or blades. Processors are just one more component.

The real reason it was there was all about DRM. The idea was that software or media would be restricted to a particular device.

</comment></comment></comment></comment><comment><USER7> This also reminds me that NT4 before SP6 had a check that CPUID leaf 0 returned a maximum CPUID value less than 4, and leaf 3 was taken for the PSN. When Prescott arrived, Intel had to add a MSR to limit the returned value.</comment>


Show HN: Twitter Auto Replies from Multiple Twitter Accounts Randomly - <AUTHOR> https://sensq.com <comment><AUTHOR> Sensq helps you to setup twitter auto-replies with custom triggers in some personalised messages by multiple Twitter accounts randomly in 10 seconds.</comment>


Avi Bryant Joins Etsy - <AUTHOR> http://avibryant.tumblr.com/post/21287677615/etsy

<comment><USER2> IMO the really big news here is _where_ he'll be working for Etsy- which is to say remotely, on an island in British Columbia. A stunningly beautiful part of the world, and a really interesting outlook on working in the 21st century- a startup hub this is not. Everyone should read the end of his post where he discusses his reasons and plans for Galiano Island.

I'll be interested to see how working remotely like this works out for both him and Etsy, because I wouldn't mind spending a little more time in the Gulf Islands myself one day...

<comment><USER3> "like Etsy sellers, who are empowered by the internet to run their businesses from anywhere, I'll be working remotely, with only occasional trips to Etsy's New York office. Not only that, but the default assumption for those on my team is that they, too, will be working from anywhere in the world."

The bad news is that this attitude isn't very common yet among employers. The good news is that it is getting better all the time. I live in far away (wrt SF) Bangalore and just turned down a remote job offer from a great startup in SF. (nothing wrong with the job, I just didn't have the time).

<comment><USER4> Etsy has always had remote working coders and they've always been aggressive about hiring talent. Their CEO is a genius at doing this, which is a great trait for a tech leader.

</comment></comment></comment><comment><USER5> Excuse my ignorance, but who is this and why is it interesting that he's working for Etsy?

<comment><USER6> He's the original co-founder of Seaside, the Smalltalk framework. He then went to work on a startup called DabbleDB and at Twitter. He's like the Steve Albini of the tech world. Really brilliant guy. He also gave a talk that was called "Rails is obsolete(so's everything else)" in 2010 I think.Check out his talks here: [http://blog.redtexture.net/2010/10/30/avi-bryants- presentati...](http://blog.redtexture.net/2010/10/30/avi-bryants- presentations/#Avi%20Bryant%27s%20Presentations)

<comment><USER7> Ok, who is Steve Alibini? (I know who is is, b/c I looked him up, but he is anything but a household name).

</comment></comment></comment><comment><USER8> "Not only that, but the default assumption for those on my team is that they, too, will be working from anywhere in the world."

I'm curious if this team has already been formed or if he will be looking for developers. This sounds like an amazing opportunity.

<comment><USER9> It has not been. I'm not starting myself until mid-June, and I do expect to be doing a bunch of hiring.

<comment><USER10> Avibryant: Etsy is great, but with the reasoning, why not Kiva?

<comment><USER9> Kiva probably would have been worth a mention in my post, yes. Etsy is where I could see an obvious way for me to have an impact, and so could they.

</comment></comment></comment></comment><comment><USER11> Etsy is a form of "micro-work" but it's never been particularly good financially for people who sell stuff on Etsy. I wonder what they can do for connecting sellers to each other to pool supply costs and identify each seller's likely consumers.

<comment><USER4> Barely any sellers are profitable on etsy. They're all housewives or hipsters that sell at amazingly low profit margins. It's a steal if you want to buy handmade stuff though.

<comment><USER11> I know! I love it as a place to shop, would never try to make money as a seller. But if they wanted to change that, they could -- run calculations for sellers as to how much they should charge to be profitable, all the stuff that the average seller wouldn't think about.

<comment><USER4> When you have a marketplace of 600K sellers, the competition is fierce. Etsy tries hard to make them profitable by offering classes online and attempts to lower costs of supplies.

I hope they can find a way to pool the cost of materials to bring low cost overhead to sellers. That would make the industry explode.

</comment></comment></comment></comment><comment><USER12> There is an opportunity for a service that handles the legal implications of remote workers. Some states have ruled that remote contract workers constitute a business presence. The implication is that they now have to collect & remit state taxes for online purchases. The service would legally employee the remote worker, setting them up as a contract worker, and handle the various state law quirks.

</comment><comment><USER13> I appreciated reading about Avi's thought process in deciding what he wanted to do next.

I'm in a similar place (minus the successful exit) and it's hard to figure out what is _worth_ working on. I'm contracting now, and it pays well and gives a lot of freedom to travel and just generally not work, but the projects are not exactly world-improving.

</comment><comment><USER14> My congrats to Avi. I still remember working with him at UBC's IT department. He's an amazingly bright guy.

</comment><comment><USER15> I wonder how much of Etsy's enlightened attitude is because CEO Chad Dickerson was until recently the CTO.

</comment><comment><USER16> I think it would be interesting indeed to see small distributed shops like what Etsy has approach the efficiency of Amazon. I'm certain it's not possible to quite match it because of inherent limitations, but I'm very curious about what can be done.

</comment><comment><USER17> Great writeup, Avi. Good luck with the new adventure, and thanks for telling me "you should start a company.." the last time we met, it was good advice to take :-)</comment>


Is This What We'll Be Wearing in the Future? - <AUTHOR> http://www.nytimes.com/2016/12/09/opinion/is-this-what-well-be-wearing-in-the-future.html?rref=collection%2Fsectioncollection%2Fscience&action=click&contentCollection=science&region=stream&module=stream_unit&version=latest&contentPlacement=3&pgtype=sectionfront&_r=0 <comment><USER2> Or we invent compact powerful batteries.

<comment><USER3> What happened to EEStor?

[https://en.wikipedia.org/wiki/EEStor](https://en.wikipedia.org/wiki/EEStor)</comment></comment>


How Hijacking Pages in Google Works - <AUTHOR> http://dejanseo.com.au/hijacked/ <comment><USER2> Very interesting!</comment>


I Delivered Packages for Amazon and It Was a Nightmare - <AUTHOR> https://www.theatlantic.com/technology/archive/2018/06/amazon-flex-workers/563444/ <comment><USER2> Comments here so far seem oddly dismissive of the article ("what's the point", "entitled millenial", "jealous", "click-bait").

But they're missing the larger critical points which are very newsworthy:

\- The author almost injured themselves with an overly heavy box because Amazon didn't provide them with a dolly, warn them they needed one, and if they did injure themselves the medical bills are their own

\- Amazon is asking them to deliver packages where parking without getting a ticket is a logistical impossibility and risk making negative $ for the day due to tickets

\- These kinds of safety and minimum wage regulations which have been hard-won over the past decades are being completely avoided by Amazon by (possibly wrongly/illegally) classifying them as independent contractors, which seems to be a scandal that laws/regulations ought to fix, but compulsory arbitration may be preventing class-action lawsuits which would otherwise correct the situation

<comment><USER3> Many HNers may lack self-awareness of their own privileged situation, working in a field where employees are often showered with benefits unthinkable in most other professions.

<comment><USER4> I've always been puzzled by this; Nobody seems to care about Joe average. Even worse is that saying that you are "disrupting" Joe average's world / life is regarded as a good thing. All these ideas to disrupt all seem to have in common that they are a race to the bottom for average Joe.

While some markets need to be torn open it's always done with a total disregard for the average Joe's who are caught in the crossfire and are paying the price for it.

<comment><USER5> If someone can disrupt a market that Joe's working in and provide the same (or better) service cheaper, why on Earth does he have an obligation to think about said Joe? That just sounds like a Copenhagen principle of moral entanglement to me.

<comment><USER6> Because he's a person. Because she has problems. Because he has a family. Because that's my friend and uncle and neighbor. What on Earth do you mean "why do we have to care about them?" Because they're real.

I get where you're coming from about the exasperatingly impossible web of moral obligations, but you can't give up.

<comment><USER5> > Because he's a person. Because she has problems. Because he has a family.

That's just appeal to empathy - any human has it, until he's a sociopath, but like any other basic instinct, it's human nature to reign over it and not let it run your life.

> Because he has a family. Because that's my friend and uncle and neighbor.

Most likely he's not - there are very few people who I (or you) would actually call family and care about in the way you care about family. This Joe is most likely just an anonymous person that you don't know or care about.

> I get where you're coming from about the exasperatingly impossible web of > moral obligations, but you can't give up.

I can't give up something that I didn't put on myself first.

</comment></comment></comment></comment></comment></comment><comment><USER7> I doubt this is a new observation, but what strikes me is that the US employment system is based on benefits via employment (healthcare, retirement).

The current "gig economy" trend removes these benefits from employment, and with a government currently opposed to public benefits, the US could be headed towards a problem within a single generation.

This race to the bottom (disruption) seems counter productive for anything but short term investment.

<comment><USER8> In the case of health insurance, it mostly came about because of wage controls during WW II. Companies couldn't offer more money in a tight labor market but they were allowed to offer fringe benefits like insurance.

401(k)'s history is almost wacky. It was an obscure provision in 1978 tax law and a benefits consultant figured out a way to turn it into something that companies could easily offer to employees as a tax-advantaged benefit.

Of course, once a benefit becomes the norm, it's almost impossible for individual firms to not offer it.

<comment><USER9> 401 (k) history is something I've wondered about. Why is it provided by the employer, as opposed to you choosing your own IRS-approved provider and telling your employer to send a portion of your check there?

<comment><USER8> I am by no means an expert but my understanding is that it's mostly a function of its somewhat accidental history. Which also makes things like rolling over 401(k)s from previous employers way more convoluted than it should be.

You do additionally have a personal option, IRAs, that you can establish at the broker of your choice that give you a lot more flexibility. You can probably setup payroll auto-deduction in many cases.

<comment><USER10> In my experience, it's not complicated at all to roll a 401k from a previous employer into a personal IRA at provider such as Vanguard, Schwab, etc.

<comment><USER8> I've done it and know others who have. It's "complicated" in the sense that it wasn't just click some things online. That may be a good thing from a security perspective but it's still a PITA.

</comment></comment></comment></comment></comment></comment><comment><USER11> I'm sure it's a nightmare for a professional journalist. And I don't mean that as an insult - it'd be a nightmare for me too.

But you know what's _more_ of a nightmare? Driving around to every retail outlet in a 30 mile radius, trying to convince them that you can be the most submissive and obedient out of the 200 applicants. It's hard to begrudge the gig economy for providing an alternative to that.

<comment><USER12> I've been running my own tech company for over a decade now, and prior to that my job was everything from cleaning toilets to changing lightbulbs. On paper it sounds terrible, but I was very happy.

The work environment matters a lot. The other people you work with matter. How you are managed matters. I think if gig software designers thought a lot about this, they would see a lot of improvement in worker retention and satisfaction.

<comment><USER13> This, and very well written! A lot of the complaints from the article are really all easily solvable issues. I mean, really? I need to click an app for an hour to get the block? Just run a lottery. And what do you mean I have to catch people around? Change the rules so that I need to make best effort (and document it), and that's it. And give customers your own numbers so you can forward calls just during the working hours (though that makes it look even more like the workers are your employees). I won't even comment on trouble with scanning codes.

Note that while this would make job a lot more enjoyable for workers, I still think everyone should enjoy the same basic benefits, no matter what kind of employment relationship they are in. But that could also be solved in other ways (basic income for example).

</comment></comment></comment><comment><USER14> Our economy, indeed much of our societal ethos in general, is rooted in the assumption that labor is a scarce commodity. This was true throughout most of human history, but it started becoming less true with the advent of the industrial revolution, and AI and automation will soon drive the last nail in the labor-scarcity coffin.

When labor is scarce, there are two consequences of that scarcity that make our current societal structure work: first, anyone capable of working possesses an inalienable resource (their own labor) that they can exchange for other goods and services in order to survive, and second, basing your economy on this kind of exchange (as opposed to, for example, slave labor) encourages people to work and be productive.

But when labor is no longer scarce, all of this changes in radical ways. Humans in general no longer have access to an inalienable source of wealth, and wealth becomes rooted exclusively in _ownership_ rather than _production_. We essentially revert back to a slave-like economy, with machines playing the role of chattel slaves. But for non-owners, for people without capital, there is no longer any recourse. Sooner or later, something is going to have to give.

There are only a very few things that humans can still do with more economic effectiveness than machines: drive vehicles, pick fruit, clean houses, and fold shirts. Really, that's about it. And technology is busily chipping away at the first one. Sooner or later, we are going to have to make a fundamental change in how our society is structured, or things will get very unpleasant for a lot of folks.

<comment><USER15> Was labour ever scarce? Was work ever an inalienable form of wealth?

Why did half the world go through communist revolutions, is that because workers were too wealthy?

<comment><USER16> _Was labour ever scarce?_

Yes after 1/3 to 1/2 of Europe died from the bubonic plague. Workers were scarce so they were able to demand better pay and working conditions. Which is why those who run our economy would prefer to keep labor plentiful.

</comment></comment></comment><comment><USER17> A lot of jobs suck. I worked at a KFC for 3 years and a Gameworks, two full time jobs, for 3 years before I began my tech career. I got paid $6.50/hr at KFC and $9.00/hr at Gameworks. No health insurance, benefits, I had to use my own car often to do stuff for them both. It was hell and I hated it. It's sad but these jobs always exist and probably will for at least the near future.

That said, Amazon should be doing a better job to educate people on how to be successful in these jobs and should adapt the jobs depending on city. It makes no sense to have people driving around in their own cars in SF delivering packages. They could go a long way by hiring bike couriers and doing a better job at distribution. It sure doesn't sound like last mile delivery when they are forcing people to drive down to south SF to get the stuff.

If I was an engineer at Amazon working on this flex program I'd be embarrassed. If you filter out the entitled and emotional undertone of the author there are many matter of fact things that are just poorly designed and executed on the designers of this system. Sitting at home and refreshing an app? Really? That hour you keep people occupied with a pointless task because of your poor design is an hour you've burned of their time that could have been spent doing something productive for either themselves or Amazon.

Not doing address validation, poor distribution logistics, poor use of labor. I guess there is no external pressure to fix anything until they have burned through the labor pool in SF and no one wants to work with the dysfunction? Wonder when that will be...

<comment><USER18> Kind of a wild west for DIY local delivery jobs. I've talked to the UPS guy several times about these new logistics businesses that have popped up as delivery partners for Amazon and he's said it's a sh%tshow sending drivers off to delivery all over the city, total chaos.

Density populated areas, airports, sporting events, etc all have had to make changes to deal with Uber and Lyft traffic so the city handing out parking tickets doesn't solve much. Seems like heavily populated city addresses & building owners need to solve the last 10 yards because it's not going to slow down.

</comment></comment><comment><USER19> > (None of the 19 videos I had to watch to be a Flex driver recommended > bringing a delivery cart or a dolly.)

I wonder why that is. Do they think it's so obvious that it's not worth mentioning, or they really don't care?

<comment><USER20> Given the myriad articles I've read about working conditions in Amazon across the organization, it's most likely the latter.

</comment></comment><comment><USER21> Some corporations derive a huge benefit from the gig economy - either as a central part of their business (Uber drivers) or enticing more customers from competitors (Amazon with great a delivery service).

The losses on the gig worker (benefits, holiday entitlement, etc.) need to be borne by someone - and it doesn't make sense, in my view, to make either the gig work or the government (the wider public) pay for it.

I would suggest that all companies using gig workers (anyone doing work for a corporation without a proper employment contract) need to pay in to a mandatory fund to cover the lost benefits. To me its obvious that the cost should be borne by whoever is extracting the greatest benefit.

</comment><comment><USER22> > Amazon also does not break down how much he receives in tips and how much he > receives in pay from the company—for all he knows, people are tipping him > $20 and Amazon is paying him less than minimum wage.

Wow. Do other gig economy jobs do this? Uber and Lyft? I may just start carrying cash to leave tips now.

<comment><USER23> I believe Lyft does not take any cut from the tip.

</comment></comment><comment><USER24> I recently saw a 6-year old boy delivering a package for Amazon. He got out of a regular van, dropped off the package, and bounded back to the car. I guess he was probably the child of one of these Flex contractors.

This happened just off Sand Hill Rd., as it happens.

</comment><comment><USER25> Reminds me of this episode from Vice news [0]. They don't get paid for car maintenance, gas or any other unforeseen expenses while delivering packages.

[0] [https://news.vice.com/en_us/article/kzyw4y/amazon-is- imitati...](https://news.vice.com/en_us/article/kzyw4y/amazon-is-imitating- uber-to-drive-down-the-cost-of-delivering-goods)

</comment><comment><USER26> "Flex is necessary."

I stopped there.

</comment><comment><USER27> So what? What's the point of these articles? You could write the same about anything."I cleaned houses for a week and it was a nightmare", "I worked as a store clerk for a week and it was a nightmare"...

This is cheap click-bait journalism trying to get on the wave of writing something about Amazon labor conditions.

Modern American journalism is a joke. Many things in this country are wrong and people can and should rightfully complain/voice their concerns about those things, but this type of journalism is just the equivalent of setting a house on fire just to have the exclusive that you were the one who covered it first. How can we trust any news outlet right or left, if their motivation is only just clicks and impressions?

<comment><USER28> The difference is that Amazon is crushing local store retail everywhere it does business, which is everywhere, and spends large amounts of effort on brand management to softpedal the fact that this domination is largely thanks to its ability to squeeze more from its labor force. We'll leave aside how this crushing of local retail was also aided by its ability to avoid local taxes for many years while it was growing. All of this makes it very fair game for criticism, especially when Amazon touts the "great earnings" of being a freelance driver for them.

If there was some giant corporation that was dominating house cleaning nationally and touting the great pay of cleaning toilets for them as a freelancer, that would certainly warrant some inspection, too.

<comment><USER16> _Amazon is crushing local store retail everywhere it does business_

Around here the local retail businesses Amazon is crushing are owned by large corporations, who previously put the small, independent retailers out of business decades ago.

The same way Netflix put Blockbuster out of business, who put the small, independent video renters out of business long before.</comment></comment></comment>


Do Elite Colleges Lead to Higher Salaries? Only for Some Professions - <AUTHOR> http://www.wsj.com/articles/do-elite-colleges-lead-to-higher-salaries-only-for-some-professions-1454295674 <comment><USER3> Getting a degree from an elite institution does three things:

1) It puts you in a network of other people who went to the institution, oftentimes people who have connections that can help you in life

2) It gives you a piece of paper that shows you can follow a long term plan and execute on it, that other people recognize as a difficult long term plan to execute.

3) Gives you an icebreaker when going to interviews where you can talk about either how you and the interviewer went to the same institution, or rival institutions, or you can talk about how your elite institution was different from theirs and the same.

What you don't get is a "better education". (Edit: Some have pointed out rightly that I should differentiate here between top non-elite instututions and the ones that are diploma mills, so to be clear, what I'm saying doesn't apply to the diploma mills.) You do the same work as the folks at the less elite institutions. Maybe you do it with slightly smarter people who help you learn new things that you wouldn't otherwise, but most of the "less elite" schools still use the same textbooks and materials. And heck maybe your professor wrote the book so you can get more detailed answers, but it's unlikely that that access gives you a significant leg up unless you take advantage of it.

So it makes sense that in fields where skills matter, the elite college doesn't add a lot of benefit, but where connections matter, it does.

<comment><USER4> "What you don't get is a "better education". You do the same work as the folks at the less elite institutions."

Is this true? When I look at some of the prestigious universities that have some of their coursework online, some of the courses appear more rigorous and challenging than the large state school I went to. Perhaps this challenge does not amount to better education, but it certainly seems more challenging.

<comment><USER5> Judging from what I've seen on MIT's OCW and Berkeley's webcasts, students at the best schools are getting a considerably better education in the sciences than I did at a small state university, and students at St.John's are getting a much better humanities education than we got.

What matters even more though is the student body. Hanging out with a bunch of really smart and dedicated young people for 4+ years gives one a huge leg up intellectually.

At my small school there were very few smart people to talk to, it was very lonely and insular. By comparison, time I spent hanging out around Berkeley and PENN were very exciting intellectually.

<comment><USER6> Is UCB "elite"? It has a student population the size of the whole Ivy League combined.

<comment><USER5> Enrollment at UCB is 37k, which only puts it slightly above Harvard (21k), Columbia (22k), Cornell (20k), and UPENN (20k).

Also, UCB outranks most of the ivyleague in the sciences, engineering and computer science on most measures --

[http://www.topuniversities.com/university-rankings/world- uni...](http://www.topuniversities.com/university-rankings/world-university- rankings/2015#sorting=faculty_value+region=+country=+faculty=2453340+stars=false+search=)

[http://www.shanghairanking.com/FieldSCI2015.html](http://www.shanghairanking.com/FieldSCI2015.html)

[http://www.usnews.com/education/best-global- universities/ran...](http://www.usnews.com/education/best-global- universities/rankings)

</comment></comment></comment></comment></comment><comment><USER7> Interesting article. This confirms something I've suspected for a while, which is that elite colleges matter immensely if you don't study STEM.

You could turn this into a different question - is the value of an elite college that it allows you to major in something other than STEM? And maybe one step further - if elite colleges differentiate themselves from other colleges through the prospects they offer non-STEM students, does that mean it may be rational for very elite students to avoid STEM, which serves as an equalizer?

I have noticed this anecdotally by observing the prospects of strong students who went to good but not elite schools. You could be a very strong international relations student from a mid-tier UC (say, UC Davis or UCSD), but your prospects really won't be as good as they would be if you'd gone to Yale. It isn't game over, but Yale is a huge boost. But if you major in CS, they will be the same…

… or will they? There certainly is still a difference in kind, just not one that is as readily apparent to people who see a bunch of squiggles, symbols, and text flashing by on a screen. There is an easily observed difference between being a the director of the American Music Heritage foundation (an invented title and organization) at $130k a year and a senior crud bug fixer for $130k a year. But these differences exist within tech as well. An interesting data science position where you have a lot of autonomy is a very different life from checking in with the scrum team every morning to talk about whether you've figured out why the config file changes are making the computer say "ERRNO 63: gcc header updater missing", even if they both pay the same.

Do elite colleges lead to a hidden difference in kind within the tech field, similar to what is observable outside of tech?

<comment><USER8> There's a difference between the prospects of an okay school vs elite school for CS. The gap just happens to be much smaller.

In our industry there are many people who do just fine with no CS degree, CS degree from obscure schools, or degree at all. Almost no other industry can say that. However, in general, elite school means better opportunities, better classmates that motivate you, better companies recruiting, etc. The difference exists, it's just "smaller" and evens out with time.

Remember that in our industry you can move to $100k+ after 3-5 years of experience (of course, if you put in work, network and get better, but the demand for "mid/senior" devs is big). I've found that your background rarely matters at that point.

<comment><USER7> I agree with you about salary. You can move up in salary and title, and the data here seems to suggest that it won't make a huge difference whether you majored in CS at MIT or San Jose State - you need to go to a proper program, sure, but prestige isn't nearly as big a factor as it is in many other fields.

That said, I'm not sure you're responding to my question, which is whether there is a hidden difference _in kind_ rather than in salary. For instance, your background may not matter if you're moving up to what I cynically describe as "mid/senior crud big fixer", and it may be that those jobs _pay_ as well as "mid/senior data scientist" who works in an R&Dish role without looking deadlines or scrum tickets. Even if both earn the same salary, I consider one role to be much more desirable than the other (though I actually do kind of enjoy chasing down bugs sometimes).

Does the MIT grad have a better crack at the more interesting, R&Dish job with greater autonomy, less micromanagement, fewer deadlines? It's a question, not a conclusion (I suspect it's true, but I acknowledge that I don't have the data to support it). If so, I wouldn't say background rarely matters - it does matter, but it won't show up in the numbers if all you're looking at is salary.

<comment><USER9> I went to Stanford. It doesn't get me promotion. But it _does_ get me interviews. So indirectly yeah I earn more because of it, since I'm in the short list for many job applications.

</comment></comment></comment></comment><comment><USER10> What a terribly flawed article. They choose arbitrary universities for each major. The number of "elite" universities is small enough that the top 5 of each could trivially be added to the article. For example, in the CS table, where are Stanford, MIT, and CMU? Given how cherry-picked the data seems to be, I can only infer that the data-gathering methodology was even more flawed.

That's not to say that attending a prestigious university should, in and of itself, guarantee a higher salary. But there are so many positively correlated, salary-increasing traits with attending an elite university, that this article does not pass the smell test.

<comment><USER11> [From the article:]

> For STEM-related majors, average earnings don't vary much among the college > categories.

Perhaps average or media earnings are not affected much, but what about the outliers?

Bill Gates and Mark Zuckerberg went to Harvard. Stanford had Larry Page, Sergey Brin, William Hewlett, David Packard, Leonard Bosack and Sandy Lerner, Peter Thiel, Reid Hoffman, Andy Bechtolsheim and others.

One thing is good state schools have good people coming out of them as well - Bill Joy and Eric Schmidt went to UC Berkeley, Max Levchin and Marc Andreessen went to UIUC. There are some good state schools you see a number of successful tech people coming out of, they're not all expensive private schools. They all have a good reputatiion though, whether public or private.

</comment></comment><comment><USER12> These salaries on the image on the right seem extremely high. Half of Colgate Social Science majors are in the top 5% of income earners? Half of Tufts humanities majors? These are great colleges, but it doesn't pass the smell test.

And, looking at the actual data collected, the image on the right doesn't hold up. The study must have collected data from hundreds of colleges, yet there were only 7,300 observations. Sounds like a lot, but assuming that there were 200 universities (probably a low estimate) and 8 categories of majors, you're only looking at 4 to 5 observations per college per category. And these observations were probably unevenly distributed. So it's inevitable that a few colleges will have extreme "median" reported incomes, as the table on the right shows the highest incomes observed in each field.

So while the percentile distinctions cited in the article between selective and less-selective schools are likely accurate, the numbers on the image of the right-hand side - the really striking part of the article - have almost no statistical validity.

The WSJ is leading people to a shocking conclusion even though the real finding - that there's a 12%-18% difference in earnings between selective and less-selective colleges - is much less extreme. (It's also likely making a lot of people feel poor... one of the strange selling points of the WSJ that in this case simultaneously gets eyeballs on PayScale.com)

<comment><USER13> >Half of Colgate Social Science majors are in the top 5% of income earners?

I went to a New England liberal arts college, like Colgate, and the most popular major at my school was Economics, which is categorized as Social Science. Most of the Econ graduates went for jobs in management consulting or investment banking, as those companies would come to recruit on campus, and tend to already have a solid number of alums working there to begin with. In fact, Dick Fuld, the ex-CEO of the infamous Lehman Brothers investment bank, was a trustee on the board of my school, and hired many alums, as did Goldman, Morgan Stanley, Credit Suisse, etc.

For banking jobs straight out of undergrad, you don't have to have a deep understanding of quantitative finance. It's more about having a soiid GPA, a demonstrated interest in the topic and interest in learning, and the capacity to work very, very long hours.

<comment><USER12> PayScale is basing its median income data for Colgate grads with 10+ years of experience off of 16 observations. There are likely only one or two observations going into the Colgate Social Science salary in the article.

[http://www.payscale.com/research/US/School=Colgate_Universit...](http://www.payscale.com/research/US/School=Colgate_University/Salary#by_Years_Experience)

In addition, only 25% of Colgate grads go into business-related fields after graduation and the number of those going into high-profile management consulting or investment banking is likely under 100 people a year. The number of people making huge piles of money in general is very small and isn't as correlated with education as people tend to think. Hacker News has a wildly skewed view of this and dishonest "statistics" like these generally go unexamined.

</comment></comment></comment><comment><USER14> I sometimes feel we are trying to externalize all of society's ill on solving it through college/education/teachers.

It seems almost ridiculous that a 17 year needs to make decisions that even someone with a Phd with economics won't be able make.

I wish both kids and parents spent more time actually figuring out how to optimize learning rather than spend their energy thinking about nonsense - <USER2> almost like a gambling addiction ?

I remember when I was in school I used to watch students spend a year writing college essays, preparing for SATs, shelling out insane amount of money for tutors, etc.

Meanwhile I just concentrated on mathematics and programming to actually make myself valuable to society.

Most people will be surprised when they realize how far they can get with books.

Books are not as efficient as learning directly from Newton - but they are 1/1000 the cost.

I know the economy would collapse tomorrow if everyone just stopped going to school and spent their evening reading books but humanity has bigger problems to solve then the economy.

<comment><USER15> The main value-add of going to a university isn't attaining an education, it's gaining access to a strong network of educated people. This is something which can't be replaced by self education (which, you'll actually be expected to do at university anyway).

<comment><USER16> The vast majority of universities are not going to get you a strong network. Additionally, the vast majority of high school students are fed a line that focuses on the academics and minimizes or ignores the networking.

<comment><USER17> There are networks to be made everywhere. They arent just going to be gifted to you no matter what school you go to.

<comment><USER16> When there are only 13 EEs in your graduating class, no there aren't.

Also, I never said anything about having things "gifted", and I'm not sure how what I said gives that impression. In fact, I was specifically complaining that common college prep for high school students does _not_ tell them about these tangential things they should be doing at the next level.

</comment></comment></comment></comment></comment><comment><USER18> I know for fact that engineering students who attend universities like Carnegie Mellon, Waterloo and Stanford, receive way more opportunities to work for major companies early on versus their peers at other public and private universities. This is purely built on the reputation of these universities and there history as feeder schools to Microsoft, Apple and Google. Its a self fulfilling prophecy kind of because the top students only want to go to these universities, keeping them the best.

</comment><comment><USER19> One thing I always think about is to completely separate the "educational" institutes from the "certificate emitting" ones. Currently, it is the university's job to not only educate, but also to prove the student was educated (through the certificate/diploma). Wouldn't it be much more flexible if educational institutes focused only in _educating_ , while other (unrelated) institutes focused only in testing and emitting certificates? This way, _how_ the individual learns the subject does not matter, as long as he or she is able to get certified.

This is what already happens in (at least part of) the technical certificate industry: people pay to make tests and get certified. This seems like a more intelligent approach.

<comment><USER20> My experiences (and intuition) suggest that you'd find a cottage industry springing up to "teach the test (and nothing extra)". Combining the functions of education and certification, as conflict-of-interest as that appears, largely avoids the problem.

Any certification process for a non-trivial field is necessarily a sampling process. If you allow students to bypass the education part and they just have to pass the sampling test to gain some valuable credential, I think you'll find an industry springing up to shortcut the education process in favor of the "just barely passing the test" process.

<comment><USER19> When you say that any certification process (for a non-trivial field) necessarily becomes a sampling process, it is implied that this is already happening, i.e., there must be already a sampling process going on in the current universities. Decoupling may not solve this "problem" (if you consider this a problem), but it also does not create another one. It simply makes it more flexible so people who could not afford the education process for any reason, but were able to educate themselves by alternatives means, can also try to get certified in the level they wish. Also, the possibility of being certified by top tier certification emitters works as another motivator for people to strain and study harder (as going to top universities is not even remotely possible for most people, at least being certified by top certificate emitting institutes is probably less expensive (given the educational process is the more expensive one), and thus possible).

In other words, I believe you are right when you point that the educational institutes would narrow their focus to cover only the necessary bits to get certified, but I don't see this getting much far from what we have already; and from the point of view of the certificate emitting institute, it is desirable for the top ones to not emit certificates to anyone (in order to build a valuable brand name), having them to focus on elaborating challenging tests. Of course there may be "certificate mills", but again, this already happens, just with less flexibility.

What really picks me is that, at the end, it is all about the value people give to these certificates. Nothing would prevent society (including employers) to value more the educational process than the testing one; nothing would prevent the educational institutes to also emit certificates, thus coming back to where we are; but employers should not rely purely on certificates anyway, then I believe there is hope for the overall proposed model.

<comment><USER20> Take a typical thermodynamics course. Right now, MIT teaches a full term thermo course for mechanical engineers. The exams, including the final exam, cannot possibly test all aspects of thermo, so they sample, but they sample knowing that the students have been exposed to (via p-sets and lecture) the parts of thermo not directly tested.

Now, decouple the exam part and have someone else issue the same exact exam as the MIT profs give, but without requiring the lecture or p-set component. Now, I can imagine there would be a profitable industry player, call them the "Minimum Instructions for the Test", who might teach you only the three laws, enough math to work out a Carnot cycle problem, and the background for one energy balance problem, in other words, just enough to pass the certification exam.

The students from Massachusetts Institute of Technology will have passed the same test as the students from Minimum Instructions for the Test and yet I can have confidence in the former's ability to solve a basic on-the-job thermodynamics problem and not in the latter.

IOW, I think it is, in effect, creating a new problem by eliminating the lecture, office hours, section meetings, and problem sets aspect of the education process and focusing only on the final exam aspect. I'm really not trying to erect and eviscerate a strawman here; apologies if it seems that way, but I'm trying in this post to be very concrete about the problem I see with test-only certifications.

<comment><USER19> You are very clear. To put in abstract terms: you argue that the education process carry some value which is difficult (or even impossible) to test, making it inherently more valuable than the certification process. I can't say I completely agree with the argument, but I can understand it.

I still think that the tests, if elaborated by entities fully dedicated to them, could grow to be way more advanced than they are today. But even in the case where this growth does not happen, having separate entities dedicated to perform test-only certification could be beneficial.

By the way, if you still read this: suppose you have student A and student B. Student A attended to all classes, did exercises etc. but failed the tests. Student B missed all classes, but passed every test. Do you think student A should be certified? What about student B? Who would you hire?

<comment><USER20> Student A should not be certified.

Whether student B should be depends on the quality and thoroughness of the test, but assuming that is high, then yes.

Whether I'd hire student B, who has shown a propensity to not show up to classes, depends on why they missed them and whether I think that represents a risk in the work-world. Having someone who can pass the test but can't bother to show up to work doesn't help me very much either... ;)

</comment></comment></comment></comment></comment></comment><comment><USER21> I sometimes feel like I have an inferiority complex for not attending a prestigious school. Hopefully it'll come down to my actual skills and not just the name on my degree when it's time to find a full time job.

<comment><USER22> Generally speaking, you won't be happy working at a place that puts too much value into a college or university's credentials.

<comment> FLUX-YOU Only if you're the only one that's not in the club. Else, it's just that: A club. And it works for some.

</comment></comment></comment><comment><USER23> As a guy who went to a state school, the three main benefits of attending an elite school are:

1\. People will prejudge in your favor, the more average the individual the more they will do this. This is a very strong effect, and the primary benefit. I don't mean this in a cynical way. It's a great thing if you can get it.

2\. Your classmates in school will be smarter and think bigger, which has a significant motivational effect. A larger percentage will go on to have significant achievements. Most of your classmates at an elite school will eventually accomplish nothing, just like a state school.

3\. Prestige-oriented institutions will favor you heavily, for example banks, law firms, and consultancies. They really do need people with great social skills and a strong work ethic, which is the same filter that elite schools use.

I'm on vacation right now, lack the time to add references.

</comment><comment><USER24> Honestly, this is about what one would expect. However it is somewhat concerning that they are using the criteria of selectivity to define the prestige of a school. While MIT is a very selective school, it's not a liberal arts school. You can probably get a history degree there but the quality of that program probably is at best on par with a less selective school, with a strong history program. Seems like what you should be comparing is whether going to a school with a top rated program for a given major affect future earnings? University of Washington probably isn't a top 50 school according to most lists. But they mint science and engineering grads. Especially CS. I'd expect higher earning from a CS grad there than one from say Brown.

<comment><USER25> > University of Washington probably isn't a top 50 school according to most > lists.

But it is pretty damn close. UW currently clocks in at number 52 [1].

[1] [http://colleges.usnews.rankingsandreviews.com/best- colleges/...](http://colleges.usnews.rankingsandreviews.com/best- colleges/rankings/national-universities/page+5)

</comment></comment><comment><USER26> I went to a mid-size state school in Texas for music before switching to CS. The school isn't known for CS, but it turned out that we have a better post- grad employment rate that UT Austin, though I'm not sure if that says much given the size difference. Here are my thoughts based on my experience.

Pros for the more prestigious school:

1- A well-known school will mean that you're more likely to get an interview and an offer fresh out of college, everything else being equal. There are smart people in less-known schools, but there are more that skate by also. A good student that went to an average school could still find a great job, but would need to try harder (and face more rejection) to do so.

2- A well-known school will mean you will have a better network of students, and probably be more likely to start personal and group projects that will look good when you start the job hunt.

3- More research opportunities. Important if you plan on going to grad school.

Pros of the less prestigious school:

1- Way less money. I can't imagine that going to a great school without a ton of help from scholarships and grants would even be remotely worth it.

2- Smaller class sizes. I could go to my professors whenever, and they knew me quite well even though I almost never went to see them. The entire department was on one floor of a fairly small building. You don't have to work to get your name known or get help.

I'm sure that a prestigious college has better students and a better network, but the education given by the institution may not be that different. The tuition difference is huge, and I would guess that differences between two talented students with different educations would disappear after a few years in industry. If I did it again, I would probably go to a different school, but not one that was much more in tuition. Although I don't think my education held me back. I probably would have had a few more interviews and maybe one more offer (that I did interview for) with a different school on my resume.

</comment><comment><USER27> The article leaves out a huge population of students from the elite universities that end up going into finance. In 2014, 31% of Harvard grads took jobs in finance ([http://www.washingtonmonthly.com/magazine/septemberoctober_2...](http://www.washingtonmonthly.com/magazine/septemberoctober_2014/features/why_are_harvard_grads_still_fl051758.php?page=all)) where the salaries are higher than most other occupations straight out of college. And then if you look at the people who are in high finance like private equity and hedge funds where people 5 years out of college can easily make $400k+, most of those are from elite top 10 universities.

</comment><comment><USER28> 1\. elite schools allow for career paths outside their major, i.e. it is common to see a history major from harvard take a job as an analyst at an investment bank that won't even look at the resume of a business major from a state school.

2\. if you go into a field with a low variance in pay (say teaching) an elite degree may not make you more money, but it may dramatically increase you likelihood of landing a job, or getting a more desirable job despite similar (or lower pay) i.e. at a public vs. private school

</comment><comment><USER29> The article's writers say, "But for fields like science, technology, education and math ..."

Then, later, without revisiting this term, they say, "What we found startled us. For STEM-related majors ..."

I wonder whether these writers actually think that's how "STEM" is commonly defined.

[https://en.wikipedia.org/wiki/Science,_Technology,_Engineeri...](https://en.wikipedia.org/wiki/Science,_Technology,_Engineering,_and_Mathematics)

<comment><USER30> It seems to have been corrected; it may well have just been a typo.

</comment></comment><comment><USER31> Interesting, although I can't help but shake that in at a pretty big disadvantage going to my Midwestern College.

I read about how the biggest advantage to elite colleges is networking as opposed to the actual education, but then the network itself is really significant, like having investment firms as alumni as opposed to DevShop founders.

Is there a way for a student who isn't at an elite college to mimic the elite like network?

<comment><USER32> Talk to your friends. They may not be hanging out at top tier tech companies, but they are doing something.

I went to school with: a DA, guy who owns an engineering firm, a big Union lobbyist, bunch of social workers, a deputy commissioner of a large government agency, regional bank vp and a few other things.

Not Steve Jobs, but good contacts with a good network. You can make lemonade there.

</comment></comment><comment><USER33> Related:

[http://www.economist.com/news/business/21651207-book- persist...](http://www.economist.com/news/business/21651207-book-persistence- elites-unexpected-guide-getting-good-job-how-join)

[https://hbr.org/2015/10/firms-are-wasting-millions- recruitin...](https://hbr.org/2015/10/firms-are-wasting-millions-recruiting- on-only-a-few-campuses)

</comment><comment><USER34> These results don't even pass the smell test. Ostensibly, going to an elite college matters for social sciences majors, but Harvard is at the bottom of the list?

<comment><USER35> You're reading it wrong. Harvard is 4th from the top.

</comment></comment><comment><USER36> Well here is a list of schools vs. salary: [http://www.payscale.com/college- salary-report/bachelors](http://www.payscale.com/college-salary- report/bachelors)

I think there are other complicating factors: if you go to school in a high paying area and end up staying in the area, then you get higher pay no matter the school.

</comment><comment><USER37> So what about going to non-Elite College for Bachelors and going to a Elite College for Masters? Seems like a better cost/benefit ratio, considering Masters is only 1 or 2 years and thus doesn't cost as much.

<comment><USER38> > So what about going to non-Elite College for Bachelors and going to a Elite > College for Masters?

That may be problematic as a plan, if (as I've heard is the case) elite graduate programs are somewhat biased in admissions to elite undergraduate programs.

> Seems like a better cost/benefit ratio, considering Masters is only 1 or 2 > years and thus doesn't cost as much.

Graduate programs tend to, at similar schools, have a substantially higher cost per year (though may also offer more opportunities to offset that cost) than undergraduate programs; a masters, despite less time in residence, can easily cost more after the bachelors than a bachelors at the same university would cost.

</comment></comment><comment><USER39> TL;DR

Not even Ivy League can prepare you for white board interviews.

;)

</comment><comment><USER40> College degree matters way more than people like to admit. It matters in tech. If you get hired at google out of CMU, you are going to work in a better group with higher salary than a state school grad. Most elite finance jobs require a top degree, as do consulting, and business development/strategy groups at large companies. Any sort of investing job requires a good pedigree. Such a myth to pretend otherwise. Ofcourse there are outliers, but by and large top jobs go to top degrees, regardless of who is better than who.

I should make it clear im talking about jobs that pay 300k+. Below that and it isnt a highly selective enough for top pedigree to be such a huge deal.

<comment><USER41> What are you basing that on though? The article looked at "7,300 college graduates 10 years after graduation" and found that:

> For STEM-related majors, average earnings don't vary much among the college > categories. For example, we find no statistically significant differences in > average earnings for science majors between selective schools and either > midtier or less-selective schools. Likewise, there's no significant earnings > difference between engineering graduates from selective and less-selective > colleges, and only a marginally significant difference between selective and > midtier colleges.

<comment><USER40> I know a good amount about the tech scene in nyc. It works like this, you can get paid a bunch by google or fb, maybe amazon. Sure if you make it in as a state school college grad you get paid. But developers in finance working on the actual trading models who make 300k+ almost exclusively went to top schools. Look at a front office development team at any quant fund.

<comment><USER42> The guys working at quant funds tend to have ph.d.s, in my experience. Some are certainly from state schools (UT Austin).

<comment><USER43> Anecdotally, I am currently an undergraduate in a top 10 CS department and I have several friends who have $160k+ job offers straight out of undergrad at quant firms.

</comment></comment></comment></comment></comment><comment><USER44> So one could get hired in biotech, finance, law or corporate IT without an ivy league degree?

OK, very few people are smarter than an average (but not the best) ivy league students, without having that exceptionally good training places like MIT or Yale offer, but these people are outsiders, marginalized by modern practices and social institutions.

They end up making good sandwiches, like that character from Atlas Shrugged, because they habitually striving for an optimum, no matter what they are doing.

In the field of OSS we have a few well-known names - recall a project with uncommonly good theoretical understanding and exceptional attention to details and you will find one (LuaJIT, nginx, redis, OpenBSD, good parts of Haskell base libraries, etc, etc).

All I am trying to say is that elite colleges phenomena is a social construction that works for society which believe in it. One has to conform if one wishes to be a part of such a society.

Less traveled pathways are much harder and usually are leading to unexpected and yet unknown.

</comment><comment><USER45> Is it just me or is there no discussion of the salaries being adjusted for, at least, rough cost of living? I am guessing that all we are really looking at is the effectiveness of the Universities placing people in high salary markets due to cost of living.

</comment><comment><USER46> It also worth mentioning that using something as mundane and stupid as a _salary_ as a gauge of success of the top universities alumni is totally incorrect and defies the very purpose of the universities.

A much better way to measure the quality is by a number of papers published in top journals (by the alumni, no the university itself), number of Nobel prizes won, etc.

Universities must produce academics (i.e., salary is supposed to suck anyway).</comment>