前段时间我面试了一个朋友,前面当然也是问了一些常规的问题。可能是他实在不太合适我们的需要,又感觉人家大老远的赶来,如果几分钟就结束实在也不合适。于是我突发其想的问了一个(严格来说是两个)问题。过后回顾,发现这个问题可大可小,有值得深思的地方。所以就写出来与大家分享一下,虽然没有标准答案,但是回答得好坏与否还是很好判断的。 以下对话内容大半真实,部分搞笑属于虚构。
伍迷:现在我有一个项目想交给你做,是 写一个信息发布的网站。要求很简单, 就是有个后台有个可以增删改查信息的管理页面。前台是一个查看信息列表和查看信息内容的页面。给你一天时间,你打算如何做?
面试者:只有一天,不太可能吧?
伍迷:一切皆有可能!
面试者:这个,我想想!……这样吧,我去网上Google一下,下载个开源的代码就搞定了。
伍迷:啊?,你说得没错,不过我的意思其实是……
面试者:我知道,你是要我自己写。我自己写,一天估计是不行,三天差不多吧,可以写出来。
伍迷:你如何做呢?
面试者:先建数据库,再写后台的界面,拖拉一些文本框和按钮控件,然后把这些表单的数据通过sql语句存入数据库。修改也是同样的,删除就在列表那个页面进行,列表用的是select。前台显示用select查询到的结果绑定到控件就可以了。
伍迷:OK,可这些工作为什么要三天, 如果我想让你半天就完成任务,你如何办?
面试者:半天?老兄,拜托,程序员也是人,不是神。那真是要下载代码了。
伍迷:,我还没有问你, 如果只给你一小时,你如何办呢?
面试者:一小时!你不会还有一分钟的需求吧?
伍迷:一分钟当然是不可能的,不过一小时是绝对可能的,而且是自己写,不是下载代码,当然,从结果导向的角度讲,下载源码的方法也是可以的。
面试者:嘿嘿!完成任务就行。
伍迷:现在我还是这样的需求, 写一个信息发布的网站,给你50万的项目经费,给你一年的时间,你打算如何做?
面试者:一年时间是不是太长了点?我用不着。
伍迷:,你没明白我的意思,就是一年时间,但是显然不是说,你花三天完成后,然后用50万去北海道逍遥一年少三天,回来后告诉我,任务完成了。对这个网站要求也许会高很多,我 希望它可以被任何做信息发布的网站使用。
面试者:任何网站,难道像新浪、搜狐这样的?
伍迷:对的,就是这个意思。要做到连他们这样的网站也可以用你写的这个平台。
面试者:人家早就有了,不需要的!
伍迷:嗨!,我是在出题,又不是要你真的去做!
面试者:哦,明白了,那当然首先要招人了,然后对需求也需要好好整理,编程前估计也要架构一下,完事后还要严密的测试,最后还需要市场推广把它卖出去。
伍迷:哈,好,可以详细谈谈吗?
面试者:…………
好了,我的情景还原基本就差不多了。其实我写这篇文章的目的是想让大家思考这样的问题
- 写一个信息发布的网站。就是有个后台有个可以增删改查信息的管理页面。前台是一个查看信息列表和查看信息内容的页面。给你一天时间,你打算如何做?(其中一天只是表示时间短的意思,对没经验者可以是一周,对有一年经验者,是一到三天,对两三年及以上经验者,应该是半天甚至一个小时。)
- 写一个信息发布的网站,给你50万的项目经费,给你一年的时间,希望它做到可以被任何做信息发布的网站使用,你打算如何做?
显然这两个问题不会有标准答案,不过大家讨论一下,这个问题要深入下去,应该有很多可讨论的地方。比如第一个题目可以考查面试者的基本功,可以细化到sql语句是拼接字符串还是用参数传递,用控件绑定还是生成html,甚至是否考虑过IDE的那些SqlDataSource控件来进行数据连接达到不写一行代码实现功能的目的。而第二个题目就考察得更广了,如何项目管理,比如成本,时间,人员招聘,团队建设等,如何需求调研,需求分析,系统如何设计,系统如何架构,如何分层,需不需要分布式,开发时如何源代码管理,中期如何单元测试,后期如何功能测试和性能测试,软件如何推广等等,我也很难说全。不过看似一个小题目,我觉得它的确可以考查一个面试者的各方面的综合素质。
来吧,还等什么,做题试试看!
|