Today I came across a post titled “How Long Waiting for an Answer in StackOverflow” that uses a cool service built into StackOverflow to query the data. Guillermo Winkler, the author of that post, was thoughtful enough to provide the queries he used however, there were still some people who complained that Perl and Python weren’t included in the mix. So, to appease (call me Chamberlain), I modified his query that includes “difficulty level” and included Perl, Python, and for my own curiosity, ColdFusion and ran it. It took about 93 seconds to run the full query so, in order to spare the StackOverflow servers I’m sharing the results here.
TagName DifficultyGroup Total Average StandardDev
c Easy 22684 27 44.93158724
c Hard 844 3681 2054.32233
c Hell 624 65729 100305.4377
c Medium 1479 660 332.5307891
c# Easy 101671 29 47.99106764
c# Hard 6395 3790 2036.896902
c# Hell 5109 69559 101441.9676
c# Medium 9252 734 351.5870257
c++ Easy 47099 27 44.72630576
c++ Hard 1926 3769 2004.750274
c++ Hell 1623 66865 96822.88407
c++ Medium 3447 691 339.3129365
clojure Easy 1243 59 61.88653835
clojure Hard 92 3457 2029.433055
clojure Hell 57 99400 115464.8556
clojure Medium 306 626 300.5990237
coldfusion Easy 1241 53 58.8145155
coldfusion Hard 123 3662 1840.082258
coldfusion Hell 75 70134 92203.96548
coldfusion Medium 252 732 332.8786129
haskell Easy 3479 45 57.02075156
haskell Hard 148 3487 1779.395102
haskell Hell 118 65520 87998.77949
haskell Medium 496 608 298.0567828
java Easy 85766 31 48.89842231
java Hard 5907 3765 2010.932162
java Hell 5197 71558 101831.4202
java Medium 8826 717 345.5430699
javascript Easy 86375 25 42.91600968
javascript Hard 4685 3784 2025.935042
javascript Hell 4320 73794 101298.4912
javascript Medium 6531 728 344.8005289
lua Easy 713 58 63.46671507
lua Hard 76 3243 1652.483831
lua Hell 46 53789 78578.61928
lua Medium 199 672 328.4408645
perl Easy 5997 43 55.91177132
perl Hard 257 3664 1967.493456
perl Hell 174 65605 85205.42372
perl Medium 697 641 318.448049
php Easy 88927 23 42.9707536
php Hard 4047 3782 2021.484997
php Hell 3512 73866 103946.8728
php Medium 5901 714 335.4683515
python Easy 38519 35 52.08066926
python Hard 2475 3733 1982.435262
python Hell 2096 80801 112891.3908
python Medium 4454 675 330.5440297
ruby Easy 16659 41 54.92089149
ruby Hard 1274 3826 2012.591462
ruby Hell 1263 79333 106803.6384
ruby Medium 2135 682 337.2806176
scala Easy 3891 56 61.98182303
scala Hard 276 3245 1808.706038
scala Hell 211 73277 106251.322
scala Medium 834 623 316.2735868
A friend has put this data in a google spreadsheet so you can filter/sort it.
I encourage you to go read his post and then use this as an additional reference while reviewing his analysis.
For reference purposes here is the query I ran to obtain the above results:
SELECT DifficultyGroup, COUNT(1) Total,
AVG(CAST(ResponseTime AS bigint)) AS Average,
STDEV(CAST(ResponseTime AS bigint)) AS StandardDev,
TagName
FROM
(SELECT
Questions.CreationDate,
Questions.Title,
Tags.TagName,
Answers.CreationDate AS ResponseDate,
DATEDIFF(minute, Questions.CreationDate, Answers.CreationDate) AS ResponseTime,
CAST(DATEPART(hour, Questions.CreationDate) as int) as ResponseHour,
CASE
WHEN DateDiff(hour, Questions.CreationDate, Answers.CreationDate) < 5 THEN 'Easy'
WHEN DateDiff(hour, Questions.CreationDate, Answers.CreationDate) < 24 THEN 'Medium'
WHEN DateDiff(hour, Questions.CreationDate, Answers.CreationDate) < 144 THEN 'Hard'
ELSE 'Hell'
END as DifficultyGroup
FROM Posts Questions
JOIN Posts Answers ON Answers.id = Questions.AcceptedAnswerId
JOIN PostTags ON PostTags.PostId = Questions.Id
JOIN Tags ON Tags.Id = PostTags.TagId
WHERE Questions.CreationDate > CONVERT(datetime, '01/01/2011', 101)
AND TagName IN ('ruby', 'c++', 'c', 'clojure',
'scala', 'javascript', 'haskell',
'c#', 'java', 'lua', 'php', 'coldfusion', 'perl', 'python')
) AS Responses
GROUP BY DifficultyGroup, TagName
ORDER BY TagName, DifficultyGroup
Comments
Ade
Interesting.
Would be good to see a break down of
tech, difficulty, was answered
or
tech, difficulty, number of responses