Not true. I've got a Ph.D. in theoretical physics, am very math heavy, created a number of algos for my work over the last 25+ years (in physics sim, bioinformatics, systems management/orchestration, etc.), run sessions at an ACM conference, yadda yadda yadda.
Two google interviews, and nothing. From what I hear from other people I consider way smarter than I, they also got nothing.
Google has a much copied process, but as a creator of something of huge value notes:
Mebbe their filter isn't quite as good as they think it is. Talking to a number of absolutely brilliant engineers who didn't get hired, it likely has nothing whatsoever to do with talent, algo knowledge, mathematics, etc. There are other factors.
Being an above 40 guy probably didn't help me, google and others seem to have lots of trouble with ageism.
Dan's article was not specifically about being the "top", rather, what does the "top" mean in context, and how do people judge. What is the opportunity cost of doing this? As he points out, as I point out, it can be very high.
The smartest programmer I met in my first decade of work, was a person who had a high school diploma. No college degree. The guy was brilliant, personable, humble. He is quite successful now, and still doesn't have degrees. Chances are, he doesn't have formal education around the math/algos, but has picked up everything he knows.
At the end of the day, hiring is something of a crap-shoot. Past performance is not a guarantee of future performance, either negative or positive. You are after passion, intelligence, fit, experience if it exists (re-inventing wheels can be time consuming/expensive if you are forced to do it, and getting a guide who has been down that path can save you making some mistakes/time/money).
I know people are telling themselves that google has a good process, but honestly, it looks like it enforces homogeneity more than it brings in needed talent. I am not sure this is a good thing. Poor replication of their processes is rampant throughout the industry. I am not convinced this leads to positive outcomes.
Just kiddin'. I think, inverting the binary tree probably means mirroring it. I had an interesting Google interview as well a few years ago where I aced the automated coding test but then the first human interviewer didn't get why I said that regular expressions run in linear time :) Our background was just very different.
> I've got a Ph.D. in theoretical physics, am very math heavy, created a number of algos for my work over the last 25+ years (in physics sim, bioinformatics, systems management/orchestration, etc.), run sessions at an ACM conference, yadda yadda yadda.
> Two google interviews, and nothing. From what I hear from other people I consider way smarter than I, they also got nothing.
Then you and your friends weren't fluent enough with algorithms. That is the point, they don't care about all of your degrees, years of experience, conferences etc, they care about your fluency with maths and algorithms. This means that even a person with a shitty background can get hired at Google while a person with a stellar background gets rejected. Should you have gotten hired? Probably, but their system lets them find a lot of diamonds in the rough who wouldn't get hired anywhere else which is why they use it.
> Then you and your friends weren't fluent enough with algorithms. That is the point, they don't care about all of your degrees, years of experience, conferences etc, they care about your fluency with maths and algorithms.
I didn't fail those portions. Actually did quite well on them. So did my friends.
You are making a number of invalid assumptions, starting from the assumption that their processes are fundamentally accurate or correct. My supposition is from the viewpoint that all systems are fundamentally flawed, and the goal is to minimize risk associated with a flawed system.
I know it is generally hard to acknowledge that google does things wrong, but ... IMO (and I am fairly sure I am not alone here) ... they have a number of significant issues that they haven't quite moved past yet, and this is one of them. Remember, they started out with brain teasers, and school pedigree. The new system isn't demonstrably better IMO, but it helps them convince themselves that it is.
> I didn't fail those portions. Actually did quite well on them. So did my friends.
Then I don't see your point, what are you saying caused you to fail? I have a physics degree from an unknown school, learned to code in my thirties and got a job at Google by just doing well at their algorithms and maths questions so it is definitely possible to get in without ticking any of the hip boxes.
His point is that Google's and everyone else's hiring process is subject to large amounts of randomness and capriciousness. Google themselves have at various times mentioned how their hiring scores don't strongly correlate to performance.
Don't feel because you got in that you are some ordained snowflake. If you had interviewed on another day or with another group within Google you very possibly wouldn't have gotten in.
There are many variables at work when it comes to getting hired and hiring.
they care about your fluency with maths and algorithms
"Maths" is a red herring -- a physics PhD who's still active in academia will definitely be very fluent in maths.
It's all about "algorithms", but I think a lot of software people have tunnel vision about that. There's a lot of fancy terminology you pick up in a CS degree; requiring people to know that filters out a lot of potentially good candidates, unless they've studied CS in their own time.
That's fine if the special CS terminology is absolutely essential for all programmers. But is it really? Realistically, 90% or more of your time as a programmer is spent working on other stuff (automation, testing, designing friendly APIs, catching sneaky bugs, scripting, just generally plumbing stuff together). If you're on a team, does every single team member need to have a great understanding of data structures? Or is it just nice-to-have, specialized knowledge?
> That's fine if the special CS terminology is absolutely essential for all programmers. But is it really?
I'd argue that it matters more for Google more than most employers. The combo of their scale, combined with their large amount of custom infrastructure, combined with their desire to be able to retask engineers on a whim, means that individual engineers will have pretty good chance of touching code where the choice of Big O could make or break a product.
Mayyybe, I'm not so sure but you could be right. [Edit to add: even at Google, most programmers are not doing that kind of stuff most of the time.]
On the flip side, though, I think many programmers (even programmers who are up to date on their CS) are fairly weak at mathematics. We think we're good because we can, you know, invert a binary tree, but how about figuring out an appropriate filter to smooth some data, or verifying that some randomized process is unbiased?
For something like digital filters, if you have basic knowledge you can just look up wikipedia for the details. But the same applies to data structures and big-O!
A lot of companies (including Google) can benefit strongly from people with good maths or stats skills. Do those people also need to be strong in CS? Or if not, do they need to be siloed into a separate hiring process, and placed in separate departments?
I reckon CS, maths, stats and other specialized academic training should all be treated as nice-to-have skills, of varying importance depending on the team balance and project requirements.
What would sales do in a B2C shop? In my mind you just create a product people want, slap AdWords on it for revenue and add a marketing team for growth. I have a hard time imagining what for example Reddit would do with a sales team.
Edit: Apparently Reddit have a sales team since they have their own ads platform, they wouldn't need it if they used AdWords.
This makes more sense in the context of the GP comment if Reddit's ad network is found on sites outside of Reddit. I confess ignorance to these particulars.
The main problem with economic theory is that people aren't rational economic actors.
A rational billionaire would realize that he have nothing to gain from more wealth and would live the rest of his life in lavish and luxury (while donating 99.9% of it if he cares about public opinion), aiming to spend all of it before he dies. So if billionaires were rational we wouldn't have such a large inequality.
Similarly if poor people were rational they would organize against rich people, forcing them to share their wealth in one way or another. This could either be via violence or they could democratically elect representatives who will distribute it for them or they could even unionize to gain power.
The question then isn't how we stop inequality when all actors are rational, but how we stop inequality when some people have irrational tendencies to hoard wealth while others irrationally prefers to vote for those who stands for some abstract ideals rather than those who would give them the most monetary rewards.
There is what I believe to be a common misconception about the economic term "rationality" - it is actually devoid of morality. In economic theory, rationality is defined only as: when faced with a decision over many choices, the actor always chooses the choice they value most, according to their own "utility function". Self-interest is a misleading term for this because it could be selfish for a person to give away their all their wealth since altruism gives themselves the most internal "utility" /happiness. Regardless, if a billionaire maximizes their wealth, conditional on the billionaire getting more utility from more wealth than more of other things, then they are a rational economic actor.
What you are describing is a moral judgement about what people should "value", not how they make choices conditional on what they value. Rationality is not a technically correct term here.
> In economic theory, rationality is defined only as: when faced with a decision over many choices, the actor always chooses the choice they value most, according to their own "utility function".
That definition is correct but it isn't useful which is why it is never used in models. In the end we need to assume that the actors values something and that assumption will have a huge impact for any mathematical model. So the point is that since our assumptions about what people value can have so large consequences the maths doesn't really matter, it all comes down to people choosing their assumptions such that the result verifies their own beliefs.
> A rational billionaire would realize that he have nothing to gain from more wealth
> if poor people were rational they would organize against rich people
These seem at odds. If poor people were rational, the billionaire would have something to gain from wealth; protection against the poor...
In any case, I don't think it's true: The poor are more likely to be successful aiming for poorer targets, meaning they have more to fear from other poor, and less expected success in targeting the rich. That, and acting out of self-interest when poor can turn against you when you aren't..
> irrational tendencies to hoard wealth
The more wealth you have, the lower the risk of being poor. You are only doing the calculation:
(money obtained) - (money needed)
when the truth is closer to:
(money obtained)(chance of keeping money) - (money needed)
(chance of keeping money) = A + B*log[(money obtained)]
And this is before you think about how money gets divided among dependents, i.e.
(money desired) = (money needed per person lifetime) * (number of dependents)
>democratically elect representatives who will distribute it for them...
good thing we live in a "republic". This line smacks of wanton theft. The poor should have a reason to be "given" money other than just being "poor" (as the standard reasoning with 'wealth distributors'), similarly, the rich should have a good reason to have their money stolen other than just being "rich".
Bezos BUILT something, Oprah BUILT something. Just because they're rich and you're not doesn't mean you deserve to be. This country (USA) - at least in theory - is about equal OPPORTUNITY - NOT "Equal Outcome".
Life Isn't FAIR. Stop trying to make everyone equal when they clearly aren't. Some people put in more work, have better ideas, better skills, attention to details, and follow through, while others do not.
You may never steal directly from your neighbor or friend, but voting for the government to do it is the same thing.
When voters elect representatives to move money from the wealthy to themselves it is theft.
When wealthy donors, lobbyists, and corporations pour money into the political system to affect laws, distribution, incentives, outcomes it is "speech."
If life isn't fair, then why do you care about something you call theft? I'm not reading a self-consistent critique here.
you're not reading it because you're looking to justify your own position and don't want to see it.
when someone CHOOSES to give money towards a cause, it IS speech. (granted, most don't agree the citizens united ruling, but mainly because it allows a corporation to have "more" speech than you or I). This is not a problem with the law, this is a problem with money in politics. Solve that problem (like only money from companies/people from within the district is allowed or something), and you solve the 'citizens united' problem.
Just because life isn't fair doesn't mean I GIVE You my money. I should have every right to keep it without being robbed at gunpoint (IRS) - by lazy socialists who don't understand how business works, have never run a business or "democratic-mob-rules-socialists-who-abuse-government-to-do-their-dirty-work".
An economic system is an agreement to forgo violence and theft as acceptable means to get what you want, in order to establish mutually beneficial conditions for the exchange of goods and services. As soon as the system stops being mutually beneficial and instead benefits the few at the expense of the many (regardless of skill, regardless of effort), the entire moral foundation on which the system was built crumbles and what you call wanton theft can sometimes be the rational response. Does this sound revolting to you? Well, too bad, life indeed isn't fair.
> An economic system is an agreement to forgo violence and theft as acceptable means to get what you want
No, its not.
I mean, sure, an economic system is always imposed by a political system, and some modern political systems have in their theoretical background an ideal of being established through free agreement, but that ideal is never actually fully realized in those systems, and plenty of political systems don't even have that in theory; in practice, participants in an economic system mostly do not get there as part of any agreement, and especially not a free and uncoerced agreement.
And economic systems often (in practice, always) involve violence and only avoid theft in that “theft” is defined as that which defies the rules of the state.
people that willingly choose those positions. I didn't go to college. I go a job out of high school. I did what I had to do, to be able to do what I want to do. People today think a degree entitles them to $100k/yr and a new Porsche. That's not this works. That's not how any of this works...
A republican governmental structure has exactly zero to do with economic distribution. Also, people who say 'Life isn't FAIR' are choosing to make it that way. Other people think it should be fair and want to organize so as to maximize fairness. The fact that you know whether something is unfair or not (regardless of whether you approve of it) suggest that it is objectively measurable in some way.
Also, LOL at the irony of someone proclaiming that life isn't fair while simultaneously denouncing redistribution of resources as 'wanton theft'. Don't dish it out if you can't take it.
Bezos and Oprah have benefited enormously from public resources, from laws and regulations to roads and schools. To take one small example, how would a book business do in a country without widespread literacy? How would a delivery company do in a country without roads?
They're members of a society and that society has enabled them to amass tons of wealth, it's not unfair to require them to return some of it.
If people were rational we wouldn't need money in the first place. Everybody would simply cooperate in order to maximize the benefit shared by all. We see this sort of behaviour in eusocial insects like bees and ants.
But bees and ants have genetically determined reasons for their social structures - their genetic makeup is more strongly shared between siblings than offspring so it's in their rational self-interest to be sterile themselves and to farm their sisters (usually just one sister - the queen) so as to maximise their biological utility function - which is usually the greatest number of closely related bees or ants out there.
Most other species don't have this sort of genetic makeup, so it wouldn't be rational for most of us non-Hymenopterae to mimic the social order of such insects.
There are examples of eusocial animals which are not haplodiploidy. Naked mole rats are one example.
I think you're trying to make an argument based on the game theoretic definition of "rational" rather than the common definition of rational which would correspond to game theory's "superrational". That is, a rational choice based on the common knowledge that all others are following the same playbook. Sure, hymenopterans have a better genetic incentive to favour superrational behaviour but that doesn't stop upstart queens appearing in a hive (and often getting destroyed, but not always).
> Which can't be achieved in most OOP languages that I know of, except for Scala and that's because Scala has "implicit parameters" which are equivalent to Haskell's type classes.
I didn't know that, but it doesn't surprise me, seems to me like C++ templates are like their own language grown within C++ and can do lots of crazy things.
It is fairly straightforward, created a pastebin showing how it can be done, you can also make it check that it is implemented at compile time but the logic around that is a bit iffy:
You will need more citations to prove that point. Same publication, more recently published, "Two Types of Diversity Training That Really Work".
"For one, a recent meta-analysis of over 40 years of diversity training evaluations showed that diversity training can work, especially when it targets awareness and skill development and occurs over a significant period of time."