News for hackers. Stuff that matters.
Re:Average Income per Programming Language by quchen on Wednesday August 21, 2013 @06:04AM (#6249074)
What are the distributions of the salaries among one language? Mean values alone are completely useless, give us some information about how you found the salaries out, what their standard deviations are etc.

I don't want to imply maliciousness here, so I'm going to call this an example of unknowingly bad statistics (which, sadly, seems to be the default in most places). Bonus points for the bar (!) chart that starts at 90,000 and looks like ActionScript is twice as profitable as the rest of the languages.

Re:Average Income per Programming Language by dlss on Wednesday August 21, 2013 @06:13AM (#6249095)
He found the salaries out using rapleaf... which didn't know the salaries but was making an educated guess. (You can try out their api if you register an account, FWIW it was way off for the people I've tried it on.)

With data like that, I'd imagine the only sort of data you could trust would be the mean, since I'm guessing its much harder to be wrong about relative income levels between large groups than it is to be right about actual income numbers.

Re:Average Income per Programming Language by quchen on Wednesday August 21, 2013 @06:22AM (#6249125)
The only sort of data you can trust is the data itself. Providing the mean of data is providing a sum value a person thinks is useful to convey the shape of the data, and the mean in particular is unsuitable at conveying shape on its own.

What the author tries to get at is a precise quantity, namely the average salary for each language. However, we cannot measure that quantity directly, so taking samples (from a good source) is as good as it gets.

The easiest assumption about that data is that it follows a normal distribution, which does have a mean, but also a standard deviation; both of these are required to talk about any meaning of the result. (If the normal distribution is not a good fit things may get more complicated.)

What I'm saying is that providing just means is not a ballpark way of doing statistics, it is wrong. The statistical ballpark is the normal distribution, and maybe a value ensuring that it is at least somewhat appropriate to use that one.

Re:Average Income per Programming Language by dlss on Wednesday August 21, 2013 @07:59AM (#6249541)
I'm confused.

I was trying to say something along the lines of "once you've played with rapleaf, you won't care what the stdev is", because rapleaf's data isn't good.

The standard deviation here isn't going to be the standard deviation of programmer salaries -- it will be the standard deviation of rapleafs estimates. Which as I previously mentioned are horrible, and not particularly interesting.

I agree with the author that Haskell is estimated at a lower rate because it's academic. I think the reason we see higher salaries for older languages here is that rapleaf must be using age as an input (with makes sense in some fields).

> The only sort of data you can trust is the data itself.

Agree. Again, here there is no data. It's gibbs sampled noise from shitty models.

> Providing the mean of data is providing a sum value a person thinks is useful to convey the shape of the data, and the mean in particular is unsuitable at conveying shape on its own.

I don't think anyone here is confused about the question of the mean showing the shape of data.

> The easiest assumption about that data is that it follows a normal distribution

Salary most certainly does not follow a normal distribution. I don't understand how you came to write what you wrote without knowing that. It's a classic example of the exponential distribution.

(To be fair, salary estimates from rapleaf do seem to follow a normal distribution :p maybe you can guess why? [hint, it's a phrase I used earlier that starts with "gibbs sampled noise from" and ends with "shitty models"])

Re:Average Income per Programming Language by lifeisstillgood on Wednesday August 21, 2013 @06:54AM (#6249277)
So forgive the statistical ignorance, but how would one display mean and std dev in useful graphical form? (Asking seriously as it would be good to know which setting to press on gnu plot)
Re:Average Income per Programming Language by merijnv on Wednesday August 21, 2013 @07:02AM (#6249308)
Not quite the same, but box-and-whisker plots (https://en.wikipedia.org/wiki/Box_plot) are good for visualising distributions. They show the mean, minimum, maximum and the first and second quartiles.

Since they show the minimum and maximum we can judge the overall spread, the mean tells us...well...the mean and first and second quartile lets us judge how close data is clustered around the mean.

See http://gnuplot.sourceforge.net/demo/candlesticks.html for gnuplot examples.

Re:Average Income per Programming Language by omh on Wednesday August 21, 2013 @07:39AM (#6249444)
A minor point, but I think Box Plots usually show the median rather than the mean at the centre.

It would make sense perhaps to use standard deviations and means for some data, but in cases like this I think quartiles and medians make more sense.

Re:Average Income per Programming Language by lifeisstillgood on Wednesday August 21, 2013 @07:25AM (#6249389)
But box plots seem to be needing turning on their side to visualise (assuming normal distribution)

I suppose I am looking for mathematically faithful whilst still Omnigraffle good looks

Cheers

Re:Average Income per Programming Language by glaugh on Wednesday August 21, 2013 @11:53AM (#6251171)
Personally I prefer histograms (assuming you have all the data, not just mean and std dev).

For example, here's a histogram of ages of passengers of the Titanic: https://www.statwing.com/demos/titanic#workspaces/21

Or rents in the bay area: https://www.statwing.com/open/datasets/034b4af16d50a0ad35f1a...

Gives a real nice feel for the data.

These histograms are lacking in that they don't actually have the mean line or std devs on the plot itself; my general point is that if the goal is to get across a distribution, a histogram is the best way to do it, perhaps aided by markers for mean, median, std dev, etc., as the case merits.

Disclosure: I work at Statwing.

Re:Average Income per Programming Language by route66 on Wednesday August 21, 2013 @07:02AM (#6249307)
With boxplots? http://benchmarksgame.alioth.debian.org/u64q/which-programs-... (they can show a bit more though, min, max, interquartile range or mean+/- 1 stddev and mean itself) see also http://en.wikipedia.org/wiki/Box_plot .
Re:Average Income per Programming Language by ichinco on Wednesday August 21, 2013 @07:22AM (#6249369)
even just some error bars would help: http://en.wikipedia.org/wiki/Error_bar

They're typically used for confidence intervals or standard error, but you can theoretically use them with any measure of variability as long as you're clear.

Re:Average Income per Programming Language by contingencies on Wednesday August 21, 2013 @06:26AM (#6249137)
Without even looking at potential issues with the source data, it is also the case that most programmers of any calibre work across multiple languages. Also, languages which are 'older' and reaching obscurity (ie. fallen out of favour) are going to be known by older programmers who, if they are still in their career, probably command higher salaries only as a factor of age and experience. Finally, salary before tax is not very representative of income or social circumstance, and people in our industry often opt for time flexibility or remote work in preference to higher salaries on purpose (for example, after having children). All in all, not useful.
Re:Average Income per Programming Language by runeks on Wednesday August 21, 2013 @08:39AM (#6249739)
> Bonus points for the bar (!) chart that starts at 90,000 and looks like ActionScript is twice as profitable as the rest of the languages.

When I make charts like this, I always let the X-axis be zero. I find it confusing to look at a chart and not immediately know the percentage difference without using a calculator. With the X-axis at 0 you can immediately tell the proportional differences.

It's like looking at the intra-day variations of a stock's price, and thinking "Whoa! What happened here?!". Then you zoom out and it's a completely straight line.

Re:Average Income per Programming Language by bpodgursky on Wednesday August 21, 2013 @11:10AM (#6250840)
The bar chart is straight from Google docs, which just auto-scaled however it saw fit. I tried to present the numbers first to be clear about the absolute range.