吐槽一个最近的面试者

wificamera
wificamera 2018-03-22 字数 673

五年嵌入式c开发经验,涉及uboot及各种rtos的开发。据他自己说维护的代码超过20w行,自己亲手写的也有几万行。我问了以下几个c编程的问题:

1,volatile修饰的变量与普通变量的区别--答错。为了确保问题是清晰明确的,我问他写uboot的时候有没有遇到过用volatile修饰的寄存器地址,答遇到过,又问这样做的原因是?答不出来。后来说他遇到过一次全局变量多线程访问,变量没及时更新,改成volatile就好了。

2,static修饰的局部变量与普通局部变量的区别---完全答不出..

3,inline函数与函数宏的区别 --完全答不出。我又问那两者共同点是什么,还是答不出...

此君开价3万。倒不是这个职位给不起这个价,而是这样的水平自称是做过五年嵌入式c开发的,我连5k都不会给这个人。但我不是决定者,也只好上网吐个槽。是我面试要求太高吗?

1 个Like
146 个回复
slyboy
色拉油 2018-03-22

被面试者什么学校/专业背景?

一般有工作经验的面试,也有很多人喜欢问一些被面试者的项目经历,比如在什么平台上开发过啥,然后结合项目经历问一些问题是如何解决的。

pyl720
小路※粉衫轻解露香肩 2018-03-22

这几个问题都很基础,答不出来有点过分,我几乎不写C的都知道

wificamera
wificamera 2018-03-22

非211或985硕士。但那所学校的电子和计算机专业我的理解还可以。另外两个问题其实都可以不追究。但volatile这个,对于一个号称熟悉uboot的开发者,说不出来就不能忍了。

【 在 slyboy 的大作中提到: 】

: 被面试者什么学校/专业背景?

: 一般有工作经验的面试,也有很多人喜欢问一些被面试者的项目经历,比如在什么平台上开发过啥,然后结合项目经历问一些问题是如何解决的。

haguhu
哈孤虎 2018-03-22

你们公司还要人么? 我是全栈工程师,你的这几个问题都不是问题。Java,JS,c++,问啥都行。

【 在 wificamera 的大作中提到: 】

: 五年嵌入式c开发经验,涉及uboot及各种rtos的开发。据他自己说维护的代码超过20w行,自己亲手写的也有几万行。我问了以下几个c编程的问题:

: 1,volatile修饰的变量与普通变量的区别--答错。为了确保问题是清晰明确的,我问他写uboot的时候有没有遇到过用volatile修饰的寄存器地址,答遇到过,又问这样做的原因是?答不出来。后来说他遇到过一次全局变量多线程访问,变量没及时更新,改成volatile就好了。

: 2,static修饰的局部变量与普通局部变量的区别---完全答不出..

: ...................

slowaction
slowaction 2018-03-22

这三个都应该知道的

特别是最底层的

【 在 wificamera (wificamera) 的大作中提到: 】

: 五年嵌入式c开发经验,涉及uboot及各种rtos的开发。据他自己说维护的代码超过20w行,自己亲手写的也有几万行。我问了以下几个c编程的问题:

: 1,volatile修饰的变量与普通变量的区别--答错。为了确保问题是清晰明确的,我问他写uboot的时候有没有遇到过用volatile修饰的寄存器地址,答遇到过,又问这样做的原因是?答不出来。后来说他遇到过一次全局变量多线程访问,变量没及时更新,改成volatile就好了。

: 2,static修饰的局部变量与普通局部变量的区别---完全答不出..

: ...................

eorsl
Walt 2018-03-22

更本和他不相关

slyboy
色拉油 2018-03-22

嗯,volatile露馅儿了

【 在 wificamera 的大作中提到: 】

: 非211或985硕士。但那所学校的电子和计算机专业我的理解还可以。另外两个问题其实都可以不追究。但volatile这个,对于一个号称熟悉uboot的开发者,说不出来就不能忍了。

slowaction
slowaction 2018-03-22

inline和局部static都可以不用

inline用不用区别不大,局部static可以用全局的,也能完成功能

但是volatile是没有替代手段的

绕不过去

【 在 slyboy (色拉油) 的大作中提到: 】

: 标  题: Re: 吐槽一个最近的面试者

: 发信站: 水木社区 (Thu Mar 22 10:17:06 2018), 站内

: 嗯,volatile露馅儿了

: 【 在 wificamera 的大作中提到: 】

: : 非211或985硕士。但那所学校的电子和计算机专业我的理解还可以。另外两个问题其实都可以不追究。但volatile这个,对于一个号称熟悉uboot的开发者,说不出来就不能忍了。

: --

Naory
hh 2018-03-22

这个夸张了。大一学完C以后,就应该知道

【 在 wificamera (wificamera) 的大作中提到: 】

: 五年嵌入式c开发经验,涉及uboot及各种rtos的开发。据他自己说维护的代码超过20w行,自己亲手写的也有几万行。我问了以下几个c编程的问题:

: 1,volatile修饰的变量与普通变量的区别--答错。为了确保问题是清晰明确的,我问他写uboot的时候有没有遇到过用volatile修饰的寄存器地址,答遇到过,又问这样做的原因是?答不出来。后来说他遇到过一次全局变量多线程访问,变量没及时更新,改成volatile就好了。

: 2,static修饰的局部变量与普通局部变量的区别---完全答不出..

: ...................

shocker
\(^o^)/~ 2018-03-22

