《PHP程序员面试笔试宝典》——如何回答技术性的问题?
如何巧妙地回答面试官的问题?
本文摘自《PHP程序员面试笔试宝典》
程序员面试中,面试官会经常询问一些技术性的问题,有的问题可能比较简单,都是历年的面试、笔试真题,求职者在平时的复习中会经常遇到。但有的题目可能比较难,来源于Google、Microsoft等大企业的题库或是企业自己为了招聘需要设计的题库,求职者可能从来没见过或者不能完整地、独立地想到解决方案,而这些题目往往又是企业比较关注的。
如何能够回答好这些技术性的问题呢?编者建议:会做的一定要拿满分,不会做的一定要拿部分分。即对于简单的题目,求职者要努力做到完全正确,毕竟这些题目,只要复习得当,完全回答正确一点问题都没有(编者认识的一个朋友曾把《编程之美》《编程珠玑》《程序员面试笔试宝典》上面的技术性题目与答案全都背熟,找工作时遇到该类问题解决得非常轻松);对于难度比较大的题目,不要惊慌,也不要害怕,即使无法完全做出来,也要努力思考问题,哪怕是半成品也要写出来,至少要把自己的思路表达给面试官,让面试官知道你的想法,而不是完全回答不会或者放弃,因为面试官很多时候除了关注求职者的独立思考问题的能力以外,还会关注求职者技术能力的可塑性,观察求职者是否能够在别人的引导下去正确地解决问题。所以,对于不会的问题,面试官很有可能会循序渐进地启发求职者去思考,通过这个过程,让面试官更加了解求职者。
一般而言,在回答技术性问题时,求职者大可不必胆战心惊,除非是没学过的新知识,否则,一般都可以采用以下六个步骤来分析解决。
(1)勇于提问
面试官提出的问题,有时候可能过于抽象,让求职者不知所措,或者无从下手,因此,对于面试中的疑惑,求职者要勇敢地提出来,多向面试官提问,把不明确或二义性的情况都问清楚。不用担心你的问题会让面试官烦恼,影响面试成绩,相反还对面试结果产生积极的影响:一方面,提问可以让面试官知道求职者在思考,也可以给面试官一个心思缜密的好印象;另一方面,方便后续自己对问题的解答。
例如,面试官提出一个问题:设计一个高效的排序算法。求职者可能没有头绪,排序对象是链表还是数组?数据类型是整型、浮点型、字符型还是结构体类型?数据基本有序还是杂乱无序?数据量有多大,1000以内还是百万以上?此时,求职者大可以将自己的疑问提出来,问题清楚了,解决方案也自然就出来了。
(2)高效设计
对于技术性问题,如何才能打动面试官?完成基本功能是必需的,仅此而已吗?显然不是,完成基本功能最多只能算及格水平,要想达到优秀水平,至少还应该考虑更多的内容,以排序算法为例:时间是否高效?空间是否高效?数据量不大时也许没有问题,如果是海量数据呢?是否考虑了相关环节,如数据的“增删改查”?是否考虑了代码的可扩展性、安全性、完整性以及鲁棒性。如果是网站设计,是否考虑了大规模数据访问的情况?是否需要考虑分布式系统架构?是否考虑了开源框架的使用?
(3)伪代码先行
有时候实际代码会比较复杂,上手就写很有可能会漏洞百出、条理混乱,所以求职者可以首先征求面试官的同意,在编写实际代码前,写一个伪代码或者画好流程图,这样做往往会让思路更加清晰明了。
(4)控制节奏
如果是算法设计题,面试官都会给求职者一个时间限制用以完成设计,一般为20min。完成得太慢,会给面试官留下能力不行的印象,但完成得太快,如果不能保证百分百正确,也会给面试官留下毛手毛脚的印象。速度快当然是好事情,但只有速度,没有质量,速度快根本不会给面试加分。所以,编者建议,回答问题的节奏最好不要太慢,也不要太快,如果实在是完成得比较快,也不要急于提交给面试官,最好能够利用剩余的时间,认真检查一些边界情况、异常情况及极性情况等,看是否也能满足要求。
(5)规范编码
回答技术性问题时,多数都是纸上写代码,离开了编译器的帮助,求职者要想让面试官对自己的代码一看即懂,除了字迹要工整外,最好是能够严格遵循编码规范:函数变量命名、换行缩进、语句嵌套和代码布局等。同时,代码设计应该具有完整性,保证代码能够完成基本功能、输入边界值能够得到正确的输出、对各种不合规范的非法输入能够做出合理的错误处理,否则写出的代码即使无比高效,面试官也不一定看得懂或者看起来非常费劲,这些对面试成功都是非常不利的。
(6)精心测试
任何软件都有bug,但不能因为如此就纵容自己的代码,允许错误百出。尤其是在面试过程中,实现功能也许并不十分困难,困难的是在有限的时间内设计出的算法,各种异常是否都得到了有效的处理,各种边界值是否都在算法设计的范围内。
测试代码是让代码变得完备的高效方式之一,也是一名优秀程序员必备的素质之一。所以,在编写代码前,求职者最好能够了解一些基本的测试知识,做一些基本的单元测试、功能测试、边界测试以及异常测试。
在回答技术性问题时,千万别一句话都不说,面试官面试的时间是有限的,他们希望在有限的时间内尽可能地多了解求职者,如果求职者坐在那里一句话不说,不仅会让面试官觉得求职者技术水平不行,思考问题能力以及沟通能力可能都存在问题。
其实,在面试时,求职者往往会存在一种思想误区,把技术性面试的结果看得太重要了。面试过程中的技术性问题,结果固然重要,但也并非最重要的内容,因为面试官看重的不仅仅是最终的结果,还包括求职者在解决问题的过程中体现出来的逻辑思维能力以及分析问题的能力。所以,求职者在与面试官的“博弈”中,要适当地提问,通过提问获取面试官的反馈信息,并抓住这些有用的信息进行辅助思考,进而提高面试的成功率。

