249 karma · joined June 23, 2012
That leaves out the other - probably more significant - reason - it's provided because it can increase the (real or perceived) value of compensation packages without spending scarce cash.
"Lack of equity might cause an employee to feel left out and/or poorly compensated." ... uhh... or they might not have joined the company in the first place?
I think it's silly to simply sort programmers into two buckets.
It does make a lot of sense though to try to attract and retain good programmers though - having a programmer who's at the 75th percentile of productivity instead of the 50th percentile is going to give you a big boost in productivity if productivity is high variance. It also makes sense to try to match programmers to projects that they have good aptitude and motivation for.
Also, if there's significant arbitrage, it will also reduce peak prices - because of reduced demand, and also because of reduced costs of expensive additional capacity. I.e. it can reduce energy costs for people who don't use it.
... what? ReQL and SQL are both declarative query languages: I don't really see the author is getting at. Is there an implication that SQL isn't declarative?
The only real difference is that the API is based around chaining function calls rather than expressing what is needed as a string - there are many SQL query builder APIs that will let you build SQL queries by chaining together function calls.
I've seen all sorts of failure modes with that:
* People asking overly broad questions, e.g. if they are having trouble using, say, a dictionary class: "How do dictionaries work?" rather than "I'm trying to do x with a dictionary and I can't figure out how to make it work - I tried the put() method but it doesn't do what I thought." This makes it very difficult to dig into what's actually being asked and provide a relevant answer.
* People not admitting what they don't know. E.g. maybe they just don't have a clue what a dictionary is, yet won't admit it.
* People making a lot of assumptions and not articulating them. This tends to manifest as a really specific question that doesn't make sense. E.g. "I tried to build a spellchecker and dictionary is not returning the right thing." Then it turns out they assumed dictionary was prepopulated with the English language. This is even worse if the person can't/won't explain their thought process when prompted.
* Not reading any of the docs. I ran programming tutorials at one point and it was remarkable how many questions would have been answered by the introductory paragraphs of the tutorial if they'd read them instead of skipping it then spending 10 minutes struggling with a problem that didn't make sense to them.
* Unwillingness to talk through things systematically, e.g. explaining code line-by-line. It's surprising how often people will ask for help, then lose patience with you once you want them to spend any amount of time explaining things. This is enormously effective - half the time they realize their mistake on their own.
I personally find the most difficult people to work with are the people who have trouble filling the gaps in their knowledge themselves AND are evasive when they don't know something.
I wouldn't present on a technical topic without preparation, because I'm not going to do a good job of explaining it or communicating the ideas - I'd be wasting the audiences time. Same with interviews - you need to be prepared to explain your work and put your experience in as favorable a light as possible.
See Figure 1 at: http://psycnet.apa.org/journals/psp/77/6/1121.html
Also, $100,000-200,000 a year is the range you'd make at those companies and have more job security and income consistency, so I'm not sure what your point is.
Edit: I've seen exactly the same thing happen with faculty hiring, it's a bit stranger that it would happen with grad students since it's easier to move the bar year-to-year there.
Whether a candidate can reason about the correctness of their code without using a debugger is a useful data point though. Both in a more abstract way and by manually tracing at least part of the program instead of stepping through it with a debugger. If you struggle to manually trace code in your favorite language, that raises some questions in my mind.