作为面试官,可以要求候选人发代码给我吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
gowk
V2EX    程序员

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

  •  
  •   gowk
    qinjinling 2019-08-14 21:43:51 +08:00 10343 次点击
    这是一个创建于 2326 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今年 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(); } // } //} 
    62 条回复    2019-10-10 16:30:21 +08:00
    useben
        1
    useben  
       2019-08-14 21:48:31 +08:00
    照这样写,适合去按代码行数评绩效的。。。
    947211232
        2
    947211232  
       2019-08-14 21:49:15 +08:00
    我,我,我 php 的
    3gs
        3
    3gs  
       2019-08-14 22:02:45 +08:00   14
    这哥们可能网上随便找了一段
    https://www.cnblogs.com/bookobe/p/11229021.html
    一毛一样。。
    Iamnotfish
        4
    Iamnotfish  
       2019-08-14 22:03:51 +08:00
    可能是 CTRL C 程序员吧
    gowk
        5
    gowk  
    OP
       2019-08-14 22:11:01 +08:00 via Android
    @3gs 我去去去……我真佛了
    947211232
        6
    947211232  
       2019-08-14 22:17:01 +08:00
    会不会是本人?园龄 3 年 9 个月的
    xiangyuecn
        7
    xiangyuecn  
       2019-08-14 22:35:26 +08:00
    自己的写成这个样子的( Email DKIM 签名和验证):
    https://github.com/xiangyuecn/DKIM-Smtp-csharp/blob/master/EMail_DKIM.cs

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


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

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

    我只是想找个稍微靠谱一点的,不能随便招个人过来吧,起码代码不能写的一塌糊涂吧
    jinboker
        47
    jinboker  
       2019-08-15 11:23:43 +08:00   1
    @zsc8917zsc

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

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

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

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

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

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

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

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


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


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

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

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

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

    你不肯给新人承诺固定工位,水电提供,门禁卡自由,那也别指望新人能在你这里待多久。除非钱够,再心累委屈也无悔,否则大部分都是用脚投票
    switch100
        58
    switch100  
       2019-08-15 19:10:25 +08:00 via iPhone   1
    @gowk 我面试过别人,也被别人面试。我知道辨别一个人的水平,大程度取决于面试官的水平。
    如果自己的水平不过关,问的细节没有难度和深度,你跟面试者的沟通就不会在一个频道上,从而让你难以发现优秀人员。
    而这些,完全口头交流就能了解对方,你却要别人花费时间精力做无意义的题目,这是应试教育填满分就可以入职?不要开玩笑了,大家的时间都很宝贵,不要浪费彼此时间
    fxy739371
        59
    fxy739371  
       2019-08-15 19:18:07 +08:00 via iPhone   1
    一个外包装什么装,求我还不去呢
    129ykx733D016U2n
        60
    129ykx733D016U2n  
       2019-08-16 00:22:03 +08:00
    还需要看代码吗?交流一下技术方面的问题,基本上就能了解能不能胜任工作吧
    ice2neet
        61
    ice2neet  
       2019-08-16 09:59:37 +08:00
    驻场外包 还是.net 项目 人本来就没多少 要求多的话 基本上找不到了
    visionEV
        62
    visionEV  
       2019-10-10 16:30:21 +08:00
    java 程序员离狗不远了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     954 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 19:08 PVG 03:08 LAX 11:08 JFK 14:08
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86