程序员如何面试?

一,代码的完整性和鲁棒性
基本功能
边界值
无效的输入
时间效率
空间效率

二,事前准备
对公司近况,项目情况有所了解,同时还要准备好合适的问题问面试官

三,解题之前
不要过于紧张,不要急于写代码,应该先了解清楚所要解决的问题,这个时候最好先和面试官多做沟通,有疑惑的地方问清楚,以避免理解错题,然后开始做一些整体的设计和规划,即解题思路
如果是线上题目,写完之后,不要立即提交,自己检查并借助一些测试用例测试几遍代码

四,面试的三种形式

1.电话面试

有些面试官会打电话过来预约电话面试的时间,也有些面试官喜欢突然袭击,一个电话过来就开始面试。
自己在投完简历之后,需要注意下最近一段时间保持通信通畅。这一阶段大多是基础问题,做好准备即可,同时保证通话质量,听不清楚就尴尬了。

2.远程面试

远程面试即在线编程或者共享桌面。
在线编程,则考察基本功了,同时注意基本功能,边界值,无效输入,时间效率,空间效率。
共享桌面,则面试官可以实时观察到你的桌面。那么面试官重点关注的就是你的编程习惯以及调试能力

  • 思考清楚再写代码
    不要一开始就写代码,在没有形成清晰思路之前写的代码通常会漏洞百出,这个时候修改代码也会改的越来越乱,最终导致面试的结果不理想。
  • 良好的代码命名以及缩进对齐习惯
  • 单元测试 保证代码的完整性和鲁棒性
  • 当遇到bug时候,能熟练的看日志,设置断点,单步跟踪,查看内存,分析调用栈等很快的发现问题的根源并解决

3.现场面试
规划好路线并估算出行时间,不要迟到。
衣着合适,同时注意看面试邀请函里的内容,比如面试地点,流程等。同时预先了解下公司,准备好要问面试官的问题。

五,现场面试的三个环节

1.行为面试环节

面试开始的5~10分钟是行为面试的时间,这个环节里,面试官会注意应聘者的性格特点,深入的了解简历中列举的项目经历。
一般开始会给一个自我介绍,用0.5到1分钟的时间介绍自己的主要学习、工作经历即可。如果面试官对某一段经历或者参与的某一个项目很感兴趣,那么他会有针对性的提几个问题详细了解

应聘者自我介绍之后,面试官接着会对照应聘者的简历去详细了解他感兴趣的项目。

重中之重:如何准备简历
使用STAR模型描述自己经历的每一个项目

situation: 简短的项目背景

比如项目的规模,开发的软件功能,目标用户等

Task: 自己完成的任务

这个要写详细,要让面试官对自己的工作一目了然。用词上要注意区分**“参与”和“负责”**,如果只是加入某个团队,写了几行代码就用“负责”很危险,面试官可能会问项目的总体框架设计,核心算法,团队合作等问题,这些对于只是简单参与的人来说,是很难回答的。会让面试官觉得你不诚实。

Action:为完成任务自己做了哪些工作,是怎么做的。这样可以详细介绍,做系统设计的,可以介绍系统架构的特点,做软件开发的,可以写基于什么工具在哪个平台下应用了哪些技术等等。

Result:自己的贡献。这方面的信息可以写的具体些,最好能用数字加以说明,如果是参与功能开发,则可以说按时完成了多少功能,如果做优化,则可以说性能提高的百分比是多少。

如果项目中上诉四类信息不够清晰,面试官很可能会追问相关问题。

除此之外,面试官针对项目经验最常问的问题包括如下几个:

  • 你在该项目中碰到的最大问题是什么,你是怎么解决的?
  • 从这个项目你学到了什么?
  • 什么时候会和其他团队成员有什么样的冲突,你们是怎么解决冲突的。

因此,在准备简历的时候,针对每一个项目经历都提前做好相应的准备!!

简历上的技能
要注意区分:了解,熟悉,精通

了解:指某项技术只是在上过课或者看过书,但是没有做过实际的项目。通常不建议在简历上列出只是肤浅的了解一点的技能,除非应聘的岗位确实需要。

