现在的C工程师真难招啊

181 个回复
revever
地球是天上一颗星 2012-07-02

“要求绝对正确”,这个要求能找到人么?

我的项目组负责金融数据处理,应该有很多高手了。但我不觉得能有一个做到这点,基本

上大概知道算法,但真要实现的话,要么积累的代码库里已经有了,要么去网上搜一下。

而且绝对正确这种事情存在么?这种查找算法说起来简单,但是真得有很多细节的,随便

一点,怎样针对不同多核服务器进行并行查找的优化。

者,居然没有一个人正确写出?!

【 在 hitperson (湖南人) 的大作中提到: 】

: 来应聘时个个都是三年以上工作经验的,先来个折半查找,要求绝对正确,十几个应聘

winterchill
冷冷的太阳 2012-07-02

这样的人多了中国自然就只能山寨别人的产品了。

系统的机制等

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

: 我一直存在一个疑惑,其实我对于c语言的分析和理解 自我感觉还算透彻

: 但是这些算法或者说小的编程例子,我一般面试就一下子写不出来,除非事先复习过

: 因为平时工作中都是些芯片驱动代码,分析芯片的工作机制,解决芯驱动的bug,和操作

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

winterchill
冷冷的太阳 2012-07-02

不是考验你重复造轮子。考这种题两个目的:

1. 考你对算法/系统内部理解程度。不会对工程有直接帮助,但是会有助于你设计高效算

法。

2. 传统的算法比如二分查找都是自身完整逻辑清楚,而且有一定实现难度的问题。除非你

事先背过,否则是考察你自身能力的很好的试金石。

【 在 SlO (斯洛) 的大作中提到: 】

: 同意。

: 这种题目考察的是重复制造轮子的能力。。。

: 而现实中程序员大部分时候不是写代码,更不是重复制造轮子,而是debug和测试。

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

winterchill
冷冷的太阳 2012-07-02

low + high本身可能会溢出。他开玩笑。如果能溢出的话程序首先先被OOM了。

【 在 xgc (新高潮) 的大作中提到: 】

: 若问咋溢出?

: (low+high)/2肯定在low和high之间啊

winterchill
冷冷的太阳 2012-07-02

当然不是绝对正确,而是面试官挑不出毛病。后者问题还是不大的。

下。

【 在 revever (地球是天上一颗星) 的大作中提到: 】

: “要求绝对正确”,这个要求能找到人么?

: 我的项目组负责金融数据处理,应该有很多高手了。但我不觉得能有一个做到这点,基

: 上大概知道算法,但真要实现的话,要么积累的代码库里已经有了,要么去网上搜一

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

wwdong
wwdong 2012-07-02

又见二分法。一定是出的价太少了

聘者,居然没有一个人正确写出?!

【 在 hitperson (湖南人) 的大作中提到: 】

: 来应聘时个个都是三年以上工作经验的,先来个折半查找,要求绝对正确,十几个应

qblyy
新的昵称 2012-07-02

不好

而且有可能越界

【 在 coding (一心聊天儿~) 的大作中提到: 】

: int bin_search(int arr[], int key, int low, int high)

