`
shin-
  • 浏览: 1473 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

从面试题看高级软件工程师需具备的技艺(附最后两题的详细说明)

阅读更多
1.B/S方面,
  简要介绍企业内部系统的设计需要注意哪些问题.
   然后就提到的性能,安全,可扩展性,可用性等非功能性特性中的一点或几点深入的讨论

2.数据库性能问题
  数据库设计一般需要注意哪些
  索引如何设计
  如何快速定位在较高负载时造成性能问题的存储过程或查询语句
  你自己一个功能较复杂的存储过程,如何评估它的效能,以及达到什么样的标准才签入到产品中

3.设计
  关于组件对外提供的接口,需要注意哪些
  工作中用过哪些设计模式及面向对象设计的原则,有过有用过的话,有没有相对较难但效果很好的实际应用

4.测试
  有过自动化测试的经验吗,如果有的话,简单介绍下具体操作.

5.解决问题
  如果忽然碰到很棘手,而且从来没接触过的问题,你一般会怎么解决
  详述如忽然要你做一个OCR,64位兼容,硬件调用等问题,简要讨论怎么解决

6.其他
  有没有看过一些给你触动很大的面向对象设计的书籍,有的话简单介绍一下该书的大致内容以及印象很深刻的一部分

  如果之前承诺的发布日期就在两周后,但你发现你负责的模块需要三周才能完成.你会怎么做
  假如你想申请延期或砍功能,你怎么说服经理

  某测试小组成员老将测试你负责部分中出现的Bug直接提交到高层,且经常在你比较忙的时候请教你负责模块的内容.对于这种情况,你打算如何处理

---------分割线-----------------------------------------------------------------------
上面的问题都是我在三月份左右面试的真实问题,当然不会全部问到。
面试或者说是面谈是一个交互的过程,谈论的话题也并非都有正误之分。目的只是让双方有个相互了解,一是公司需要什么样的人,什么样的技术;二是应聘者能否认同公司的工作方式。

  公司需要的是对设计尤其是面向对象设计要有较深刻的理解和实际的工作经历。同时需要开发者对自己的负责模块的数据库设计负责,还可能会有一些未知的难题负责,同时需要对代码的质量负责,有自动化的单元测试更好。

  另外倒数第二题,讨论项目会延期的问题。我先介绍下我们公司目前的发布流程,我们产品一般会在3个月左右发布一个小的版本(比如6.1到6.2版)一年左右一个主版本(如6.x到7.0),版本的发布期限相对有规律,而主要的需求在该版本开始前就会确定,当然开发的过程中会有所变更,但不会是大的变更。

  就怎么说服上层,就我以前常用的办法。无非是晓之以理,列明厉害关系。提供上层决策需要的资料。就我以前的经历来看,几乎没有失手过。但非常重要的一点就是你要从多过方面准备资料,并且确实是站在符合产品大目标的角度来阐述。
  另外,我们这基本不加班。而且你私底下把问题消化而不提交给你的经理,我认为反而是最不好的。一是经理或更上层根本就不知道这个风险,也就不会有应对的计划和措施了。二是加班赶出来的进度质量一般都不大可能比正常工作的好。三是你可以加班不代表测试团队,市场部门都会乐意陪你加班。
  当然,你要是能早点提出问题,不在发布前不久才提出问题就更好了。



   关于最后一题,关于核测试团队合作的讨论。就更没大家想的那么复杂了。也说下上下文,之前测试团队找到Bug是有奖励的;同时Bug多到临界数目时,开发成员必须停下来处理Bug。
   所以呢,测试成员乐于提交Bug涉及到两个问题,一是以数量论英雄的方式和沟通的问题。二是如何更好的协作。
Bug的提交奖励我们后来略作修改,Bug也带上价值从0到5个星。最后产品的最终成功也和测试成员的绩效相关,也就是你测试的模块最后按时高质量的完成了.你的绩效也就高
   另外,测试成员提交所有未经考虑或评估的所有问题,对开发成员当然有影响,一个是声誉一个是中途停下来处理Bug势必影响开发进度.但同时对测试成员也会有影响的,老是低质量的bug飞来飞去浪费大家时间.所以你可以和一些还不熟悉的测试成员说明利害,让他提交之前做些考虑,同时可以参照别人的Bug.最重要的一点你要他将bug抄送给你,将一些常见的不是bug的种类告诉他,让他在提交之前一定要先考虑.

  关于测试成员老在你工作时打搅你,这个想问的是你如何处理工作干扰.这个问题楼下有个回答很好,留单独的时间讨论.
  我自己的做法是,提醒测试成员先将所有问题先记下来,并邮件发送过来.汇总之后抽时间一块讨论.当然如果测试成员无法继续工作(测试)时,你还是不能让他干等一个上午的.

  其实,说到底就是如何和测试成员共同工作.如果能让他的工作能提升你的效率就更好了.反正大家都是为了产品销量更好,互相配合才是最好的.


分享到:
评论
23 楼 gigix 2010-03-28  
抛出异常的爱 写道
我一直认为需要设身处地的去想。。。所以老进死胡同。

孙子兵法说了,有对手三倍兵力就跟他打,有对手五倍兵力就把他围起来,这是用兵的正道。
说到做项目,我追求的是让项目不起火,大家安安稳稳舒舒服服把事情做好。如果经常都要救火,我就会觉得这个事情很傻逼。
所以如果有人问我怎么救火,我就会多加个心眼:这是不是表示起火是这个公司的常态?
那我就要利用他这个问题多探一探他的情况和他对这件事的看法。
如果这家公司本身就是以救火为荣的,那我就可以先闪了。
22 楼 抛出异常的爱 2010-03-28  
gigix 写道
抛出异常的爱 写道
我见过最牛的回答是gigix在某个贴子的回复。。。。那才是经验

嘿嘿,被吹捧了…
关于老抛说的两个难题,你首先要弄清场合:这是在面试。我的态度是,不要在这个时候就把自己放在非得对这个事情负责的位置上。说白了,我还没决定上不上你的船呢。你作为公司评估我有没有能力,我还要评估你这家公司够不够水准。
所以对这种问题我肯定会利用一下,用来定个调子。
引用
如果之前承诺的发布日期就在两周后,但你发现你负责的模块需要三周才能完成.你会怎么做
  假如你想申请延期或砍功能,你怎么说服经理

我根本不说服。事实就是这样的,燃尽图摆在面前谁都能看到。我的上司你要么面对现实,给更长的时间,或者做更少的事;要么你说不行,大家挑战一下,加个班,那么你告诉我,我怎么去跟团队讲,你许诺团队什么好处。我就是一个团队的支撑者,我不是股东,所以我自己不会为了项目拼命,也不会让团队为了项目拼命。这个调子定下来,如果招聘方不认可我这个定位,那就可以马上说拜拜,省得大家浪费时间。
引用
某测试小组成员老将测试你负责部分中出现的Bug直接提交到高层,且经常在你比较忙的时候请教你负责模块的内容.对于这种情况,你打算如何处理

给提这个问题的人上一课,给他讲讲什么叫集体代码所有制,什么叫团队职责共享,缺少这些东西会有什么恶果。一样,他如果认可,那还有得谈;如果他对这些彻底不认可,那就拜拜,快捷方便。

总结:面试是双方互相试探的过程。要是拿到一个问题你就先把设身处地进去想我应该怎么解决这个问题,嗯,你就已经败了。

我一直认为需要设身处地的去想。。。所以老进死胡同。
21 楼 gigix 2010-03-28  
抛出异常的爱 写道
我见过最牛的回答是gigix在某个贴子的回复。。。。那才是经验

嘿嘿,被吹捧了…
关于老抛说的两个难题,你首先要弄清场合:这是在面试。我的态度是,不要在这个时候就把自己放在非得对这个事情负责的位置上。说白了,我还没决定上不上你的船呢。你作为公司评估我有没有能力,我还要评估你这家公司够不够水准。
所以对这种问题我肯定会利用一下,用来定个调子。
引用
如果之前承诺的发布日期就在两周后,但你发现你负责的模块需要三周才能完成.你会怎么做
  假如你想申请延期或砍功能,你怎么说服经理

我根本不说服。事实就是这样的,燃尽图摆在面前谁都能看到。我的上司你要么面对现实,给更长的时间,或者做更少的事;要么你说不行,大家挑战一下,加个班,那么你告诉我,我怎么去跟团队讲,你许诺团队什么好处。我就是一个团队的支撑者,我不是股东,所以我自己不会为了项目拼命,也不会让团队为了项目拼命。这个调子定下来,如果招聘方不认可我这个定位,那就可以马上说拜拜,省得大家浪费时间。
引用
某测试小组成员老将测试你负责部分中出现的Bug直接提交到高层,且经常在你比较忙的时候请教你负责模块的内容.对于这种情况,你打算如何处理

给提这个问题的人上一课,给他讲讲什么叫集体代码所有制,什么叫团队职责共享,缺少这些东西会有什么恶果。一样,他如果认可,那还有得谈;如果他对这些彻底不认可,那就拜拜,快捷方便。

总结:面试是双方互相试探的过程。要是拿到一个问题你就先把设身处地进去想我应该怎么解决这个问题,嗯,你就已经败了。
20 楼 抛出异常的爱 2010-03-28  
lzw0286 写道
楼上说得好。有些东西不是我们程序员能决定的,是由上级或者流程决定的。

上面二个与我的想法差不多。。。。
不过也是平常人的想法。。。。
不合适当项目经理。

我见过最牛的回答是gigix在某个贴子的回复。。。。那才是经验
19 楼 lzw0286 2010-03-28  
楼上说得好。有些东西不是我们程序员能决定的,是由上级或者流程决定的。
18 楼 fxsc 2010-03-27  
后面两题都不算技术题,考情商也不像。
作为程序员的话
倒数第二题,你应该把情况如实告诉经理,决定权在他,他会问你各种选择在技术上的结果,然后权衡利弊,像上层汇报,产品发布可不是程序员说了算的。
倒数第一题,公司应该有固定的测试反馈流程,该反馈到哪一级,流程定好的。忙的时候请教内容,那需要快速判断事情的优先级在做,得看情景。
17 楼 net205 2010-03-27  
听大家答案来的.
16 楼 抛出异常的爱 2010-03-27  
bluepopopo 写道
引用
如果之前承诺的发布日期就在两周后,但你发现你负责的模块需要三周才能完成.你会怎么做
  假如你想申请延期或砍功能,你怎么说服经理



成本,质量,进度计划,三者维持相对平衡。前期进度估算不准,需要调整时,其二者必然有所取舍。


引用
  某测试小组成员老将测试你负责部分中出现的Bug直接提交到高层,且经常在你比较忙的时候请教你负责模块的内容.对于这种情况,你打算如何处理



按照bug优先级做事。


一半可能吧。。。。。
你的办法很好不过是看起来好
15 楼 bluepopopo 2010-03-27  
引用
如果之前承诺的发布日期就在两周后,但你发现你负责的模块需要三周才能完成.你会怎么做
  假如你想申请延期或砍功能,你怎么说服经理



成本,质量,进度计划,三者维持相对平衡。前期进度估算不准,需要调整时,其二者必然有所取舍。


引用
  某测试小组成员老将测试你负责部分中出现的Bug直接提交到高层,且经常在你比较忙的时候请教你负责模块的内容.对于这种情况,你打算如何处理



按照bug优先级做事。

14 楼 抛出异常的爱 2010-03-27  
拥抱变化之美 写道
抛出异常的爱 写道
1-6很感性。。。。对了错了就那个样子。

后面的两题很致命。
估计我答有一半折的概率


倒数第二题:
    先找思路,要知道如何下手,从哪下手。

倒数第一题:
   
引用
假如你想申请延期或砍功能,你怎么说服经理

    讲清利害关系,他自己就会让你延期或砍功能


   
引用
某测试小组成员老将测试你负责部分中出现的Bug直接提交到高层且经常在你比较忙的时候请教你负责模块的内容.对于这种情况,你打算如何处理

    原来这个家伙既不守规矩也不懂业务,换个测试员吧。

我有一半可能。你是一点可能没有。。。
13 楼 拥抱变化之美 2010-03-27  
抛出异常的爱 写道
1-6很感性。。。。对了错了就那个样子。

后面的两题很致命。
估计我答有一半折的概率


倒数第二题:
    先找思路,要知道如何下手,从哪下手。

倒数第一题:
   
引用
假如你想申请延期或砍功能,你怎么说服经理

    讲清利害关系,他自己就会让你延期或砍功能


   
引用
某测试小组成员老将测试你负责部分中出现的Bug直接提交到高层且经常在你比较忙的时候请教你负责模块的内容.对于这种情况,你打算如何处理

    原来这个家伙既不守规矩也不懂业务,换个测试员吧。
12 楼 kdlqbz 2010-03-27  
学习ing
11 楼 dingyaodanv1 2010-03-27  
有做解答的没?想学习下```
10 楼 皇室勇少 2010-03-27  
含金量蛮高。做code 2年。对这些问题。有点.....
9 楼 抛出异常的爱 2010-03-27  
iaimstar 写道
看着有点虚真这么面 是祸害人

前6个是幌子
最后两个没编号的。是两难。
8 楼 kevinhuang 2010-03-27  
要求非常高,有没有大牛们尝试回答下
7 楼 Wisdom7 2010-03-27  
真碰到到这样的面试,人家招的也是软件工程师
6 楼 pubx 2010-03-27  
要求比较高啊。感叹中。。。
5 楼 iaimstar 2010-03-26  
看着有点虚真这么面 是祸害人
4 楼 lerous 2010-03-26  
好贴~~  了解了自己很多需要提升的东西·

相关推荐

Global site tag (gtag.js) - Google Analytics