熟悉:简历中我们描述技能的掌握程度大部分应该是“熟悉”。如果我们在实际项目中使用某项技术已经有较长时间,通过查阅相关的文档可以独立解决大部分问题。

精通:如果我们对一项技术使用得得心应手,当别人向我们请求这个领域的问题时候,我们都有能力去解决,这个时候我们就可以说精通了这项技术。不要轻易用精通这个词,除非自己能有把握轻松回答这个领域里的绝大多数问题,否则会适得其反。

2.技术面试环节

面试官通过简历以及行为面试大致了解面试者的背景之后,接下来就是技术面试了。一轮一小时的面试,通常技术面会占据40~50分钟,这是面试的重头戏,对面试的结果起决定性的作用。

面试官会关注的面试者的5种素质:

1.扎实的基础知识

包括编程语言、数据结构、算法等

2.能写高质量的代码

能写出正确的 完整的 鲁棒的高质量代码

3.分析问题时思路清晰

能思路清晰的分析,解决复杂问题

4.能优化时间效率和空间效率

能从时间,空间复杂度两方面优化算法效率

5.学习沟通能力
具备优秀的沟通能力,学习能力,发散思维能力等

因此,面试者应当做足准备,对编程语言,数据结构和算法等基础知识有全面的了解。面试的时候如果遇到简单的问题,则应聘者一定要注重细节,写出完整,鲁棒的代码,如果遇到复杂的问题,则应聘者可以通过画图,举例子分析和分解复杂问题等方法先理清思路再动手编程。除此之外,还应该不断优化时间效率和空间效率,力求找到最优的解法。在面试的过程中,应聘者还应该主动提问,以弄清楚题目的要求,表现自己的沟通的能力。

扎实的基础知识
基本功在编程环节体现在三个方面:
编程语言,数据结构和算法
需要对编程语言很熟练,常用的概念,工具包,特性等等。比如java的面向对象,集合类,多线程,jvm等等。
数据结构,需要熟练掌握链表,树,栈,队列和哈希表等数据结构。如果我们留意各大公司的面试题,就会发现与链表和二叉树相关的问题是很多面试官喜欢问的问题。这方面的问题看着简单,但是真正掌握也不容易,特别适合在面试时间内检验面试者的基本功。如果面试者对链表的插入和删除节点了如指掌,对二叉树各种遍历循环和递归写法烂熟于胸,那就游刃有余了。
最后,大部分公司都会注重考察查找,排序等算法。需要重点掌握二分查找,归并排序和快速排序,因为很多面试题都只是这项算法的变体而已。
其次,大厂对算法要更高,面试者需要熟练掌握动态规划和贪婪算法等。

高质量的代码
只有注重质量的程序员,才能写出稳定,鲁棒的大型软件。面试官会格外关注边界条件,特殊输入等看似细枝末节但是至关重要的点。
需要考虑边界条件,特殊输入比如null,空字符串等以及错误处理

