现在的位置: 首页 > 综合 > 正文

晒晒我们的面试题(转)

2013年08月29日 ⁄ 综合 ⁄ 共 2119字 ⁄ 字号 评论关闭

最近一段时间,公司在招兵买马,我呢,也充当了一回面试官的角色,要说明的是,我自己的水平很菜,当,我面试的题目也仅仅限于我们工作中经常考虑的一些问题,至于智力题和算法题,只涉及了最简单的。我们招聘的职位是软件开发工程师,负责软件的设计到开发的全过程,要求熟悉C#ASP.Net

交谈

一般而言,面对求职者,我会根据他们的简历问下项目的大致情况,然后问下项目的模块,架构方面的知识。比如说用的是几层架构,各个层是如何交互的。层之间的依赖关系是怎么样的。少不了的,我会加问一句,这样做有什么好处。

而如果项目中用到框架的话,我会问,这个框架产生的背景是什么,为什么项目中要用到这个框架,如果不用框架会存在什么问题,这个框架又解决了哪些方面的问题。

面向对象的方面,我会在程序开发的过程中都用到哪些面向对像的知识,设计模式是什么,它和面向对象是什么关系。如果求职者了解设计模式的话,我会问他都了解什么模式,各是为了解决什么问题而产生的。如果不了解设计模式,我问下什么是抽象类,然后会下什么是接口,接口有什么用,当然,也少不了会问下什么时候用接口,什么时候用抽象类。

面向对象的访问级别也是我时而问到的一个知识点。

如果求职者提供了项目的介绍,那么我会对项目中出现的名词作一个详细的询问,如果其中涉及到算法或者设计思路的部分,我也会让他们讲述一下其中的原理。

作为一个额外的问题,我会要求求职者描述下从浏览器输入URL地址开始到页面完全展示的这个过程,浏览器和web服务器是怎么处理的。

机试 
我们的机试题的要求是在开发环境下完成(平台是vs2008,尽量在不查阅网络的情况下完成。机试题千奇百怪,但一般不会太刁钻,主要是考查求职者对突发问题的处理能力,题目的难度也是随着完成的进度逐步递增的。

1.加法程序。

要求:模拟两个数相加的过程,点击按钮时,计算结果。

考查点:异常处理,编程风络,用户体验

深入考查:用户点击按钮时,弹出三次确认框,只有本次确认成功后才执行计算。

2.冒泡排序

要求:生成一定数目(最终用户可以输入数目)的随机数,利用冒泡排序算法,对这些数字作从大到小排序

考察点:冒泡排序算法,随机数生成的方法,代码编程风格,异常处理,用户体验

3.限制登录

要求:输入用户名和密码登录,如果用户名或密码错误,给出错误提示,如果连续错误3次(5分钟内),则锁定用户,直到30分钟后才可以再次登录。30分钟内,用户重开窗口或者在其它机器上登录均无效。

考查点:数据库设计,理解需求的能力,业务模型构建的能力。

4.倒计时程序

要求:利用系统时钟,计算出当前时间居指定时间的倒计时长,倒计时格式以时:分:秒形式显示。要求每秒刷新一次。

考查点:javascript用法,倒计时时间算法,对常见问题的建模。

5.网页构建

要求:给出一个网页效果图(一般为400*300大小),要求将其布局出来

考查点:HTMLDIVCSS,一定的空间分析能力

深入考查:只能用DIV+CSS布局,不用Table布局

6.访问人数

要求:不用数据库,记录网站的访问人数。每次有新的用户时(新打开窗口或者在另一台机器上登录),访问人数总数加1。总访问数不随着关机和重新启动IIS而消失。

考查点:如何处理新的Session,如果处理Application变量,如何将数据保存到文件中。

深入考查:如何处理系统突然断电的情况。

应届生的问题

如果求职者是应届生,那么关于工作经验的问题就可以不问,一般而言会问一些课本上的问题,基本上会捡各门课的核心知识点问。

·         谈谈什么是程序,你如何理解程序的

·         指针是什么东西,什么是参数的引用传递,什么是值传递,各用在什么场合

·         什么是虚函数,什么是抽象函数,什么是构造函数。C#中的析构函数用在什么场合

·         什么是堆,什么是栈

·         简单讲下你了解的数据结构

·         什么是算法的时间复杂度,什么是空间复杂度,什么叫以空间换时间,能不能举一个例子

·         什么是线程,什么是进程

·         死锁是怎么回事,如何避免

·         缓存是什么,用在什么场合,一般而言,什么样的东西值得缓存

·         说说数据库中的三个范式,说说什么是左连接,什么是交叉连接

·         软件工程中的软件开发模型都有什么,简要说说你了解的软件开发模型

·         平时都看什么方面的书

基本上也就这么多题了吧,在工作中都会遇到的一些东西,其实我发现,用.net久了,会给人一种而懒惰的感觉,如果工作中只会拖拖拉拉控件,我觉得,至少,还不是一个真正的开发人员。因为拉控件而不思考,在遇到一些性能或者设计上的问题的时候,就会很难办。

当然,最好的提高方式还是多看看别人的代码,多关心下技术上的最新动态,同时,也要把自己的基础打得牢固一些。

                                                                             ——冯辉

 

原贴地址:http://www.ifenghui.com.cn/Article/134.aspx

抱歉!评论已关闭.