• 校园招聘面试总结


         一直想写一篇文章来总结一下今年的校园招聘面试,工作这么多年了,还是第一次参加校园招聘,很有

    纪念意义,当年作为学生参加校园招聘的场景还是历历在目,没想到转眼间好几年就这样过去了,废话少说

    转入正题。

          这次校园招聘我参与了其中三个城市的,武汉,北京,南京,一路马不停歇,是连着跑了三个城市。

    公司这次面试给技术面试官的自由度比较大,自己出题考察面试者,所以出发前还好好准备了一翻,看了

    历年各个公司的面试题,心中了大概的思路,决定从以下几个方面考察面试者。

          1)考察项目经历,在项目中所承担的角色,以及主要的贡献。

          2) 考察计算机基础知识,操作系统,网络,语言基础等。

          3)考察算法以及手写代码能力。

          4)考察一些简单的智力题,这部分是可选的,看时间是否允许,主要看看应试者思维是否敏捷。

       一轮面试大概半个小时到四十五分钟,如果实在不能确定的,可能会延长到一个小时左右,但是原则上要在45

    分钟内解决,面试者太多,过分拖延会打乱面试安排,接下来讲讲应试者在面试中各个环节所出现的问题。

          首先项目经历方面,应试者最容易犯的错误:

          1)滔滔不绝的讲述项目细节问题,抓住一个细节点淘淘不决,听的我都想睡觉,最后只有打断他,把他

    重新引入到正轨。

          2)有些应试者还是准备不足,没能把事情说到点子上,通常情况我都会问说说你最得意的是哪个项目,

    结果有些研究生应试者居然拿本科的毕设来讲,搞定我心理瞬间不爽。

          在说说好的应试者的表现:

           1) 这类童鞋一般项目经历丰富,有些项目还有些亮点,能够围绕这些展开描述,让人感觉这个童鞋动手

    能力较强。特别是对于一些对自己以前从来接触过的东西,表现出很强的学习能力,这点就让面试官感觉很爽。

          2)准备充分,即使不是自己的模块,也会去熟悉了解,能够与自己东西很好的衔接起来,这就展现了这个人

    的协作能力,而且能够不守着自己的那一亩三分地,多关注和向别人学习。这样就能让面试官感觉此人有潜力。

         其实说说基础知识方面,这次面试的主要是JAVA程序员和C++程序员,所以语言基础一定要掌握好,这个

    是可以好好准备的,因为在短短的时间也不会很深入的问题。

        1)语言方面,主要是一些编程中的细节,一些常见的面试宝典之类的都有提到过的。

         2)操作系统,进程与线程,死锁,进程间通信等,linux常用命令等。

         3)网络编程,tcp/ip协议,socket编程,epoll/select模型等。

         4)其他诸如设计模式,一些常见的开源软件如apache旗下的有没有了解。

         接下来是算法和手写代码能力,这个也是重点考察的项目,这个是所有环节里重头戏,我一般会出两道算法题,

    一道简单的,一道稍微难一点的,为什么这样出呢,受到面试时间的限制,但是这一项比较花时间的,首先简单的

    算法题必须写出代码,稍微难点的写出代码最好,其次是写出伪代码,最次点起码要能够把算法实现能够较为准确

    的描述出来,如果不是最优解,还需要提出优化方案(这个看情况面试官都会给予一定的提示)。

          这个还是举个简单的例子来更好描述一些,对于简单题,以二分查找为例吧,这个大部分人还是能写出来,但

    是能完全写对的寥寥无几。大部分人的是这样子的:

     1 int binarysearch(int *a,int n,int k) 
     2 { 
     3     int low=0,high=n,mid; 
     4     while(low<=high&&i==0) 
     5     { 
     6         mid=(int)((low+high)/2); 
     7         if(k==a[mid]) 
     8              return mid; 
     9         else if(k>a[mid]) 
    10             low=mid+1; 
    11         else
    12            high=mid-1; 
    13      } 
    14 return -1; 
    15 }  
    View Code

         可能有些童鞋会认为这个代码没有什么问题啊,自己也是这样的写的。当我们写完一个函数的时候,接下来最

    重要的一步是什么?是单元测试,这个函数如果要你单元测试你就会发现,其实还有两个很重要的问题没有解决

         1)参数检测,这是所有的防御性编程都是做的。

         2)数值范围越界,整数加法会出现越界的情形,所以这个算法用加法是会有问题的,如果数据量很大的情形。

        所以正确的代码应该是这样子的:

     1 int binarysearch(int *a,int n,int k) 
     2 { 
     3     if( a == null || n == 0) //参数检测
     4           return -1;
     5     int low=0,high=n,mid; 
     6     while(low<=high&&i==0) 
     7     { 
     8         mid= low + (high - low)/2; //改为减法实现
     9         if(k==a[mid]) 
    10              return mid; 
    11         else if(k>a[mid]) 
    12             low=mid+1; 
    13         else
    14            high=mid-1; 
    15      } 
    16 return -1; 
    17 }
    View Code

         对于最后的智力题,也都是一些比较简单的,还是举个例子说明吧,比如有一个三升水的容器和一个五升水的

    容器,怎么倒出四升水来。这个三升和五升的容器都是没有刻度的,只知道它们分别是三升和五升。

         这个其实可以抽象为一个简单的数学题,3+1 = 4 或者 5-1 = 4,关键是这个一升水怎么给弄出来。

         3+1方式:先把三升容器水倒满,然后倒入五升容器,再把三升容器倒满,倒入五升容器2升,五升容器满了,这样

    三升容器就剩下一升,五升容器的全部倒掉,把三升容器中的一升倒入五升容器,再三升容器倒满,倒入五升容器,五升

    容器中就是四升了。

          5-1方式:把五升容器倒满,倒入三升容器,三升容器满后倒掉,五升容器中的剩下来的两升倒入三升容器,再把五

    升容器倒满,五升容器再往三升容器倒,三升容器满了后,五升容器就剩下四升了。   

          最后总结一下,说到底就是考察计算机基础掌握程度,动手能力,学习能力,表达能力,以及思维是否敏捷等。

           

  • 相关阅读:
    SQL Server循环插入
    【转】Entity Framework 6 Code First 实践系列(1):实体类配置-根据依赖配置关系和关联
    【转】iis7下站点日志默认位置
    如何设置输入IP地址就直接访问到某一个网站
    面向接口编程
    Lambda表达式
    关于单体化和属性文件的说明
    cesium-长度测量和面积测量
    Cesium官方教程13--Cesium和Webpack
    Cesium官方教程12--材质(Fabric)
  • 原文地址:https://www.cnblogs.com/cstar/p/3485831.html
Copyright © 2020-2023  润新知