: {

:     if (low > high)

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

alinghi
2012-07-02

re

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

: 手写绝对正确意义很大么?

: 或者说写程序,一次能编过,并且没bug

: 这重要么

fanci
大葡萄 2012-07-02

如果 high 定义为数组最后一个位置+1,那么 low < high 是标准的写法啊

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

: 标  题: Re: 现在的C工程师真难招啊

: 发信站: 水木社区 (Sun Jul  1 23:36:32 2012), 站内

: 挺好的。

: (low+high)/2溢出那个,在看编程之美之前我也没意识。

: 有一个可以小小优化的地方,当key小于arr[0]或者大于arr[n-1]的时候,预先判断可达到更好的速度。

: 如果被问到递归比较消耗资源,而回答出编译器会做尾递归优化,则会被大大加分。

: 我之前见过一哥们写二分查找,while循环开头的条件是low < high,那么如果low=high的时候就出错了,是比较严重的bug。

: 【 在 coding (一心聊天儿~) 的大作中提到: 】

: : int bin_search(int arr[], int key, int low, int high)

: : {

: :     if (low > high)

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

: --

ideas
大思路 2012-07-02

这小破程序还递归?难怪满足条件的不多

二分查找是最基本的算法,写不出来绝对水平不高

算法书上经典算法都亲自实现一遍 对于编程技能提高大大有好处,尤其是对实现工作中新

算法的完整性和简洁性方面 最有帮助

【 在 coding (一心聊天儿~) 的大作中提到: 】

: int bin_search(int arr[], int key, int low, int high)

: {

:     if (low > high)

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

euro1
欧元 2012-07-02

操,知道这个意思,再调试就得了,还他妈绝对正确,日。

一个好的员工,一看他的工作经验,二要看他的工作态度,是不是能放下心来做项目,解bug,即便技术稍微糙点,都没关系。

你这种心态招人,对么?你们是什么公司,你又是个什么水平的人,看见一斑。

cannonball
一路狂奔 2012-07-02

考试那一套招干活的人真有问题,一般你问他一个具体的东西,让他说自己实现的思路和需要的各种东西才能看出实操经验。

liuanhuaming
凌波微步 2012-07-02

招人是个技术活,看工作经验和做题都不靠谱,这些手段只能说明识人乏术。

现在最有效的,也是熟人推荐的方法。对一个陌生人短时间做出客观的评价,何其难也。

myheimu
myheimu 2012-07-02

那个哥们定义的high是数组最后一个位置。

如果high是最后一个位置+1的话,最开始的判断需要是low >= high就返回-1,而不是low > high。

总之是他漏掉了边界的一个特殊情况。

【 在 fanci (大葡萄) 的大作中提到: 】

: 如果 high 定义为数组最后一个位置+1,那么 low < high 是标准的写法啊

abandon
男儿多薄幸 2012-07-02

非常认同,这种面试题一点意义没有。远不如找一个你实际工作中遇到的问题,看看面试

者怎么解决的。

系统的机制等

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

: 我一直存在一个疑惑,其实我对于c语言的分析和理解 自我感觉还算透彻

: 但是这些算法或者说小的编程例子,我一般面试就一下子写不出来,除非事先复习过

: 因为平时工作中都是些芯片驱动代码,分析芯片的工作机制,解决芯驱动的bug,和操作

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

liuxueshen
rock 2012-07-02

这么做跟赌博一样一样的,同样水平的人,有的一眼能看出来,有的要调试大半天……

而且这种问题可不是面试分分钟就能搞定定事情

【 在 abandon (男儿多薄幸) 的大作中提到: 】

: 标  题: Re: 现在的C工程师真难招啊

: 发信站: 水木社区 (Mon Jul  2 09:07:37 2012), 站内

: 非常认同,这种面试题一点意义没有。远不如找一个你实际工作中遇到的问题,看看面试

: 者怎么解决的。

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

: : 我一直存在一个疑惑,其实我对于c语言的分析和理解 自我感觉还算透彻

: : 但是这些算法或者说小的编程例子,我一般面试就一下子写不出来,除非事先复习过

: : 因为平时工作中都是些芯片驱动代码,分析芯片的工作机制,解决芯驱动的bug,和操作

: 系统的机制等

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

: --

vonNeumann
劣币驱逐良币 | 少灌水 2012-07-02

他可能用的是左闭右开区间 [low,high) 吧,STL 风格

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

: 如果被问到递归比较消耗资源,而回答出编译器会做尾递归优化,则会被大大加分。

: 我之前见过一哥们写二分查找,while循环开头的条件是low < high,那么如果

: low=high的时候就出错了,是比较严重的bug。

: 【 在 coding (一心聊天儿~) 的大作中提到: 】

: : int bin_search(int arr[], int key, int low, int high)

: : {

: :     if (low > high)

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

: --

vonNeumann
劣币驱逐良币 | 少灌水 2012-07-02

low<high 取反就是 log>=high 啊

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

: 那个哥们定义的high是数组最后一个位置。

: 如果high是最后一个位置+1的话,最开始的判断需要是low >= high就返回-1,而不是

: low > high。

: 总之是他漏掉了边界的一个特殊情况。

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

myheimu
myheimu 2012-07-02

他写的是:

if (low < high) 返回找不到。

while(low > high) ....

中间就漏掉了=的情况。

【 在 vonNeumann (Neumann J\'anos Lajos) 的大作中提到: 】

: low<high 取反就是 log>=high 啊

eematlab
一辰未冉 2012-07-02

说实话,我觉得面试者要靠一些网上的题目来考察面试者,那么说明面试者本身的水平也比较差,没有办法根据面试者的简历中的项目来即时问问题,只能靠事先准备好的考察细节的题目来机械问答

【 在 hitperson (湖南人) 的大作中提到: 】

: 来应聘时个个都是三年以上工作经验的,先来个折半查找,要求绝对正确,十几个应聘者,居然没有一个人正确写出?!