In industry surveys, over 80% of embedded software developers report using C or C++ as their primary programming language. Yet as a group, these programmers earned a failing grade on a multiple-choice quiz testing firmware-related C programming skills. A scary result, considering that embedded software inside medical devices, industrial controls, anti-lock brakes, and cockpits place human lives at risk every day.
In a February 2008 blog post, I examined the first few hundred results from the “Embedded C Quiz” on the Netrino website. That analysis compared the performance of programmers in the U.S. and India with the rest of the world (the only three data sets large enough for meaningful analysis). I concluded that the average embedded programmers in the U.S. and India don’t know C very well, but do know it better than programmers in the rest of the world.
Two years now since launching the quiz, we have collected thousands of data points, so it’s time for an update on programmer performance. In total, 3,870 programmers have taken the short 10-question multiple-choice C skills test. A few (a bit less than 3%) didn’t answer all of the questions; the analysis below is based on just the 3,755 completed quizzes. (Note that each website user can only take the quiz once.)
Across all countries, the mean result was 60.8%–a grade of ‘D-‘ at best. That is to say that the average embedded programmer answered just 6 out of 10 multiple-choice questions correctly. A rather scary fact, given that C is the language of choice for most embedded projects and that C++ is even harder to master.
Programmers in the United States scored slightly above average. But they still earned a failing grade of 61.8%. Programmers in India scored slightly below the worldwide average, at 58.9%. Together, programmers from these two large English-speaking countries accounted for the majority of all quiz takers.
The number of completed quizzes, mean scores, and standard deviations for all countries with more than 20 completed quizzes are shown in the table below, sorted by average score. In general, programmers from European countries scored best.
Country | Completed | Mean | Std Dev |
Poland | 23 | 68.7 | 19.2 |
Sweden | 26 | 67.7 | 15.8 |
Australia | 45 | 67.3 | 22.3 |
Germany | 57 | 67.2 | 17.2 |
France | 35 | 66.9 | 24.0 |
United Kingdom | 109 | 66.1 | 22.8 |
Spain | 24 | 65.0 | 18.3 |
Canada | 114 | 64.5 | 19.3 |
China | 51 | 64.1 | 23.4 |
Israel | 22 | 62.3 | 21.7 |
United States | 1346 | 61.8 | 20.4 |
Egypt | 28 | 59.3 | 22.8 |
India | 1288 | 58.9 | 22.4 |
Romania | 45 | 58.9 | 23.0 |
Singapore | 24 | 58.3 | 20.1 |
Italy | 44 | 56.4 | 20.8 |
Turkey | 57 | 55.6 | 23.3 |
Brazil | 47 | 55.1 | 24.1 |
Pakistan | 25 | 44.0 | 21.7 |
How are your embedded C programming skills? Test them by taking the Embedded C Quiz yourself now at http://www.netrino.com/Embedded-Systems/Embedded-C-Quiz?
P.S. We recently launched an Embedded C++ Quiz and the results so far look downright abysmal. I’ll write something about that in a future post. Do you have a few minutes to take that one too?