说实在这些问题我刚毕业的时候记得最清楚,现在基本上直接问我我也不知道(其实不是不知道,是记得不清楚了)。

就跟毕业时什么冒泡,快排都会写,现在你让我排序只记得哪个库里找通用的排序方法,最多对有特殊特性的数据集考虑一下具体算法。一般来说这些精力不如考虑设计稳定可扩展可维护的架构划算。

【 在 pyl720 的大作中提到: 】

: 这几个问题都很基础,答不出来有点过分,我几乎不写C的都知道

slyboy
色拉油 2018-03-22

是这么回事儿,一个volatile可以看出内功

【 在 slowaction 的大作中提到: 】

: inline和局部static都可以不用

: inline用不用区别不大,局部static可以用全局的,也能完成功能

: 但是volatile是没有替代手段的

: ...................

slowaction
slowaction 2018-03-22

和排序算法还不一样,你用别的办法解决了,这不算问题

不用const/不用局部static/不用inline都是可以的

volatile这个不同,需要用的时候必须用,并且没有替代手段

【 在 shocker (\(^o^)/~) 的大作中提到: 】

: 标  题: Re: 吐槽一个最近的面试者

: 发信站: 水木社区 (Thu Mar 22 10:36:51 2018), 站内

: 说实在这些问题我刚毕业的时候记得最清楚,现在基本上直接问我我也不知道(其实不是不知道,是记得不清楚了)。

: 就跟毕业时什么冒泡,快排都会写,现在你让我排序只记得哪个库里找通用的排序方法,最多对有特殊特性的数据集考虑一下具体算法。一般来说这些精力不如考虑设计稳定可扩展可维护的架构划算。

: 【 在 pyl720 的大作中提到: 】

: : 这几个问题都很基础,答不出来有点过分,我几乎不写C的都知道

: --

shocker
\(^o^)/~ 2018-03-22

我的意思是工作时间长了熟悉的是场景,知道什么时候该用什么,但未必再去记原因了。

你写个题,问他该不该用volatile,他可能会说对,但问为什么可能还是说不上来。

当然,我也不是说他真的掌握了volatile,但是工作长的人这样应该不少,除非他经常准备面试。

btw,我不用c十多年了,volatile反映不反映水平我不知道哦。只是随便说说一个有工作经验的大概想法,可能这玩意确实对嵌入式的很重要。

【 在 slowaction 的大作中提到: 】

: 和排序算法还不一样,你用别的办法解决了,这不算问题

: 不用const/不用局部static/不用inline都是可以的

: volatile这个不同,需要用的时候必须用,并且没有替代手段

: ...................

slowaction
slowaction 2018-03-22

你说的逻辑不可能成立

知道什么时候该用什么

那他必然知道为什么要用

否则他怎么去判断某个场景应该不应该用

【 在 shocker (\(^o^)/~) 的大作中提到: 】

: 标  题: Re: 吐槽一个最近的面试者

: 发信站: 水木社区 (Thu Mar 22 10:54:47 2018), 站内

: 我的意思是工作时间长了熟悉的是场景,知道什么时候该用什么,但未必再去记原因了。

: 你写个题,问他该不该用volatile,他可能会说对,但问为什么可能还是说不上来。

: 当然,我也不是说他真的掌握了volatile,但是工作长的人这样应该不少,除非他经常准备面试。

: 【 在 slowaction 的大作中提到: 】

: : 和排序算法还不一样,你用别的办法解决了,这不算问题

: : 不用const/不用局部static/不用inline都是可以的

: : volatile这个不同,需要用的时候必须用,并且没有替代手段

: : ...................

: --

cybereagle
2/3的沉默@XMUCSD 2018-03-22

不理解原因怎么准确判断什么时候该用什么?

【 在 shocker (\(^o^)/~) 的大作中提到: 】

: 我的意思是工作时间长了熟悉的是场景,知道什么时候该用什么,但未必再去记原因了。

: 你写个题,问他该不该用volatile,他可能会说对,但问为什么可能还是说不上来。

: 当然,我也不是说他真的掌握了volatile,但是工作长的人这样应该不少,除非他经常准备面试。

: ...................

l0JQKA
-)__(- 2018-03-22
shocker
\(^o^)/~ 2018-03-22

哎,这玩意就跟停车时,该挂什么档一样。挂n和挂p各有讲究,可你天天都碰到的是红绿灯停车,不超过3分钟,你就天天挂n挡,时间长了,你很容易记得就是到红绿灯挂n档,可你问他为啥不挂p档或者为什不光踩刹车就好了,他估计也说不出来。(关于该挂什么档我也不清楚,胡乱举个例子)。

这个东西就是这样子:红绿灯停车挂n档,对不对?对。为啥?不记得了。

这个你要说他不如说的出来为啥的新手司机开的好,估计没啥可信度吧。新手司机背得下来为啥,未必到红绿灯的时候记得用n档。

同样,我说的也不是什么一定正确的东西,也一样是个场景罢了。你要能碰到个其他条件一样又能说volatile的,那自然可能比这个好。

【 在 slowaction 的大作中提到: 】

: 你说的逻辑不可能成立

: 知道什么时候该用什么

: 那他必然知道为什么要用

: ...................

eggcar
eggcar 2018-03-22

可能是一直维护别人的框架下面的业务代码,基本接触不到底层。不然就很难想象这5年他上家公司都遭遇了些什么……

yumai
文若书生 2018-03-22

太基础了问题。