软件开发者面试百问

开发者面

作者 Jurgen Appelo

想雇到搞开发明人可不容易。万一一不小心,就会搞到一堆低能大狒狒。我去年就碰到这种事了。你肯定不想这样吧。听我的,没。在站立会议门都没有。

 

点有度的问题能帮你把明人跟狒狒。我决定把我自己整理出来的开发者面问发出来,希望能帮到你的忙。

 

个列表涵盖了件工程知体系中定的大多数知域。当然,如果你只想找出拔萃的程序,便只需构、算法、数据构、测试这几个话题。如果想雇架构,也可以只考需求、功能设计、技术设计这些地方。

 

不管你怎做,都要牢一点:

 

里大多数问题的答案都没有对错之分!

 

你可以把我的问题引子,展开讨论。例如下面有个问题是使用静方法或是例的由。如果那个面的就此展开长篇大,那他很有可能是个明能干的家伙!如果他一茫然的看着你,这种声音,很明显这就是只狒狒了。同,想知道一个数是不是2的乘方也有很多方法,不要是面的人想用mod运算符,……你知道我的意思吧。(你不知道也没系,来根香蕉?)

 

需求

 

1.       你能出一些非功能性(或者量)需求的例子

2.       如果客需要高性能、使用极其方便而又高度安全,你会他什

3.       你能出一些用来描述需求的不同技术么?它各自适用于什么场景?

4.       需求跟踪是什意思?什是向前追溯,什是向后追溯?

5.       你喜用什工具跟踪需求?

6.       你怎看待需求化?它是好是坏?出你的理由。

7.       你怎研究需求,发现需求?有哪些源可以用到?

8.       你怎么给需求制定?有哪些技

9.       在需求程中,用、客开发各自的职责是什

10.    你怎么对待不完整或是令人解的需求?

 

功能设计

 

1.       在功能设计中有哪些隐喻出几个成功的例子。

2.       如果有些功能的时间,怎不到太的等待?

3.       如果用要在一个很小的区域内,从一个常常的列表中选择多个条目,你会用什控件?

4.       有哪些方法可以保数据的完整?

5.       建立系原型有哪些技

6.       用程序怎建立期?出一些例子。

7.       如何入手设计数量大而又复杂的特性,你能出一些设计思路

8.       有一个列表,其中有10个元素,个元素都有20个字段可以编辑,你怎样设计这种情况?如果是1000个元素,个元素有3个字段呢?

9.       用不同的一段文本中的文字标记高亮,这种做法有什么问题

10.    Web境和Windows境各有些什限制?

 

术设计

 

1.       是低耦合和高聚合?封装原又是什意思?

2.       Web用中,你怎避免几个人编辑同一段数据所造成的冲突?

3.       你知道设计模式?你用哪些设计模式?在什么场合下用的?

4.       是否了解什是无状业务层如何与之相适

5.       在搭建一个架构,或是技术设计时,你用种图

6.       N架构中都有哪些?它各自的职责是什

7.       有哪些方法可以确保架构中数据的正确和健壮?

8.       面向设计和面向设计有哪些不同之

9.       在数据、用配置、限管理功能建模?

10.    按照等制度给动物王国(包括各和各自的行)建模?

 

程序设计

 

1.       你怎你的代可以理各种错误事件?

2.       一下什测试驱动开发出极限程中的一些原

3.       人代候,你最心什地方?

4.       么时候使用抽象,什么时候使用接口?

5.       除了IDE以外,你哪些必不可少的工具?

6.       你怎码执行速度快,而又不出问题

7.       么时候用多,什么时候用委派?

8.       么时候使用有静,什么时候使用例?

9.       你在代里面怎提前理需求的化?一些例子。

10.    描述一下实现一段代程,从需求到最交付。

 

算法

 

1.       知道一个数字是不是2的乘方?怎判断一个数是不是奇数?

2.       找出表中的元素?

3.       10,000个静HTML面中所有电话的格式?

4.       出一个你所用递归的例子。

5.       在散列表和排序后的列表中找一个元素,哪个找速度最快?

6.       不管是是网,你从中所学到的最后一点算法知是什

7.       把字符串反?你能不用临时的字符串

8.       你愿意用什么类型的言来复杂的算法?

9.       有一个数,里面是从11,000,000的整数,其中有一个数字出了两次,你怎找出那个重的数字?

10.    你知道“旅行商问题Traveling Salesman Problem)”

 

数据

 

1.       在内存中实现伦敦地构?

2.       以最有效的方式在数据中存储颜

3.       列和堆

4.       用堆或者数据的区是什

5.       在数据中存N向量?

6.       向于用哪种类型的复杂的数据构?

7.       21的二是什?十六制呢?

8.       不管是是网,你从中所学到的最后一点数据构的知是什

9.       XML文档中存足球比赛结果(包括伍和比分)?

10.    有哪些文本格式可以保存Unicode字符?

 

测试

 

1.       是回归测试?怎知道新引入的化没有给现有的功能造成破坏?

2.       如果业务层和数据有依赖关系,你测试

3.       你用哪些工具测试码质量?

4.       品部署之后,你最常碰到的是什么类型的问题

5.       是代覆盖率?有多少覆盖率?

6.       功能测试和探索性测试的区是什?你怎么对网站测试

7.       测试套件、测试用例、测试计划,三者之的区是什?你怎么组织测试

8.       对电子商网站做冒烟测试,你会做哪些型的测试

9.       测试中会发现意的西,怎减少这种情况的生?

10.    你去年在测试量保方面学到了哪些西?

 

维护

 

1.       你用哪些工具在维护阶对产控?

2.       要想一个正在境中被使用的行升注意哪些重要事

3.       如果在一个大的文件中有错误,而代又无法逐跟踪,你怎找出错误

4.       你怎中的化不会影响品的其他部分?

5.       你怎样为产写技文档?

6.       你用哪些方式保证软品容易维护

7.       品运行的境中行系统调试

8.       负载均衡?负载均衡的方式有哪些

9.       用程序的生命周期中,维护费用所占的份最高?

10.    再造工程(re-engineering)和逆向工程(reverse engineering)的区是什

 

配置管理

 

1.       你知道配置管理中基线的含义么?怎目中某个重要的冻结

2.       你一般会把哪些西入版本控制?

3.       可以保证团队个人都知道了哪些西?

4.       TagBranch的区是什?在什情况下使用tag,什么时候用branch

5.       管理技文档——如品架构文档——的化?

6.       你用什管理目中所有数字信息的状?你最喜工具?

7.       如果客想要一款已经发布的品做出变动,你怎么处理?

8.       版本管理和布管理有什差异?

9.       文本文件的化和二制文件的行管理,二者有什不同?

10.    时处理多个求,或是同时进行增量开发维护这种事情你怎看待?

 

目管理

 

1.       时间、成本,中哪些是可以由客控制的?

2.       谁该对项目中所要付出的一切做出估算?权设置最后期限?

3.       减少交付的次数,或是减少个交付中的工作量,你喜做法?

4.       你喜用哪种图来跟踪度?

5.       迭代和增量的区在哪里?

6.       着解一下风险管理中用到的践。风险该如何管理?

7.       你喜分解滚动划?

8.       你需要哪些西帮助你判断目是否符合时间要求,在算范内运作?

9.       DSDMPrince2Scrum三者之有哪些区

10.    如果客想要的西太多,你在范时间上怎跟他达成一致呢?

 

阅读英文原文:100 Interview Questions for Software Developers

http://www.noop.nl/2009/01/100-interview-questions-for-software-developers.html

 

你可能感兴趣的:(软件开发者面试百问)