面试完心都凉了,对技术这条路毫无信心了,大家来鄙视下吧。

citroen_kimi 2010-04-23 03:03:31
首先,介绍下经验,2年数据库方面的开发,非VC,再接下来2年VC写些游戏杆、SKYPE电话的开发或USB通讯开发小程序,接下来3年做下位机监控开发,主要用VC,串口通讯,GDI及多线程。
去面试某知名互联网企业,写一int binary_find(int * p, int m, int n)原型的二分查找(p数组,m长度,n查找值,要求用递归,并返回实际查找到的下标,如果不存在于数组,返回情况:1,小于首元素则返回首元素下标,2,大于末元素则返回末元素下标,3,位于数组中,返回比他大的第一个元素的下标),这个当时我写成了这样:
int binary_find(int * p, int m, int n)
{
static int * pTemp = p; // 记录首指针
int k = p - pTemp; //记下偏移量

if (p[0] >= n) //首数大于或等于要查找的数n
return k;

if (p[m - 1] <= n) //末数小于或等于要查找的数n
return m - 1 + k;

int i = 0;
int j = m - 1;
int mid = (i + j) / 2;

if (n < p[mid])
return find(p, mid - 1, n);

if (n > p[mid])
{
if (p[mid + 1] > n)
return mid + k + 1;
return find(p + mid, m - mid, n);
}

if (p[mid] == n)
return mid + k;

return -1;
}
这个肯定也会有问题了
接下来,GDI对像有哪些,封装了什么内核对像,只答了画笔,画刷,实在不知道封装了什么内核对像,答封装了DC
PretranslateMessage的作用,答在窗口过程处理前可以在这个函数中截获消息处理,再问他能截获哪种类型的消息,当时一起似乎消息队列的都可以,不存在说哪种类型,竟然硬着头皮瞎说出命令消息,被BS
进程间通讯机制有哪些,答消息,socket,共享内存,再问什么时候用消息不用socket或用socket不用消息,还真不好答,只说若要触发另一进程的某个过程可以用消息,socket在执行上这种情况下效率会低。
再问com组件必须要实现的东西,答IUNKNOWN,再问包括哪几个接口,答QueryInterface,Addref, Release,再问如何管理生命周期的,答,记数器。

问到GDI绘制闪烁,答可以先内存绘图再bitblt贴出

最后面试官结论,工作年限与水平不匹配,估计要再练三年,拒绝。

还练三年,那就33岁了,确实在技术这条路上看来是走不通了,得转行了。
...全文
402 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
JISO9001 2010-04-24
  • 打赏
  • 举报
回复
jf........
citroen_kimi 2010-04-23
  • 打赏
  • 举报
回复
嗯,正打算转行了。
dirdirdir3 2010-04-23
  • 打赏
  • 举报
回复
其实楼主不必灰心,主要是没有准备好而已,很多知识可以网上看的...........也就大同小异............主要是算法方面提高一下就差不多了..................
不过技术牛其实作用不大,向管理,销售方面发展才是正途(至少在中国)....................技术路线的话就要向架构师,技术总监等发展,楼主有心思还不如学项目管理,软件工程...............
citroen_kimi 2010-04-23
  • 打赏
  • 举报
回复
晕,写错了,是对的应该,等级高的确实不一样
citroen_kimi 2010-04-23
  • 打赏
  • 举报
回复
[Quote=引用 33 楼 dirdirdir3 的回复:]

少判断一句了.......
int binary_find(int * p, int m, int n)
{
if(p[0]>=n)
return 0;
if(n>=p[m-1])
return m-1;
int i=(m-1)>>1;
if(i==0)
return 1;
if(p[i]==n)
return i;
……
[/Quote]

似乎还是错了,请用以下测试:
int main()
{
int a[2] = {1,3};
int b = binary_find(a, 1, 2);
cout << b << endl;
return 1;
}
citroen_kimi 2010-04-23
  • 打赏
  • 举报
回复
哦,后面有+i+1,对了。
dirdirdir3 2010-04-23
  • 打赏
  • 举报
回复
小于首元素则返回首元素下标

首元素坐标就是0
dirdirdir3 2010-04-23
  • 打赏
  • 举报
回复
少判断一句了.......
int binary_find(int * p, int m, int n)
{
if(p[0]>=n)
return 0;
if(n>=p[m-1])
return m-1;
int i=(m-1)>>1;
if(i==0)
return 1;
if(p[i]==n)
return i;
return (p[i]>n)?binary_find(p,i+1,n):(binary_find(p+i+1,m-i-1,n)+i+1);
}
citroen_kimi 2010-04-23
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 dirdirdir3 的回复:]

