由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 从一个Embedded C++ quiz 调查看印度人的实力
相关主题
三个C syntax 弱问题这个结果是啥,为什么呢?
C语言的变量都一定要放在stack上吗?C++ template preprocessor
C 和 C++ 相比有什么优点?Visual studio: 2008: create a macro in compiler configuration
请教有关header file的几个问题C array
a[i]=i++A C++ compiler related interview question
Re: godly C++ programmers neededone question about operator delete
一个简单的小问题基于macro的meta programming真难懂
Need help on C++ code输入输出流,stl,api精通各需要多长时间?
相关话题的讨论汇总
话题: embedded话题: quiz话题: response话题: c++
进入Programming版参与讨论
1 (共1页)
j******g
发帖数: 2689
1
http://embeddedgurus.com/barr-code/2009/11/embedded-programmers
Embedded Programmers Worldwide Earn Failing Grades in C and C++
Tuesday, November 24th, 2009 by Michael Barr
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?
Tags: education, embedded, ethics, outsourcing, programming, trends
This entry was posted on Tuesday, November 24th, 2009 at 10:30 am and is
filed under Uncategorized. You can follow any responses to this entry
through the RSS 2.0 feed. You can leave a response, or trackback from your
own site.
g*****g
发帖数: 34805
2
看看本版就知道了,做 embedded一堆半路出家的底子不扎实。
g****t
发帖数: 31659
3
大学已经很久不重点教C了。我当年国内考硕士倒是正经刷过C的题目。还写过机械夹子
画圆的程序。
C Traps and Pitfalls之类的书现在的大学生压根不看。CS出身的里面找C好的人更难
。美国中国都一样。

【在 g*****g 的大作中提到】
: 看看本版就知道了,做 embedded一堆半路出家的底子不扎实。
c***z
发帖数: 6348
4
参加这种考试的都是笨蛋
难以想象别的职业会有这样的笨蛋,比如说dealer坦白自己说了多少谎,doctor参加什
么在线quiz,executive直说自己什么都不懂
w***x
发帖数: 105
5
严重怀疑它的数据准确性。真搞开发的,哪有闲工夫去它那里浪费时间?
b*******s
发帖数: 5216
6
all C's bad :)
ET
发帖数: 10701
7
真搞开发的,还有人天天混这里。
那测试好歹还是专业相关的。

【在 w***x 的大作中提到】
: 严重怀疑它的数据准确性。真搞开发的,哪有闲工夫去它那里浪费时间?
b***i
发帖数: 3043
8
基本算没搞过嵌入式,就写过不超过500行吧。上过这个公司的培训,丰田汽车的嵌入
式软件就是这家公司分析的,认为软件有设计问题。所以注册后测了一把,就10道题。
靠瞎蒙得了90分,确实题目很偏,都是回字那种写法是对的问题。

C
from

【在 j******g 的大作中提到】
: http://embeddedgurus.com/barr-code/2009/11/embedded-programmers
: Embedded Programmers Worldwide Earn Failing Grades in C and C++
: Tuesday, November 24th, 2009 by Michael Barr
: 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

v******y
发帖数: 84
9
搞对八题
下面二题错了
Which of the following is the most portable way to declare a C preprocessor
constant for the number of seconds in a (non-leap) calendar year?
Response:
#define SECONDS_PER_YEAR 60 * 60 * 24 * 365
#define SECONDS_PER_YEAR 60 * 60 * 24 * 365;
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365UL)
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)
Which ANSI C compilers allow a variable to be declared both volatile and
const?
Response:
All ANSI C compilers allow this
No ANSI C compilers allow this; it is a K&R C holdover
Most ANSI C compilers allow this
Only the GNU C compiler allows this
v******y
发帖数: 84
10
这是我做的10题,大家试试
以后公布答案
Which of the following is the most portable way to declare a C preprocessor
constant for the number of seconds in a (non-leap) calendar year?
Response:
#define SECONDS_PER_YEAR 60 * 60 * 24 * 365
#define SECONDS_PER_YEAR 60 * 60 * 24 * 365;
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365UL)
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)
Score 1 of 1
Question:
Which of the following is the most flexible way to declare a C preprocessor
macro that takes two arguments and returns the smaller of their two values?
Response:
#define MIN(A, B) ((A) < (B) ? (A) : (B))
#define MIN(A, B) { if (A < B) A; else B; }
#define MIN(A, B) ((A < B) ? A : B)
#define MIN(A, B) A < B ? A : B;
Score 1 of 1
Question:
Which of the following constructs can be used to create a portable infinite
loop in C?
Response:
while (1) { ... }
for (;;) { ... }
loop: ... goto loop;
All of the above
Score 1 of 1
Question:
Which of the following statements accurately describes the intended effect
of the declaration int (* a)[10];?
Response:
An array of ten integers
A pointer to an array of ten integers
An array of ten pointers to integers
An array of ten pointers to functions
Score 1 of 1
Question:
Which of the following statements accurately describes a use of C's static
keyword?
Response:
A variable declared static within the body of a function maintains its value
between function invocations
A variable declared static outside the body of a function can only be
accessed by functions within the same module.
Both of the above are accurate
Neither of the above are accurate; static is used for function declarations
Score 1 of 1
Question:
Which of the following statements accurately describes the meaning of the
declaration int * const x;?
Response:
x is a constant pointer to an integer
x is a pointer to a constant integer
x is a constant integer value
None of the above; it's an invalid C declaration
Score 1 of 1
Question:
Which of the following items should generally be declared using C's volatile
keyword?
Response:
A memory-mapped peripheral status register
A global variable used within an interrupt service routine
A global variable used by multiple tasks in a multi-threaded application
All of the above
Score 0 of 1
Question:
Which of the following code snippets can be used to reset the least-
significant bit of x?
Response:
x & 0x01;
x & ~0x01;
x | ~0x01;
x &= ~0x01;
Score 1 of 1
Question:
Which ANSI C compilers allow a variable to be declared both volatile and
const?
Response:
All ANSI C compilers allow this
No ANSI C compilers allow this; it is a K&R C holdover
Most ANSI C compilers allow this
Only the GNU C compiler allows this
Score 1 of 1
Question:
Which of the following is a correct way to write the value 0xAA55 to
physical memory address 0x67A9?
Response:
uint16_t * p = (uint16_t *) 0x67A9; p = 0xAA55;
uint16_t * p = (uint16_t *) 0xAA55; p = 0x67A9;
* (uint16_t * const) (0x67A9) = 0xAA55;
* (uint16_t * const) (0xAA55) = 0x67A9;
1 (共1页)
进入Programming版参与讨论
相关主题
输入输出流,stl,api精通各需要多长时间?a[i]=i++
深情的呼唤师傅们!C++做题做不出来啦!Re: godly C++ programmers needed
师傅们,C++概念题,弟子有礼了一个简单的小问题
问低级问题Need help on C++ code
三个C syntax 弱问题这个结果是啥,为什么呢?
C语言的变量都一定要放在stack上吗?C++ template preprocessor
C 和 C++ 相比有什么优点?Visual studio: 2008: create a macro in compiler configuration
请教有关header file的几个问题C array
相关话题的讨论汇总
话题: embedded话题: quiz话题: response话题: c++