It is very important to recognize that "comfort zone" also means you must have room to fail, which is actually tough for companies to hire for because most companies are actually super risk averse when it comes to hiring. Why else would they want to hire people that know as much about their stack as a filter before asking questions about their potential?
I went (foolishly, in hindsight) into areas on the thesis that a lot of organizations simply need some motivation from one or two highly capable people to raise the standards for everyone and that this form of leadership would be a good career path because people are oftentimes rewarded quite well for saving failing / ailing companies. Instead, I was beaten severely for trying to do create too much change for people that just wanted to a 9-to-5 job or (more importantly) given no projects with any risk or even much value even if it succeeded.
I've come to realize that organizations without risk or without any sense of leaving their comfort zones are the same thing as people - these are beginner-expert organizations. These are companies who implement a working Hadoop cluster in production and give themselves a big pat on the back... in 2015. These are companies that implement some CMDB... in 2014. These are companies that are rolling out SOAP services seriously on a roadmap... for 2018. The aversion to risk leads inevitably to worse results than if you had accepted some failures, but this only makes sense anyway when your organization is capable of speed. And this becomes the ultimate chicken and the egg problem with large companies. My answer is that you must break your egg to create a new chicken - if you do not sacrifice something, you will lose everything for sure.
At my last job I was the only developer at a small web agency, along with a designer and a project manager. Basically every problem and solution I had to figure out myself, and while I did that, due to time constraints I often had to go with just what worked, rather than figuring out the best of all possible options.
At my current job, there are developers who know a lot more than me, and in the time I've spent working with them I've found I learn so much more so much more quickly than I did when I was working on my own.
Any examples you can share?
I liked Steven Covey's 7 Habits take on this much more "Sharpen the Saw." This approach and wording puts all the blame on those around you. That is very good to think your above those around you and that you are above average.
A) Nothing wrong with average half the people are below average
B) Rating someone top 5% is totally a perception unless your in something that can be measured easily (Think fast 100m Dash or the author's bowling)
C) Having hired dozens of people for different jobs I can tell you that my top 5% at higher usually ended up being drama and the one person I just hired because I needed a body ASAP ended up being hands down my best employee. (Look at how Google has changed their hiring practices because hiring is close to impossible to get right, think NCAA Brackets)
D) Self-deception - Everyone believes their kid is above average and self-delusion inflates our own self-assessment. Blaming those around you give you a great out of self-responsibility.
This isn't necessarily true. Imagine a system where we could rate developers. There are 4 'A' developers (92,95,97,91) and 2 'B' developers (83, 85). Only 1/3 of the developers are 'below average' as compared to below median, and flip those numbers around and 2/3 are below average. This is kind of important when evaluating the type of company culture that you're in. Is it a place where there are a lot of 'top 5%' developers, and a short tail of good, but not great developers. Or is it a place where there are just one or two developers that doing 'A' work, but a long tail of developers doing solid, but not great work. The 'average' could be misleading in these cases.
Average = Average you have 100 developers 49 and below are bellow average :P
Not exactly. Average is defined as the 50th percentile, which if you have 100 developers, and can (objectively) rank them in order from 1 to 100, then there is a chance that 49 and below are not "average" or "worse than average." Consider a sample distribution where all 100 employees rank exactly the same. Now all 100 are average. Consider a sample distribution that takes on a bi or tri-modal form, where employee groups cluster at certain knowledge or experience levels. Here you might find that "average" is hard to quantify, as it is not well defined when your distribution does not follow "normal" rules.
We are talking rank so top person ranked 10,000 and the bottom is 1. 10,000 - 5,000 are Above Average and the 4,999 to 1 are Bellow Average.
What you showed was some abstract numbers that have nothing to do with ranking.
But even assuming it's a ranking - in a ranking there's possibility of equal rankings, right?
So, you can have rankings [1, 1, 1, 1, ..., 1, 10000], and the "average=median" assumption is violated again.
Most real-world distributions have different average and median values, the "50% is below average" is a common misconception that should be cleared out.
For one important example see average salary - huge majority of people in (almost) every country earn less than average salary in that country.
EDIT: Oh I think you looking at this like average house hold income with Bill Gates throwing off the average possibly? Well we are talking about only one thing and that is the skills of a programmer compared to the skills fo other programmers. Just the same as the average math skills of children. This is why we have percentiles and my argument still holds on. Skills are not like money where one person has $60,000,000,000 and another has $100.
> the turning of something abstract into a concrete thing or object
We're talking abstractions from the start. The only abstraction all my posts here rely on is the assumption that skill level is 1-dimensional. And you started using that assumption (by referring to average developer).
Real world example:
There are 10000 programmers. Many of the programmers that are just starting to learn have similar skills to each other. Some of them work for a few years already. Their skill levels start to diverge. Many of them never develop their skills too much (because they never need to and aren't self-motivated enough). Some of the programmers got lucky, work in places that allow/require them to learn forever, and become very, very good. There are few of them, and their skills vary widely.
There are tons of people near the bottom, and very few people near the top. It's natural consequence of the amount of work and focus it takes to move from the bottom to the top.
Ranking them hides some of the differences, but not all (because it's much more common for people to have the same rank near the low end of the spectrum, where there is much more of them, than near the top - where there is just a few people separated by big gaps). So, when you took ranks from these people you would get sth like below (1=worst, 10000=best, if your ranking works the other way - reverse it it still works the same)
[1 (repeated 20 times), 2 (repeated 15 times), 3 (repeated 10 times), 4(repeated 5 times), ..., 100, ..., 10000] - so the distribution would still be skewed and the average would still be different from the median value.
Real world example: It is still an non-measurable skill set.
> so the distribution would still be skewed and the average would still be different from the median value
You also mixing up vocabulary your still taking average = mean BUT average also means median.
Here is real world ranking of skills (Math, Science, English and Reading) http://blog.prepscholar.com/act-percentiles-and-score-rankin...
Once again what scores are you comparing? When I went to Graduate School I had to do GRE and MAT test and I needed to be over 70% percentile on the test just to be average in my field of study (Theology (highest of all fields of study while Education had one of the lowest scores which makes me laugh) This had HUGE implications on my later PhD program acceptance. I couldn't say I was above average in my field because I scored really high. I had to be better then well over 75% of the people taking the test in my field of study. Just because there are a ton of beginners that start and leave that doesn't mean that there isn't a middle and that middle ground will have great skills above the learners. I counter the argument on this paper discounting average developers and placing the blame on their co-workers and environment. Average workers are not to be looked down on.
What is the average fruit from a set of 10 different apples and 3 different oranges?
It was your assumption that skill level of 2 developers can be compared.
And it's not an useless theorethical distinction. In lay terms: most programmers are worse than average skill level of all programmers.
I even showed you real world example. IT is growing very fast, so most people are beginners.
I'm not trying to look down on anybody. Being better developer doesn't mean you are a better person, and I'm not above average IMO anyway.
EDIT: I looked it up (I'm not native English speaker), and you were right about the math terminology. In Polish average=mean=średnia. Damn false friends. So, if you meant average as median I agree.
Due look at the link for ACT Test (For college admission) this kind of shows how to make an average of skills and rank them with a population group. In statistics you can do just about anything and it can be scary but there is always a middle and it just depends on your decision on what is the best tool to use.
Have a great day.
How has Google changed their hiring practices?
Ultimately, I'm looking to make the leap into a more challenging job, but for now, these will have to do.
But at companies who are employing the top 5% of the top 5% you will probably won't even make the first round of phone screens.
There's so much noise, context, and (as you acknowledge) subjectivity in how performers are evaluated that a statement like "We hire only the top .25%" can't possibly have any meaning. Top 5% might be about as far as you can push it. But even at that level, at best it's just a metaphor. And by itself, it doesn't provide us with any tools to reliably determine membership in that category.
Other than, of course, the tried-and-true method of throwing out a series of hoops for people to jump through over the phone, on your live coding portal, and at the whiteboard (ignoring all the built-in selection biases in this process: from whether candidates had had that very problem fed to them in another interview somewhere; to whether they spent 3 weeks to 3 months doing nothing but prepping for your hoops, day and night; to the simple matter of whether they're having a good day that day).
And then stack-rank: "See, only 5% of email applicants made it through our phone screen and take home test (which we had to re-design midway through because we realized we weren't stating the requirements properly, but whatever). Then we brought in 10 or so of those for interviews, until basically we got tired of interviewing and decided we had to hire someone. Ergo, we only hire the top .5%."
What are those mythical companies? Really, I'd like to know. Name a few.
But can someone tell us where, exactly, this top .25% figure comes from? Other than the swirling mass of air about their heads, as they typed it?
I'm not asking this to be snarky. It's just that people keep talking about the "top .1%" as if it's not just a thing, but a quantifiable, measurable thing. It's neither, of course; basically it's just a hunch people have. With an arbitrary number slapped on it to make it sound more, you know... authoritative.
Meanwhile, some stories of the top .25% at Jane Street, getting busy at the task of finding the other top .25%:
My interview is scheduled at 10:00am. However, I wait until 10:15am but no one called. Then I received an email saying the interviewer was wrapping up with an issue and he would call around 10:30am. Then I wait until 10:45 am still no one called. I received another email saying he was still working on the issue and will call in a minute. Then I continue to wait to 11:15am.…
Another:
They ended up calling 40 minutes late, the interviewer was very incompetent at even asking the questions. I found it very unprofessional and chose to not move on in the interviewing process after speaking with friends who told me this was not uncharacteristic of them.
Source: glasdoor.com
RenTec is a hedge fund that has done something like 30% annual gains over like 30+ years.
For instance. . . .
After leaving a very small local company I was working at, this is what I found after doing a few months of research and interviews:
I had several interviews, every single one for a front-end role. They ran the gamut of JS frameworks. Do you know Backbone? AngularJS, Polymer, Typescript, ReactJS? A combination of some? or none at all? Not a single interviewer asked me about jQuery or my "vanilla" JS skills - NONE. Every company big and small was using some kind of framework, in some capacity - albeit in vastly different ways.
The point here is there's no way for you to predict how your next great learning experience is actually going to help you down the road. Our landscape is changing virtually by the hour. I have now given up on trying to have a learning opportunity whereby I can add some really good skills to my resume not only for now - but for future opportunities.
It's made me a bit jaded that our industry is so fragmented that even by learning a new library or framework, you effectively remove yourself from consideration from a host of companies because you didn't pick the "sexy" framework
(improvement is always welcome, but be careful flipping corporations)
But at companies who are employing the top 5% of the top 5% you will probably won't even make the first round of phone screens.
Get out of your comfort zone, and simply learn something new. Go wide, go deep or go both just realize that the moment you feel you are an expert on something it just means you are probably just ready to start learning it for real.
tl;dr Knowing more than your peers doesn't make you an expert. You are at a local maximum and you need to look at the big picture to avoid being stuck there forever