吐槽一个最近的面试者
五年嵌入式c开发经验,涉及uboot及各种rtos的开发。据他自己说维护的代码超过20w行,自己亲手写的也有几万行。我问了以下几个c编程的问题:
1,volatile修饰的变量与普通变量的区别--答错。为了确保问题是清晰明确的,我问他写uboot的时候有没有遇到过用volatile修饰的寄存器地址,答遇到过,又问这样做的原因是?答不出来。后来说他遇到过一次全局变量多线程访问,变量没及时更新,改成volatile就好了。
2,static修饰的局部变量与普通局部变量的区别---完全答不出..
3,inline函数与函数宏的区别 --完全答不出。我又问那两者共同点是什么,还是答不出...
此君开价3万。倒不是这个职位给不起这个价,而是这样的水平自称是做过五年嵌入式c开发的,我连5k都不会给这个人。但我不是决定者,也只好上网吐个槽。是我面试要求太高吗?
你们公司还要人么? 我是全栈工程师,你的这几个问题都不是问题。Java,JS,c++,问啥都行。
【 在 wificamera 的大作中提到: 】
: 五年嵌入式c开发经验,涉及uboot及各种rtos的开发。据他自己说维护的代码超过20w行,自己亲手写的也有几万行。我问了以下几个c编程的问题:
: 1,volatile修饰的变量与普通变量的区别--答错。为了确保问题是清晰明确的,我问他写uboot的时候有没有遇到过用volatile修饰的寄存器地址,答遇到过,又问这样做的原因是?答不出来。后来说他遇到过一次全局变量多线程访问,变量没及时更新,改成volatile就好了。
: 2,static修饰的局部变量与普通局部变量的区别---完全答不出..
: ...................
这三个都应该知道的
特别是最底层的
【 在 wificamera (wificamera) 的大作中提到: 】
: 五年嵌入式c开发经验,涉及uboot及各种rtos的开发。据他自己说维护的代码超过20w行,自己亲手写的也有几万行。我问了以下几个c编程的问题:
: 1,volatile修饰的变量与普通变量的区别--答错。为了确保问题是清晰明确的,我问他写uboot的时候有没有遇到过用volatile修饰的寄存器地址,答遇到过,又问这样做的原因是?答不出来。后来说他遇到过一次全局变量多线程访问,变量没及时更新,改成volatile就好了。
: 2,static修饰的局部变量与普通局部变量的区别---完全答不出..
: ...................
inline和局部static都可以不用
inline用不用区别不大,局部static可以用全局的,也能完成功能
但是volatile是没有替代手段的
绕不过去
【 在 slyboy (色拉油) 的大作中提到: 】
: 标 题: Re: 吐槽一个最近的面试者
: 发信站: 水木社区 (Thu Mar 22 10:17:06 2018), 站内
: 嗯,volatile露馅儿了
: 【 在 wificamera 的大作中提到: 】
: : 非211或985硕士。但那所学校的电子和计算机专业我的理解还可以。另外两个问题其实都可以不追究。但volatile这个,对于一个号称熟悉uboot的开发者,说不出来就不能忍了。
: --
这个夸张了。大一学完C以后,就应该知道
【 在 wificamera (wificamera) 的大作中提到: 】
: 五年嵌入式c开发经验,涉及uboot及各种rtos的开发。据他自己说维护的代码超过20w行,自己亲手写的也有几万行。我问了以下几个c编程的问题:
: 1,volatile修饰的变量与普通变量的区别--答错。为了确保问题是清晰明确的,我问他写uboot的时候有没有遇到过用volatile修饰的寄存器地址,答遇到过,又问这样做的原因是?答不出来。后来说他遇到过一次全局变量多线程访问,变量没及时更新,改成volatile就好了。
: 2,static修饰的局部变量与普通局部变量的区别---完全答不出..
: ...................
和排序算法还不一样,你用别的办法解决了,这不算问题
不用const/不用局部static/不用inline都是可以的
volatile这个不同,需要用的时候必须用,并且没有替代手段
【 在 shocker (\(^o^)/~) 的大作中提到: 】
: 标 题: Re: 吐槽一个最近的面试者
: 发信站: 水木社区 (Thu Mar 22 10:36:51 2018), 站内
: 说实在这些问题我刚毕业的时候记得最清楚,现在基本上直接问我我也不知道(其实不是不知道,是记得不清楚了)。
: 就跟毕业时什么冒泡,快排都会写,现在你让我排序只记得哪个库里找通用的排序方法,最多对有特殊特性的数据集考虑一下具体算法。一般来说这些精力不如考虑设计稳定可扩展可维护的架构划算。
: 【 在 pyl720 的大作中提到: 】
: : 这几个问题都很基础,答不出来有点过分,我几乎不写C的都知道
: --
我的意思是工作时间长了熟悉的是场景,知道什么时候该用什么,但未必再去记原因了。
你写个题,问他该不该用volatile,他可能会说对,但问为什么可能还是说不上来。
当然,我也不是说他真的掌握了volatile,但是工作长的人这样应该不少,除非他经常准备面试。
btw,我不用c十多年了,volatile反映不反映水平我不知道哦。只是随便说说一个有工作经验的大概想法,可能这玩意确实对嵌入式的很重要。
【 在 slowaction 的大作中提到: 】
: 和排序算法还不一样,你用别的办法解决了,这不算问题
: 不用const/不用局部static/不用inline都是可以的
: volatile这个不同,需要用的时候必须用,并且没有替代手段
: ...................
你说的逻辑不可能成立
知道什么时候该用什么
那他必然知道为什么要用
否则他怎么去判断某个场景应该不应该用
【 在 shocker (\(^o^)/~) 的大作中提到: 】
: 标 题: Re: 吐槽一个最近的面试者
: 发信站: 水木社区 (Thu Mar 22 10:54:47 2018), 站内
: 我的意思是工作时间长了熟悉的是场景,知道什么时候该用什么,但未必再去记原因了。
: 你写个题,问他该不该用volatile,他可能会说对,但问为什么可能还是说不上来。
: 当然,我也不是说他真的掌握了volatile,但是工作长的人这样应该不少,除非他经常准备面试。
: 【 在 slowaction 的大作中提到: 】
: : 和排序算法还不一样,你用别的办法解决了,这不算问题
: : 不用const/不用局部static/不用inline都是可以的
: : volatile这个不同,需要用的时候必须用,并且没有替代手段
: : ...................
: --
哎,这玩意就跟停车时,该挂什么档一样。挂n和挂p各有讲究,可你天天都碰到的是红绿灯停车,不超过3分钟,你就天天挂n挡,时间长了,你很容易记得就是到红绿灯挂n档,可你问他为啥不挂p档或者为什不光踩刹车就好了,他估计也说不出来。(关于该挂什么档我也不清楚,胡乱举个例子)。
这个东西就是这样子:红绿灯停车挂n档,对不对?对。为啥?不记得了。
这个你要说他不如说的出来为啥的新手司机开的好,估计没啥可信度吧。新手司机背得下来为啥,未必到红绿灯的时候记得用n档。
同样,我说的也不是什么一定正确的东西,也一样是个场景罢了。你要能碰到个其他条件一样又能说volatile的,那自然可能比这个好。
【 在 slowaction 的大作中提到: 】
: 你说的逻辑不可能成立
: 知道什么时候该用什么
: 那他必然知道为什么要用
: ...................