没有错,看清楚.........是递归函数...........
[/Quote]

假如递归调用一次,第一行代码if成立,你返回的下标0还对吗?
dirdirdir3 2010-04-23
  • 打赏
  • 举报
回复
没有错,看清楚.........是递归函数...........
citroen_kimi 2010-04-23
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 dirdirdir3 的回复:]

int binary_find(int * p, int m, int n)
{
if(p[0]>=n)
return 0;
if(n>=p[m-1])
return m-1;
int i=(m-1)>>1;
if(p[i]==n)
return i;
return (p[i]>n)?binary_find(p,i+1,n):(bin……
[/Quote]

要返回真实下标,应该你的第1行代码就错了。
dirdirdir3 2010-04-23
  • 打赏
  • 举报
回复
int binary_find(int * p, int m, int n)
{
if(p[0]>=n)
return 0;
if(n>=p[m-1])
return m-1;
int i=(m-1)>>1;
if(p[i]==n)
return i;
return (p[i]>n)?binary_find(p,i+1,n):(binary_find(p+i+1,m-i-1,n)+i+1);
}
青稞 2010-04-23
  • 打赏
  • 举报
回复
此处不留爷,自有留爷处,处处不留爷,爷干个体户..
楼主,面试就是被打击得,不然怎么压你工资哦.但话又说回来,东西还是要学,要研究,没有什么是绝对的..
搞技术不是唯一出路,看你咋个抉择了..30岁对自己也应该知底了,适合不适合自己做决断吧..
TANG_XIAO_BIN 2010-04-23
  • 打赏
  • 举报
回复
楼上的有道理!!!!!
citroen_kimi 2010-04-23
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 marrco2005 的回复:]

其实楼主被鄙视的不是因为技术,而是面试时的表现。
你在面试的时候一定是过于谦虚,把自己的位置放的过低了,
以至于一开始面试官就建立起了对你心理上的优势
你去一家公司工作,是去帮他们赚钱的,而不是讨饭吃的,
所以面试的时候,一定要不卑不亢,在这种情况下,面试官心理也会没底,
他摸不准你的实力,就不敢放肆。
[/Quote]

一开始实际上并没什么谦不谦虚的,后来确实是的,你太神了,但是面试官本来就是相对来说占优势吧,他问的问题肯定是他知道的很深的,如果你在他了解很深的方面恰好有缺陷,自然就形成这种情况了。
citroen_kimi 2010-04-23
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 sk_sakula 的回复:]

确实啊,照你说的你做了8年VC开发,怎么会不知道GDI封装了那些对象
还有是命令消息和什么消息来着,系统内有三种消息,看孙鑫的视频学的,
看来楼主每天睡觉的时间必定早于11点
[/Quote]

首先,我觉得我确实技术上不行

7年开发,VC是四年
GDI封装了什么内核对像我还真想请教一下
系统有三种消息没错,但是当时我说的是队列里的消息,系统内的三种消息我当然知道
marrco2005 2010-04-23
  • 打赏
  • 举报
回复
其实楼主被鄙视的不是因为技术,而是面试时的表现。
你在面试的时候一定是过于谦虚,把自己的位置放的过低了,
以至于一开始面试官就建立起了对你心理上的优势
你去一家公司工作,是去帮他们赚钱的,而不是讨饭吃的,
所以面试的时候,一定要不卑不亢,在这种情况下,面试官心理也会没底,
他摸不准你的实力,就不敢放肆。

sk_sakula 2010-04-23
  • 打赏
  • 举报
回复
确实啊,照你说的你做了8年VC开发,怎么会不知道GDI封装了那些对象
还有是命令消息和什么消息来着,系统内有三种消息,看孙鑫的视频学的,
看来楼主每天睡觉的时间必定早于11点
mszjk 2010-04-23
  • 打赏
  • 举报
回复
samuellei 2010-04-23
  • 打赏
  • 举报
回复
有机会做项目管理吧,该转了
加载更多回复(20)

1,662

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