• 谈谈技术面试


    只要是招一个技术人员,不管是初级的程序员还是高级软件工程师,技术上的考核都必不可少。很荣幸作为面试官参与过公司的一些技术面试,从中也体会到了一些东西。
     
    首先,我觉得技术面试是需要讲究技巧的,不是随随便便拉一个技术不错的人就可以,因为面试的过程是双方相互交流的过程,你需要给对方营造一个轻松的气氛,并在不断的提问与回答的过程中,进行“合理的引导”,“适时的追问”与“正确的判断”。
    所以我觉得一个公司的技术面试需要有良好的经验传承,不光光只是留来一些题库;也不光光是一句要相互尊重,你代表公司的形象;更重要的如何去主导一场面试,全面、准确的了解对方的能力。一个新的面试官在上场前需要培训一下如何去做到这些,最好能新老搭配带一下,这样,我觉得才是最靠谱的,也是我们之前做的不够好的地方。
     
    一般情况下,软件公司招人总会对这三个方面的能力做一下考核,一是编程语言,二是数据结构与算法,三是系统设计。
     
    编程语言 
    语言是工具,是一个程序员每天都要使用的东西。在我看来,考察编程语言,不仅能考察一个人对一门语言的理解程度,也能反应一个人的对待知识的态度 - 你会怎么看待一个有10年C++经验但却对这门语言所知甚少的人?恐怕是安于现状,不求甚解。

    针对被面者熟知的语言与库来考察其对语言各个特性的了解与应用,最后,让被面者写个程序看看其对这们语言的操控程度。

    数据结构与算法
    工作5、6年,在我以前的项目中,需要用到数据结构与算法的机会不是很多。我也曾经怀疑,考察算法是不是有必要。那么有必要吗?
    我是这么说服自己的:
    的确,有些项目,涉及更多的只是调用第三方库去堆彻代码,实现业务逻辑,没有太多的机会去直接的、明显的应用算法,但如果因此而自我设限,难免沦为平庸。
    算法,其实考的也是一个人思考问题的套路,一个人的创造力。说句俗气的话,不管你现在做的是什么,如果你具备了这种思维方式,你总能找到地方应用它。或许,以前你所认为的那些没有意义的事情,只是因为你选择了没有意义的方式去完成它而已。

    考察一些初级数据结构与算法的概念,别考的太深太偏。准备一些具有“可伸缩性”的算法题,看看被面者如何分析问题,如何分析算法复杂度,以及如何用其选择的语言实现算法。


    系统设计
    这个主要是考察被面者在面向对象软件设计方面的能力,一般针对高级一些的职位。

    可以先了解一下被面者对面向对象设计的基本概念与原则的了解,然后让其谈谈他之前项目中做过的设计;并准备几道可以逐步深入的设计题让其当场设计。哦,别忘了问问他为什么这么设计。


    需要注意是,要了解面试者真实的实力,你必须要好非常好的临场应变的能力,善于从面试者的回答中提取有用信息并加以追问。

    另外,因为现场面试需要耗费双方很多的时间与精力,所以针对上面三个方面,最好能先进行一下电话面试,做一个大概的了解,这样可以避免不必要的耗费 - 所以,做好电话面试也就非常重要有了:你需要做成尽量准确的判断 - 来,还是不来。
  • 相关阅读:
    Android 下压缩图片—微弱失真
    android中ViewHolder通用简洁写法
    Android裁剪固定大小头像的功能
    Android进度加载的Loading效果
    GitHub开源项目总结
    Android 实现emoji表情的demo
    vim 高级使用技巧第二篇
    android apk 防止反编译技术第一篇-加壳技术
    Android Metro风格的Launcher开发系列第二篇
    FFMPEG高级编程第一篇:环境搭建及编译
  • 原文地址:https://www.cnblogs.com/baiyanhuang/p/1942605.html
Copyright © 2020-2023  润新知