美文网首页
2019春招笔试/面试心得

2019春招笔试/面试心得

作者: Ruei | 来源:发表于2019-03-20 14:15 被阅读0次

    临近毕业,最近笔/面了几家公司,挺有感触,记录分享一下。

    笔试部分

    字节T动(Java)

    大厂笔试往往是圈内的焦点,今年zjtd后端笔试,四道基础算法水题,全过的人一大片,但是我不一样,只AC两题,后悔之前没有跟着大佬坚持走算法的道路。

    字节跳动后端开发(C++/Java同题)

    恒S电子(Java)

    作为阿里系的成员,笔试形式却跟其他"妖艳贱货"不一样,当大厂们纷纷享受着在线笔试第三方托管(牛客网、百一测试),恒生却在各大高校(浙大玉泉、杭电本部、工大屏峰)进行现场考试,这也算近距离体验学渣跟大牛的区别。

    笔试分为:不定项基础选择题、不定项C/Java基础选择题(二选一)、数据库操作题、编程题、算法题。接下来是性格测试18题(不记分)、逻辑智力题(计分)

    虽然我没有拍下我的试卷(因为大佬半小时交卷时特地问过能不能把试卷带走,监考明确拒绝了)。大家可以自行体验一下往届题目

    回忆下题目,记不全或记错,大家可以指正一下哈:

    数据库:给你三张表,分别为user(userId,userName,account),accoInfo_201811(userId,account,date),accInfo_201812(userId,account,date)

    • 给某用户充值200块(user表)

    • 查询某用户201811最高消费

    • 给xx表加个外键

    • 查询某用户11、12月的总消费

    编程题:给了一个接口,定义两个方法putTask()和getTask(),现在有三个Task对象,让我们实现队列。按队列1、队列2、队列3的顺序放入,按队列1、队列2、队列3的顺序拿出

    算法题:手撸代码,实现遍历二叉树

    T花顺(Java)

    在看了ths在知乎上的风评后,本着有机会就得抓住的理念,我打开了他们自家的考试系统,每个题都有编号而且都不小,估计题库挺多的。之前网上找到的往年题目,大多数C++/客户端/Java混杂的题目,而且官方还确认了,这是校招都需要具备的能力2333。但是打开后发现没啥越界的题目,都是一些Java基础,记录了几个,如下:

    //以下Java代码中,正确的有几个
    // 1.
    public class Something{
      void doSometing(){
        private String s = "";
        int l = s.length();
      }
    }
    // 2.
    abstract class Something{
      private abstract String doSometing();
    }
    // 3.
    public class Something{
      public int addOne(final int x){
        return ++x;
      }
    }
    // 4.
    abstract class Name{
      private String name;
      public abstract boolean isStupidName(String name);
    }
    
    //以下代码打印的结果是什么
    class PrintTest{
      try{
        String[] codeList = {"01","02","03","04"};
        Map map = new TreeMap();
        map.put(3,3);
        map.put(3,3);
        map.put(2,2);
        map.put(4,4);
        map.put(1,1);
        for(int i : map.keySet()){
          System.out.println(map.get(i));
        }
        System.out.println(codeList(4));
      }catch(Exception e){
        System.out.println("Error");
      }
    }   
    
    //下面程序的运行结果是什么
    class HelloA{
      public HelloA(){
        System.out.println("HelloA");
      }
      {System.out.println("I'm A Class");}
      static {System.out.println("static A");};
    }
    public class HelloB extends HelloA{
      public HelloB(){
        System.out.println("HelloB");
      }
      {System.out.println("I'm B class");}
      static {System.out.println("Static B");}
      public static void main(Stirng args[]){
        new HelloB();
      }
    }
    
    private class Base{
      Base(){
        int i = 100;
        System.out.println(i);
      }
    }
    public class Pri extends Base{
      static int i = 200;
      public static void main(String args[]){
        Pri p = new Pri();
        System.out.println(i);
      }
    }
    // A.这段代码不能通过编译
    // B.输出200
    // C.输出100和200
    // D.输出100
    
    // 下面的方法,输入数字2,返回值是多少
    static int getValue(int i){
      int result = 0;
      switch(i){
        case 1:
          result = result * 1;
        case 2:
          result = result * 2;
        case 3:
          result = result * 3;
        case 4:
          result = result * 4;
      }
      return result;
    }
    // A. 2
    // B. 4
    // C. 12
    // D. 18
    
    //下列程序输出什么
    public class ArrayTest{
      public static void main(String args[]){
        char[] ch1 = new char[2];
        ch1[0] = 'a';
        ch1[1] = 'b';
        
        char[] ch2 = new char[2];
        ch2[0] = 'a';
        ch2[1] = 'b';
        
        System.out.println(ch1.equals(ch2));
      }
    }
    

    还有一些进阶题,比如算法之类的。

    PHP

    PHP更让人感觉是业务方面和基本功方面的笔试,我面了两家公司,第一家考的是数组的转化:

    $arr1 = [
      "color" => "黄色",
      "color" => "红色",
      "color" => "紫色",
      "size" => [
        "length" => 100,
        "height" => 100,
      ]
    ];
    //变为
    {
      "len" : 100,
      "height" : 100,
      "color" : {
        0 : "黄色",
        1 : "红色",
        2 : "紫色"
      }
    }
    

    第二家考的简单的业务处理和基本功

    //现在有一个问题的答案为A,B,C,D,E,F,正确答案为C,E。学生作答的答案保存在"answer.txt"文件中,个数如下
    // 1:A,B
    // 2:B,C
    // 3:A,B,C
    // ...一共20条
    // 要求统计各个答案出现的次数、答对的人的学号、漏选的人的学号
    

    面试部分

    面试基本不会缺少的:自我介绍、项目经验。

    自我介绍:大多数时候HR会在你自我介绍的时候查看你的简历,可能之前看过或者在找提问点。建议提前写一个稿子,2-5分钟皆可。介绍的时候观察HR的变化,如果她一直在看你的简历,说明她可能之前没有事先仔细看过,那你可以多介绍一些,让她有充足的时间看。如果HR看完了,目光转移到你身上,那么她已经做好提问的准备,你可以适当忽略掉一些无关紧要的介绍,早点进入问答环节。如果HR从一开始就在认真听你的自我介绍,那就尽可能表现最好的一面,因为她是真的想从你的介绍中分析你的性格、特征等。

    项目经验:项目经验很多时候,都会有包装的情况存在。但是作为一个必问的环节,包装的时候也不可太过分。不懂技术的纯HR可能不会对你的项目进行发问,但是也不排除有开发背景的HR,可能在HR面,就你不深入的环节,进行致命提问。但是不管是哪个,总归会有技术面,是不是过度包装,一问便知。所以大家尽可能的把最了解的部分写上去噢。

    然后是应届毕业生,必然会提问的部分,就是基础

    Java

    • Java8的新特性是什么?你是否使用过?

    • 抽象类和接口的区别?

    • HashMap的特点是什么?底层是如何实现的?

    • Map有几种遍历方式?

    • List的特点是什么?底层是如何实现的?

    • List和Set有什么区别?使用上有什么不一样?

    • String类是否能被继承?

    • 哪些类不能被继承?

    • Cookie和Session的区别?如何一起使用来保持登陆状态?

    • 数据库调优了解多少?索引?

    • 分布式了解多少?

    • Redis了解多少?

    • 缓存了解多少?

    PHP

    • PHP7新特性是什么?有使用过嘛?

    • PHP的基本类型有哪些?

    • PHP的静态变量和全局变量有什么区别?

    • HTTP常见状态码?

    • 常见Linux操作?

    • 实现某一功能时MySQL语句怎么写

    • 框架了解程度

    • 数据库调优

    • API如何保证安全

    技术对你的项目进行提问

    这方面基本上是考验你平时是否有所积累,像我上一个项目也有半年多了,没有把开发过程中的问题记录下来,你很难去临时想象你当时碰到的是什么问题,怎么解决。你只能说出很笼统的回答,可能会导致技术人员对你项目的真实性存疑。

    技术人员对项目的提问几乎都是深入性的,比如说你在项目中写了,使用SpringBoot框架,他会由浅入深地问你,为什么要选SpringBoot框架?(因为启动快,配置简单)配置简单,那它是通过什么机制来使配置生效?(……)如果你回答不上来,就继续找,比如说看到你写了Cache,就问你,SpringBoot的缓存机制是怎么实现的?总之很多情况下,技术人员会对你所了解的框架进行更深层次的提问。

    HR面

    HR面,在我看来是双向的,HR可以从你的言语神态中观察你的意向和状态,你也可以在HR的话语和神态中观察她的意向和状态。比如我之前面的一个外包公司,一进去就直接跟我聊加班、外包、技术培训、入职初期工作,你可以很明显的感受到公司用人的急迫,试探你的底线。在我提问的环节,我经常会问:公司一天的工作是怎么样的?HR在回答的时候,你也可以从字里行间感受到,他是否受到了公司的关怀,对公司的态度如何。也有资深HR,能很好的引导谈话的内容,并总结你说过的话,分析出你的性格,技术深度等特点,并给予你一些职业方向上的指点。但是无论如何,面试的过程都是无害的,一定要放好心态,不卑不亢,才能稳操胜券。

    总结

    在最后,面试/笔试了这么多家,也在看准、知乎上参考各家的评论,实地了解公司真实的开发环境。对我个人而言,心中有一个不小的疑问。一方面像一些私企,规模大,但是技术为其他产业服务,内部人际关系复杂,开发环境落后,技术停滞不前,虽然福利薪资不成问题,但是总归少了互联网的氛围和气息。另一方面,创业性质的小团队,可能给不出豪华的福利薪资,但是团队激情方面着实不错。另外部门之间的扁平化管理、团队年龄无代沟、互联网气息、对技术的狂热追求,这些都是很吸引年轻人的地方。至于这么选择,相信大家都有自己的想法。

    相关文章

      网友评论

          本文标题:2019春招笔试/面试心得

          本文链接:https://www.haomeiwen.com/subject/icszmqtx.html