程序员如何准备简历以及面试的要求相关推荐

  1. 老司机出招: 程序员如何写简历和面试?

    作者:Seaborn Lee 我求职面试的经验不多,在创业期间,倒是积累了一些招聘面试的经验. 面试,相亲,销售的过程都很类似,抽象一下,它们的本质是什么? 我认为是: 展示自我和挖掘对方需求的过程. ...

  2. 程序员这样对待简历,你期望面试官怎么对待你?

    为什么想到谈这个问题呢? 前段时间公司因业务扩展需要招聘几个研发.运维以及测试人员,在看面试者的简历时,发现很多人都没有认真的去对待简历,只是把招聘网站上的打印一下就好了! 这就让我想问几个问题: 1 ...

  3. 程序员如何写简历?来自硅谷的八条建议

    转载自  程序员如何写简历?来自硅谷的八条建议 前言 半个月前我发起了程序员内推项目之后,收到一些邮件,对方单纯希望我帮忙优化一下简历.我提了一些修改意见之后,有一位同学专门给我送了一张亚马逊的礼品卡 ...

  4. 阿里程序员受邀去华为面试,却因这点没被录取。

    一名阿里程序员讲述了自己之前面试华为的经历:前几年以阿里巴巴p7的身份去面试华为,也是他们主动在网上约我的,面谈了之后对我的能力表示认可,最后却没要我,原因是我不是名牌大学毕业,我才不稀罕呢! 对于这 ...

  5. 初级程序员对的简历撰写_如何撰写有效的简历

    初级程序员对的简历撰写 Not receiving a call for an interview after applying several times for your dream job? Y ...

  6. 某百度程序员中午面试一个阿里程序员,晚上去阿里面试,面试官竟是中午那个人!

    世界之大无奇不有,有些巧合简直就是天作之合,就像下面这位百度程序员和阿里程序员的故事. 某百度程序员发帖吐槽:中午面试了一个阿里程序员,问了他一些刁钻的问题,结果自己晚上去阿里面试,面试官竟然就是中午 ...

  7. 某百度程序员中午面试一个阿里程序员,晚上去阿里面试,面试官竟是中午那个人!...

    世界之大无奇不有,有些巧合简直就是天作之合,就像下面这位百度程序员和阿里程序员的故事. 某百度程序员发帖吐槽:中午面试了一个阿里程序员,问了他一些刁钻的问题,结果自己晚上去阿里面试,面试官竟然就是中午 ...

  8. 好程序员Java教程分享JavaScript面试问题及答案(一)

    好程序员Java教程分享JavaScript面试问题及答案(一) 1.使用 typeof bar === "object" 来确定 bar 是否是对象的潜在陷阱是什么?如何避免这个 ...

  9. 300小时成为java程序员_直击面试现场: Java程序员3轮6小时面试, 成功拿到阿里offer!...

    原标题:直击面试现场: Java程序员3轮6小时面试, 成功拿到阿里offer! 今天给大家分享一位Java程序员小伙去阿里应聘的经历! 从Java开发要掌握的技术来讲,前面已经说得差不多了.我主要想 ...

  10. 程序员上班刷简历!领导看见表示寒心竟还想挽留?

    程序员上班刷简历!领导看见表示寒心竟还想挽留:别耽误人家‍ 最近,一位程序员对于自己的工作不满意,于是在递交了离职申请之后就在自己位置上看招聘,没想到被领导看到了!其实领导也挺想留下他的,因为技术还可 ...

最新文章

  1. android 的listactivity
  2. CCF CSP201709-1打酱油
  3. 关于没有commit的死锁问题
  4. C++原子操作 atomic的使用及效率
  5. 让atmega8可以和飞思卡尔xs128一样对IO引脚进行定义
  6. 不要学习代码,要学会思考(转)
  7. 企业数字化新战场:低代码究竟是“毒瘤”还是“良药”?
  8. 电脑格式化的危害_防止硬盘被格式化的六大方法
  9. Codeforces Round #223 (Div. 2): C. Sereja and Prefixes(二分+递归)
  10. 微软Power BI 每月功能更新系列——3月Power BI 新功能学习
  11. 供销大集有潜力吗_社区团购遭点名批评,互联网巨头真的只是惦记那几捆白菜吗?| 吴坚浙商频道...
  12. 仿英雄联盟网页HTML代码 学生网页设计与制作期末作业下载 大学生网页设计与制作成品下载 DW游戏介绍网页作业代码下载
  13. 安平仓管王 5000xp v2.9 免费下载
  14. lockdir_59103.exe 怎样解密?
  15. 利用vue+高德地图API 实现用户的运动轨迹
  16. BZOJ 4946: [Noi2017]蔬菜 模拟费用流
  17. Dreaming to Distill Data-free Knowledge Transfer via DeepInversion
  18. 四代增强 (BTE实例详解)
  19. Scrapy 2.6 Items 数据项定义、加载、传输使用指南
  20. []575. Distribute Candies

热门文章

  1. linux查看ftp默认端口,linux系统如何修改ftp默认端口(图文)
  2. 天翼网关F452超级密码获取(亲测有效)
  3. python 对正整数分解质因数
  4. 【备忘】Pr基本操作
  5. 移动硬盘需要格式化才能打开如何解决?
  6. KiB、MiB与KB、MB的区别
  7. 三步解决error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“
  8. linux百度文字识别,基于Linux平台的图片文字识别系统
  9. sonic云真机入门教程
  10. 第二次作业,问卷星的使用