更多有趣有料的PHP面试笔试资料可以关注:“琉忆编程库”

或者浏览:www.shuaiqi100.com 获取。
PHP程序员面试笔试宝典下载:https://pan.baidu.com/s/1-ES2ZI3z5Lhv-zTKFmJDSQ
《PHP程序员面试笔试宝典》——如何回答技术性的问题?的更多相关文章
- 《PHP程序员面试笔试宝典》——如何应对自己不会回答的问题?
如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> 在面试的过程中,对面试官提出的问题求职者并不是都能回答出来,计算机技术博大精深,很少有人能对计算机技术的各个分支学科了如 ...
- 《PHP程序员面试笔试宝典》——如何回答系统设计题?
如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> 应届生在面试时,偶尔也会遇到一些系统设计题,而这些题目往往只是测试求职者的知识面,或者测试求职者对系统架构方面的了解,一 ...
- 《PHP程序员面试笔试宝典》——如何回答算法设计问题?
如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> 程序员面试中的很多算法设计问题,都是历年来各家企业的"炒现饭",不管求职者以前对算法知识掌握得是否扎 ...
- 《PHP程序员面试笔试宝典》——如何回答快速估算类问题?
如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> 有些大企业的面试官,总喜欢出一些快速估算类问题,对他们而言,这些问题只是手段,不是目的,能够得到一个满意的结果固然是他们 ...
- 《PHP程序员面试笔试宝典》——如何回答非技术性问题?
如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> 评价一个人的能力,除了专业能力,还有一些非专业能力,如智力.沟通能力和反应能力等,所以在IT企业招聘过程的笔试.面试环节 ...
- 《PHP程序员面试笔试宝典》——如何巧妙地回答面试官的问题?
如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> 所谓"来者不善,善者不来",程序员面试中,求职者不可避免地需要回答面试官各种"刁钻&quo ...
- 新书出版 |《Oracle程序员面试笔试宝典》
新书出版 |<Oracle程序员面试笔试宝典> <Oracle程序员面试笔试宝典> 丛书[数据库 面试 笔试宝典]已在京东.淘宝和天猫预售,一共 5 本,目前市场上已有4本,丛 ...
- 《PHP程序员面试笔试宝典》——如何准备电话面试?
本文摘自<PHP程序员面试笔试宝典>. PHP面试技巧分享,PHP面试题,PHP宝典尽在"琉忆编程库". 用人单位在收到简历之后,有时候由于求职者众多,而且很多求职者的 ...
- 《PHP程序员面试笔试宝典》——如何准备集体面试?
本文摘自<PHP程序员面试笔试宝典>. PHP面试技巧分享,PHP面试题,PHP宝典尽在"琉忆编程库". 集体面试也被称为群面.无领导小组面试.由于计算机发展至今,软件 ...
随机推荐
- python call函数
call()函数本质上是将一个类的实例转换成一个函数,例如下列示例: class Sample: def __init__(self, x, y): self.x = x self.y = y def ...
- 自旋锁-JUC系列
公众号原文:自旋锁-JUC系列 前言 2022!这个年份现在看起来都觉得有那么些恍惚的未来感,然而现在已在脚下. 无边落木萧萧下, 不尽长江滚滚来! 人生如白驹过隙! 本来计划最近把AQS源码分析做了 ...
- manjaro20默认关闭蓝牙
用于节电. https://gist.github.com/0xfe11/d0874b7d31cf649616fa9d816571ab3c 推荐执行 # Stop and disable the bl ...
- 阿里巴巴如何进行测试提效 | 阿里巴巴DevOps实践指南
编者按:本文源自阿里云云效团队出品的<阿里巴巴DevOps实践指南>,扫描上方二维码或前往:https://developer.aliyun.com/topic/devops,下载完整版电 ...
- synergy最佳解决方案——barrier
synergy最佳解决方案--barrier 不知道大家有没有一套键盘鼠标控制多台电脑的需求,主流的硬件或说软件有大神整理如下: 软件方案: Windows 之间:Mouse Without Bo ...
- 基于 NFS 搭建便捷远程硬盘
基于 NFS 搭建便捷远程硬盘 知识准备: 一.NFS服务简介 NFS 是Network File System的缩写,即网络文件系统.一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向 ...
- Mysql 死锁分析
1. 结论 死锁检查机制 当事务A需要获取一个行锁时(例如更新一行数据),假如需要获取行1的锁 检查其他事务有没有已获取了行1的锁. 如果有,例如事务B已获取了行1的锁. 继续检查事务B在等待的锁,如 ...
- 流言粉碎机:JAVA使用 try catch 会严重影响性能
目录 一.JVM 异常处理逻辑 二.关于JVM的编译优化 1. 分层编译 2. 即时编译器 1. 解释模式 2. 编译模式 3. 提前编译器:jaotc 三.关于测试的约束 执行用时统计 编译器优化的 ...
- 多线程-线程间通信-多生产者多消费者问题解决(notifyAll)
1 package multithread4; 2 3 /* 4 * 生产者,消费者. 5 * 6 * 多生产者,多消费者的问题. 7 * 8 * if判断标记,只有一次,会导致不该运行的线程运行了. ...
- webpack学习:uni运行时代码解读一 (页面初始化加载)
uni的vue代码是如何在微信小程序里面执行的,对此比较感兴趣所以去调试学习了一波. 准备工作 // 在vue.config.js里打开非压缩的代码 module.exports = { config ...