首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

作为面试官,可以要求候选人发代码给我吗

  •  
  •   gowk · 39 天前 · 7284 次点击
    这是一个创建于 39 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今年 5 月份,领导接了一个.NET 项目,在原有老项目基础上进行二次开发,公司开发基本上都是用 Java,就我一个除了 Java,.NET 也比较熟悉,领导就安排我招几个人去客户那边驻场开发。

    以前都是被面,现在突然让我去面试别人,有点不适应。五一放假那几天我基本都是在打电话进行面试,之所以用电话的形式进行技术面试,也是无奈之举,一来公司不在北京,不方便进行现场面试,二是当时急需开发人员到位,用电话面试比较方便快捷。但电话面试也有很多弊端,不能全方位考察候选人。

    现在.NET 人才比较短缺,整体质量也不是很高,我打了无数个电话,符合要求的寥寥无几,令我非常失望,其实我这边的要求并不高,甚至可以说只要基本编程素养够,工作认真负责就行了。

    招进来的人,有好几个只待了 1 天就走人了。有两个人虽然一直干到现在,但表现并不是让人特别满意,领导打算把这两个人换掉,现在又让我负责招聘。我吸取了上次的教训,在电话面试外,又加了一个环节,就是让候选人用邮件把自己写过的觉得满意的代码片段发给我,具体说就是发 C#写的类,我只是想知道候选人基本的写类的能力,基本的面向对象思想。并不要求什么高大上的算法数据结构的代码,只是基本的编程功底,封装能力。

    可今天一个人(三年工作经验)发给我的代码让我苦笑不得,他加了我微信,发给我后,微信上问我:“您看我这个代码,成吗”,一时间我思绪万千,不知道说什么。

    即便我要的不是像这种(拿 C 举例子): https://github.com/gozfree/gear-lib/blob/master/gear-lib/libqueue/libqueue.c

    虽然我知道这样的代码干净、清晰、优雅,是我欣赏的代码,但平时普通的程序员只能写写业务代码,并不会接触到上面链接里面这样的代码,但起码的业务类你肯定写过吧。

    最后我不得不感慨,好的.NET 开发太难找了!

    邮件收到的代码完完整整如下(我不明白为什么每行都有注释):

    
    //不加锁的方法
            //public static void GetCOupon(person person)
            //{
            //    Console.WriteLine($"date:{DateTime.Now},name:{person.name},前来领取优惠券");
            //    if (person.isgetcoupon)
            //    {
            //        //假装业务处理
            //        Thread.Sleep(1000);
            //        Console.WriteLine($"date:{DateTime.Now},name:{person.name},已经领取,不可以重复领取");
            //    }
            //    else {
            //        Thread.Sleep(1000);
            //        person.isgetcoupon = true;
            //        Console.WriteLine($"date:{DateTime.Now},name:{person.name},领取成功");
            //    }
            //}
            //private static readonly object lockobj = new object();
            ////加 lock 锁的方法
            //public static void lockGetCOupon(person person)
            //{
              
            //    lock (lockobj)
            //    {  Console.WriteLine($"date:{DateTime.Now},name:{person.name},前来领取优惠券");
            //        if (person.isgetcoupon)
            //        {
            //            //假装业务处理
            //            Thread.Sleep(1000);
            //            Console.WriteLine($"date:{DateTime.Now},name:{person.name},已经领取,不可以重复领取");
            //        }
            //        else
            //        {
            //            Thread.Sleep(1000);
            //            person.isgetcoupon = true;
            //            Console.WriteLine($"date:{DateTime.Now},name:{person.name},领取成功");
                 
                     
            //        }
            //    }
            //}
            ////加 mutex 锁
            //public static void mutexgetoupon(person perss){
            //    Console.WriteLine($"date:{DateTime.Now},name:{perss.name},前来领取优惠券");
            //    using (var mutex=new Mutex(false,perss.id.ToString()))
            //    {
            //        try
            //        {
            //          if(mutex.WaitOne(-1,false))
            //            {
            //                if(perss.isgetcoupon)
            //                {
    
            //                    Thread.Sleep(1000);
            //                    Console.WriteLine($"date:{DateTime.Now},name:{perss.name},已经领取,不可以重复领取");
            // }
            //                else
            //                {
    
            //                    //假装业务处理
            //                    Thread.Sleep(1000);
            //                    //领取
            //                    perss.isgetcoupon = true;
            //                    Console.WriteLine("date:{0:yyyy-MM-dd HH:mm:ss},name:{1},领取成功", DateTime.Now, perss.name);
            //                }
            //            }
            //        }
            //        catch (Exception)
            //        {
    
            //            throw;
            //        }
            //        finally { mutex.ReleaseMutex(); }
            //    }
    
            //}
            
    
    61 回复  |  直到 2019-08-16 09:59:37 +08:00
        1
    useben   39 天前
    照这样写,适合去按代码行数评绩效的。。。
        2
    947211232   39 天前
    我,我,我 php 的
        3
    3gs   39 天前   ♥ 14
    这哥们可能网上随便找了一段
    https://www.cnblogs.com/bookobe/p/11229021.html
    一毛一样。。
        4
    Iamnotfish   39 天前
    可能是 CTRL C 程序员吧
        5
    gowk   39 天前 via Android
    @3gs 我去去去……我真佛了
        6
    947211232   39 天前
    会不会是本人?园龄 3 年 9 个月的
        7
    xiangyuecn   39 天前
    自己的写成这个样子的( Email DKIM 签名和验证):
    https://github.com/xiangyuecn/DKIM-Smtp-csharp/blob/master/EMail_DKIM.cs

    最后自己都看不懂。。。您看我这个代码,成吗 😎
        8
    gowk   39 天前 via Android
    @xiangyuecn 我看成😂
        9
    dongdongdong   39 天前 via iPhone
    还行
        10
    zbyyx   39 天前
    你要求一般就从 985 刚毕业的,课程里面教过.net 随便找点啦。
    你要会修航母的却拉去修自行车,稍微有点脑子的都会跑路。
        11
    Humorce   39 天前 via iPhone
    有个帖子 dotNET 没工开
        12
    rbe   39 天前
    天呐,Thread.Sleep(1000); 认真的吗,不是段子吗?
        13
    1OF7G   39 天前
    @rbe 这个是个 Mock 吧,只是在做题而已?
        14
    rbe   39 天前
    @1OF7G #13 噢不好意思,没有仔细看那篇文章,原来是 mock 业务,sorry
        15
    lbfeng   39 天前   ♥ 2
    正常操作不是你出个小 project,让面试的人 24 小时内完成吗?
        16
    fvckDaybyte2   39 天前 via iPhone
    就算笔试也有人拿手机作弊的,何况自由发挥……
        17
    my3157   39 天前
    做过几年 .NET , 当初那帮做 .NET 的现在基本上都转了, 转 JAVA 的, 转前端的, 还继续坚守的寥寥无几, 14-15 年那会, .NET 确实不好过, 这两年看到过很多招 .NET 的, 要求不高但是工资给的还不低, 也有朋友让帮忙推荐, 正如楼主所说, 现在招一个好的 .NET 真心不容易, 不光是钱的问题, 人太少了
        18
    tamlok   38 天前 via Android
    电话面试,电脑上白板写代码,大家都能马上看到。除了算法题,还可以叫他写一个类什么的,简单模拟一下业务场景。
        19
    tamlok   38 天前 via Android   ♥ 1
    时间紧的话,也可以你写好框架,然后叫他填充,然后就可以考察他的逻辑代码能力和代码风格了。
        20
    switch100   38 天前 via iPhone
    驻场。。这是重点
        21
    duan602728596   38 天前 via iPhone
    直接 github 地址给你不就好了
        22
    ragnaroks   38 天前
    遇事不决先加锁?
        23
    mosfet   38 天前
    好的.net 早就见机不妙各种转了
        24
    vance   38 天前
    说实话,发代码的方式没几个人愿意会嫌麻烦,除非招聘公司真的不错
        25
    likaka   38 天前   ♥ 1
    驻场能招到人就不错了,还挑?
        26
    NerverLibis   38 天前 via iPhone
    net 培训出来的小年轻 和四十多的老油条比较多
        27
    dothis   38 天前   ♥ 2
    楼上说得对、驻场是关键
    优秀的人选公司、虽然我不够优秀、但是我一听到驻场就..../手动狗头
        28
    gowk   38 天前
    @tamlok 提议不错,感谢!
        29
    gowk   38 天前
    @NerverLibis
    hhh 你说的太对了,深有感触。。
        30
    jimrok   38 天前
    既然换人,那就不能找的比原来的还差,你可以出一个一周内完成的题目,让他们把代码放在 github 上给你看。如果觉得可以,再加微信。
        31
    blackmirror   38 天前   ♥ 4
    外包驻点这种肯定没人去,做完这项目不就被开了,这种的项目只能招到这水平的
        32
    tgaqep   38 天前
    这是没有满足面向对象的东西吧,感觉我这里也是这水平,小公司也很少用到面向对象,设计模式这些,所以,2 年 net 准备转 java 中。
        33
    zsc8917zsc   38 天前
    没太看出来代码有什么问题- -楼主可否点评一下,学习学习
        34
    yhxx   38 天前
    // 假装业务处理
    // Thread.Sleep(1000);


    这真的不是段子吗
        35
    tamlok   38 天前 via Android   ♥ 1
    @zsc8917zsc 首先注释比代码还多,过犹不及
        36
    lagoon   38 天前
    "让候选人用邮件把自己写过的觉得满意的代码片段",惭愧,我真的没有。
        37
    pierswu   38 天前
    假装四处看风景
    Thread.Sleep(4000);
        38
    gowk   38 天前   ♥ 1
    @lagoon
    所以我觉得可能需要换种方式,楼上 V 友的建议真的不错,我可能改用这种方式:
    “还可以叫他写一个类什么的,简单模拟一下业务场景。”
    “也可以你写好框架,然后叫他填充,然后就可以考察他的逻辑代码能力和代码风格了”
        39
    tgaqep   38 天前
    注释不多吧(//假装业务处理,另外每个方法一行注释),代码不紧凑倒是真的
        40
    l00t   38 天前   ♥ 1
    代码在哪里,全都是注释,没有代码啊……
        41
    kxxoling   38 天前
    有可能是培训班刚出来的,电话里多问几句项目细节。
        42
    KunMinX   38 天前
    我要是出去面试的话,就算面试官不要求,我也会逼着面试官先到 GitHub 看我代码。

    代码都看不懂、懒得看、不屑看的,这种不做事、不着调的人,谁敢在这样人身上耽误时间 😂
        43
    leafShimple   38 天前
    哈哈 我满意的代码片段永远是今天的和明天的那一段,老代码不合理的我看见了就改
        44
    PerpetualHeng   38 天前
    这代码,从网上下的给你,我估计这家伙 0 开发经验?自学找工作的?
        45
    jinboker   38 天前   ♥ 1
    @jimrok
    这种除非是对方非常非常想进去,否则花一个星期去写面试题目,万一不要,这一个星期不白瞎了
    但说实话,驻场开发。。。真不觉得有多少人会非常非常想去
        46
    gowk   38 天前
    自学、培训、学历。。都无所谓,只要能写代码就成。就像楼上某些朋友说的,某些类型的项目就只能找到对应水平的开发人员。

    我只是想找个稍微靠谱一点的,不能随便招个人过来吧,起码代码不能写的一塌糊涂吧
        47
    jinboker   38 天前   ♥ 1
    @zsc8917zsc

    里面有三段代码的逻辑基本上是相同的,文字都一样,一看就是 c v 的,去面试还这么搞真不合适
        48
    raysonlu   38 天前
    不如让公司换个技术栈?
        49
    switch100   38 天前 via iPhone
    到客户现场外派驻场,你不仅要考虑他技术水平,还要避免他产生皇协军,低人一等的感觉。比如固定工位,水电提供,专注技术,不被客户吊来吊去,出了问题不必一个人死扛。

    如果你这些都做不到,估计也只能找到刚毕业的傻白甜了
        50
    switch100   38 天前 via iPhone
    就算技术水平符合要求,你这些条件没有办法提供,不管是谁都工作的很难受,迟早要跑路,一两个月得事情而已
        51
    gowk   38 天前
    @switch100 团队里面现在就有一个刚毕业的,各方面表现都可以,值得培养。

    做程序员基本的职业素养有,基本的编程功底有,别的都可以培养。目前虽然招的是外包,但如果表现好,有机会转到我们单位的正式职工(我们单位是国企)

    但现在的问题是候选人质量参差不齐,要一个个筛选的话,耗时耗力,招过来的还不一定真的行

    我现在也在考虑把项目转成 Java 的可能性,这样公司内部的很多资源就可以利用了,我就不用苦逼的招人了
        52
    passerbytiny   38 天前
    当开始做笔记的时候,留存的肯定是经过整理的笔记而不是整篇或部分代码,要想发源代码,除非是从做过的旧项目中截取一段,而这些是并不是个人资产。你这发代码的要求,就是难为人的。
        53
    nnnToTnnn   38 天前
    @gowk 直接一句话就 OK 了,有 github 的地址吗? 基本上就可以看出来他的编码水平
        54
    nnnToTnnn   38 天前
    @gowk 你特么又在骗萌新,进国企,这些是硬性要求

    1. 至少本科以上(不包含本科学历,除非是当前特别需要人才,可考虑本科)
    2. 211 和 985 重点学校
    3. 外包公司中部分比较优秀的员工(条件可以降低到本科)

    虽然长期合同共也算在国企工作,但是不属于单位里面的。

    区别是将所有的福利待遇转换为钱,全部打给你,比如国庆员工每个月都有餐补等等这些都可以打到工资里面去,社保等等是按照国企员工进行缴纳。


    长期合同工 <> 国企员工 && 外包员工 <> 长期合同工


    外包员工 < 长期合同工 < 国企员工

    就算你们愿意,但是由于 1,2,3 条件不满足,人事定级别也会定的很低,工资会差很多
        55
    nnnToTnnn   38 天前
    @nnnToTnnn 国企招聘这一块学历卡的非常严格,小标准就是你的个人能力,大的标准就是学历
        56
    yafeilee   38 天前
    @gowk 我这边有个产品估计能帮到你解决问题,小程序里搜 "技术达人" 加我。
        57
    switch100   38 天前 via iPhone
    @gowk 什么优秀就可转正,都是忽悠外包员工的,让他们以为前途光明,却一次次的被使劲忽悠。

    大部分外派的命运,都是工作的时候被客户羞辱,到项目结束就让人家滚蛋了。我提出的那几个基本点,你都不敢承诺,那肯定就很难找人了,更何况是冷门市场的语言

    你说公司是国企,那最多也就是有编制也没编制的问题。可是你又说是外派到客户公司,那这个岗位说到底就是外派岗位,跟编制什么的没关系。

    你不肯给新人承诺固定工位,水电提供,门禁卡自由,那也别指望新人能在你这里待多久。除非钱够,再心累委屈也无悔,否则大部分都是用脚投票
        58
    switch100   38 天前 via iPhone   ♥ 1
    @gowk 我面试过别人,也被别人面试。我知道辨别一个人的水平,大程度取决于面试官的水平。
    如果自己的水平不过关,问的细节没有难度和深度,你跟面试者的沟通就不会在一个频道上,从而让你难以发现优秀人员。
    而这些,完全口头交流就能了解对方,你却要别人花费时间精力做无意义的题目,这是应试教育填满分就可以入职?不要开玩笑了,大家的时间都很宝贵,不要浪费彼此时间
        59
    fxy739371   38 天前 via iPhone   ♥ 1
    一个外包装什么装,求我还不去呢
        60
    fredshao   38 天前
    还需要看代码吗?交流一下技术方面的问题,基本上就能了解能不能胜任工作吧
        61
    ice2neet   37 天前
    驻场外包 还是.net 项目 人本来就没多少 要求多的话 基本上找不到了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   736 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 27ms · UTC 21:28 · PVG 05:28 · LAX 14:28 · JFK 17:28
    ♥ Do have faith in what you're doing.