我出的一道面试题,95%的人写不出,大家看看是否太难
不得不说,招人很难,我接手公司招聘工作一年多了,但几乎招不到人,有4/5的人对面试邀请爽约,而剩下的1/5的人中又大多数发觉很不合适,好不容易觉得合适,最后还不来。我为了面试最初一共出了6道题目,后来感觉有点多,删掉了4道,后来还是觉得有点多,又删掉了一道,只剩这道题,大家别笑,
在开始做题前我都在应聘者旁边图文声色俱全耐心讲解了如何解答:什么是链表?如何插入?如何删除?笔试者其实只需要按照我说的写一点代码即可,可事实上真正能完成这道题目的人我只遇到一个,大多数都交了白卷(时间大约20分钟),好吧,我把这道题目原原本本贴在这里,一个字不变:
----题目开始----
实现一个链表,要求各个节点的Name都不重复,若试图增加重复节点,就抛出异常,填写下面的Append方法和Remove方法的代码。
class Node
{
public string Name{get;set;}
public int Score{get;set;}
public Node Next{get;set;}
}
class Link
{
public Node Head {
get{return m_nodeHead;}
}
public void Append(string strName, int iScore)
{
//Add a node: implement your code here
}
public void Remove(string strName)
{
//Delete a node: implement your code here
}
private Node m_nodeHead = new Node(){
Name="_HeadNode",
Score=0,
Next=null};
}
----题目结束----
大家结合我前面说的情况,认为题目难度如何?也许你觉得代码风格上有点奇怪,是的,我曾经是Windows C++程序员,后来将Windows C++编程的风格带入.net开发中来,用得也挺好的。
笔试
------解决方案--------------------搞.net的人至少90%都只能算是代码工人。
根本没学过或者没用心的学过基础课程。
所以造成了.net名声越来越臭
------解决方案-------------------- 我们当然学习数据结构,但是我觉得你应该考虑你们公司现在的需求,你要求应聘者做这样的题目,如果只是为了考验他们的数据结构学的好不好,我觉得没有必要;如果你们需求需要用到这些,那可以,这样的题目也不是很难,几乎是很简单的关于单链表的操作。
现在的问题是大学里面学习了很多的关于数据结构的东西,但是参加工作之后很多的都没有用到。这些基本的东西也就似乎给忘记了,但是大体的思路还是记得的,你这道题很具体的要求应聘者写代码,似乎真的难住他们了。
比如我前段时间就学习了单链表的东西,但是现在让我做这道题,我有思路,代码似乎真的写不出了。不过我可以参考文档什么写出来。很多的东西不是一定要熟记于胸的,知道思路查些文档就解决了。
------解决方案--------------------坦白来讲,楼主这个题目出的挺好的,没有故意难为别人的意思。但是如果有人确实不知道链表是什么,你也可以向他解释一下,因为知道叫什么倒不重要,关键是得能写出代码。
------解决方案--------------------
我觉得楼主主要是想考察一下面试者的基本功,因为这个题无非就是写两个循环而已。很多求职者说的天花乱坠,但是确实只会拖控件,所以用这个题可以稍微过滤一下。
------解决方案--------------------using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace NodeTest
{
class Program
{
static void Main(string[] args)
{
Link link = new Link();