剑指offer-1. 面试的流程

作者: Transnet2014 | 来源:发表于2014-11-12 16:33 被阅读252次

    1.1 面试官谈面试

    初级程序员考算法和数据结构,高级程序员考技能和经验;

    应聘者应该准备好的问题问面试官;

    不要着急写代码,写完需要检查;

    “写”程序才是程序员;

    1.2 面试三种形式

    1.2.1 电话面试

    只能通过语言进行交流,要求平时对于知识有复述的能力和练习;

    电话面试中出现英文时,应该及时询问不懂的单词或者句子,不能曲解;

    1.2.2 在线面试

    在线面试考的不仅是编程能力,还有编程习惯;

    不要急于打开编辑器写代码,应该给出编程的思路描述,然后尝试编写,最后单元测试;

    报错没有问题,打开调试环境,设置断点,单步跟踪,分析调用栈。(我是故意写错,让你看看我是如何调试的)

    1.2.3 现场面试

    穿得干净;及时补充能量;状态积极;

    1.3 面试三个环节

    简历询问-》技术面试-》应聘者提问

    1.3.1 简历询问

    又叫行为面试,一般会针对简历进行提问,或者自我介绍;

    其中涉及到了项目经验,学习历程,技术优势是面试官比较关注的地方;

    1.3.1.1 项目经验

    STAR(Situation Task Action Result)形式描述自己做过的项目;

    S: 一句话介绍背景

    T:负责某个项目,那就需要准备框架设计,核心算法,团队合作的问题;

    参与某个项目,需要准备完成任务程度,实践方式,收获的问题;

    A:系统设计:说框架;开发:说平台,技术,难点;测试:测试手段,脚本;

    R:用数字说明,可以编,但是要合理,开发功能的说按时完成了多少个功能模块;优化的说性能提高了多少个百分点;维护的说修改了几个BUG;

    如果上边描述不清楚,面试官会追问遗漏的点,也会问到的其他问题:

    1)遇到最大的问题,以及如何解决的;2)在这个项目中有什么成长;3)协作中发生冲突如何解决;

    1.3.1.2 技术优势

    区分“了解”“熟悉”“精通”的区别,依次对应“入门”“做过项目,查文档可以写”“随便问”

    1.3.1.3 为啥选择我们、为啥跳槽

    首先是后边这个问题,避免“老板烂,队友是猪,加班多,工资少”,比较合适的是,我对以前的工作没有多少兴趣,认为我在这个岗位没啥发展,个人判断“xx”公司的业务在未来会有不错的发展。

    1.3.2 技术面试

    面试的主要内容,考察五个方面的东西:基础知识,高质量代码,分析问题的思路,优化算法的能力,学习沟通的潜力;不断的讨论问题是很好的解决方案;

    1.3.2.1 基础知识

    编程语言的基本语言特性要非常清晰,如果这门语言是公司标明要用的,那必须非常清晰;

    数据结构中链表,栈,队列,哈希表,树以及他们的基础操作是经常考察的;

    算法中肯定是查找和排序了,常见的算法,如快排,二分,归并这些必须非常熟悉;

    1.3.2.2 高质量的代码

    注释;完成功能;边界;效率;(写代码 的顺序也应如此)

    例1 把字符串转换成整数

    int StrToInt(char* string){int iRtr = 0;while(*string !=0){iRtr =iRtr*10 +*string-'0';++string}return iRtr;}

    注释:函数功能注释,输入输出;函数边界注释,边界处理;函数错误(溢出)注释,错误处理;

    完成功能:iRtr = iRtr*10+*string-'0' 

    1.3.2.3 清晰的思路

    难免遇到不会的题目,这时候就要有清晰的解决问题的思路:

    1)简单化;2)实例化;3)图文形象化

    1.3.2.4 优化效率

    首先知道如何计算程序的效率,然后采用下边的顺序优化原有的解决方案:

    1)更合适的数据结构进行存储;2)更合适的算法

    1.3.2.5 综合能力

    这是程序员的软实力,比如学习能力,沟通表达能力,团队协作能力;当然这些方面的考察依次会转化为以下的问题“从XX问题中得到了什么”“介绍一下自己”“你对XX冲突的看法”;

    当然综合能力还包括其他的拓展能力,比如建模能力,发散思维能力等,这些都是对special offer提出的要求。

    1.3.3 提问

    应该问“与招聘职位和他们正在做的项目相关的技术问题”

    1.4 总结【付超】

    看书写笔记是一个好习惯, 我也一直保留这样的习惯,能够让我深入的理解书中讲到的内容,另外为以后温习学到的点留下机会。原来都会写到onenote中,现在分享出来,也是有一点分享的意思。

    简述很好,但是不太适合程序员写技术博客,尝试过在别的平台写东西,但是总没有写东西的欲望。解决方案如下:

    文字部分依旧使用简述发布,代码部分会给出代码的链接,ideone.com是个不错的平台,我会把代码发布到那边去实践。

    另外,《剑指offer》这本书中提到的背景知识我会同时发布在这个专题里,多数是转发来的优秀资源,用于迅速的了解背景知识。

    祝好

    相关文章

      网友评论

        本文标题:剑指offer-1. 面试的流程

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