技术面试介绍

2023-05-16

内容:

1、技术面试的形式

2、技术面试的大致环节

3、技术面试应具备的素质

4、技术面试的经验建议

 

参考:

《剑指offer》第二版 - 第一章

《Java程序员面试笔试宝典》- 第一章、第二章

 

 

 

1、技术面试的形式

技术面试大致上可以分为以下形式:

  • 电话面试
  • 共享桌面面试
  • 现场面试

(1)电话面试

电话面试:面试官通过打电话的方式考查应聘者

注意事项:

  • 主动选择通话时间
  • 主动选择通话地点
  • 准备齐全:纸和笔、简历、必要的工具书、水
  • 保证手机电池能至少连续通话1个小时
  • 语速不要太快、尽量用形象化的语言把问题细节说清楚

 

(2)共享桌面面试

共享桌面面试: 指利用一些共享桌面的软件,应聘者把自己的电脑桌面共享给面试官,然后面试官观看应聘者编程和调试的过程

这种面试中面试官最关心的是应聘者的编程习惯及调试能力,应该做好以下几方面:

  • 思考清楚再开始编程
  • 良好的代码命名和缩进对齐习惯
  • 进行单元测试

 

(3)现场面试

现场面试:一般是通过在线笔试或者上面两个面试过程之后应聘者去公司现场或者公司安排的地方进行面试

注意事项:

  • 规划好出行路线并估算出行时间(不要迟到)
  • 准备好得体的衣服(程序员穿舒服干净的衣服就行)
  • 注意面试邀请函中的面试流程
  • 准备一些必要的问题

 

 

2、技术面试的大致环节

技术面试的大致环节可以分为以下三项:

  • 行为面试
  • 技术面试(核心)
  • 应聘者提问 

(1)行为面试

行为面试:面试开始的5到10分钟,面试官会注意应聘者的性格特点,深入了解简历中列举的项目经验

自我介绍:开始的时候一般要进行自我介绍,面试官手中有应聘者的简历(有详细资料),不必详细介绍个人情况,而是用1分钟左右的时间介绍自己的主要学习、项目经历、工作经历等

项目经验描述:

  • 项目经验的描述使用STAR模型进行描述,从以下几个方面描述:
  • situation:简短的项目背景(项目规模、项目功能、目标用户)
  • task:自己完成的任务(注意参与和负责的区别)
  • action:为完成任务做了哪些工作、是怎么做的(基于什么工具在什么平台应用哪些技术进行开发)
  • result:自己的贡献(完成多少功能、优化性能提高的百分比是多少、修改多少bug)

注意:在这个过程中没有技术难题,是一个暖场的过程,应聘者可以利用这几分钟调整情绪,进入状态

 

(2)技术面试(核心)

技术面试:面试官通过各种方法考查应聘者的能力与技术,比如手写代码、回答问题等

技术面试是面试中的核心部分,一般时间在30分钟以上,50分钟以下,对整个面试的结果起决定性作用

技术面试核心考查以下五点素质:

  • 扎实的基础知识:熟悉编程语言(1到2门)、数据结构和算法
  • 高质量的代码:正确、鲁棒性、完整
  • 清晰的思路:解决复杂性问题时有清晰的思路
  • 优化算法效率:时间复杂度、空间复杂度
  • 综合能力:学习沟通能力、发散思维能力等

详细内容见后面的技术面试应具备的基本素质

 

(3)应聘者提问 

在结束面试的5到10分钟之内,一般面试者都会给应聘者机会提几个问题,应聘者提的问题质量对面试结果也有一定影响,建议提前准备好几个问题

注意事项:

  • 不要问和职位无关的事情:例如开发工程师不要问公司未来五年的发展战略是什么 
  • 不要问薪水:技术面试不是谈薪水的时候,谈薪水是等全部面试通过之后跟HR谈
  • 不要马上打听面试结果:面试一般都有好几轮,最后能否成要把所有面试官的评价综合起来
  • 推荐问与职位或项目相关的问题:面试前了解公司主要业务及职位要求、面试过程中注意面试官说的话(有些面试官会介绍公司的项目)

 

 

3、技术面试应具备的基本素质

技术面试中应聘者应当具备的基本素质如下:

  • 扎实的基础知识:熟悉编程语言(1到2门)、数据结构和算法
  • 高质量的代码:正确、鲁棒性、完整
  • 清晰的思路:解决复杂性问题时有清晰的思路
  • 优化算法效率:时间复杂度、空间复杂度
  • 综合能力:学习沟通能力、发散思维能力等

(1)扎实的基础知识

扎实的基础知识包括以下三方面:

  • 编程语言:熟悉C++、Java、python等
  • 数据结构:熟悉链表、树、栈、队列等常用数据结构
  • 算法:熟悉查找(二分)、排序(归并、快排)、动态规划、贪心等常用算法

 

(2)高质量的代码

高质量的代码包括以下几方面:

  • 考虑边界条件
  • 特殊输入处理(空指针、空字符串等)
  • 错误处理

 

(3)清晰的思路

一些复杂的问题,应聘者可能无法很快得出正确答案,但是一定要展示自己清晰的思路,不要乱

清晰的思路可以从以下三方面去做:

  • 举例(把问题形象化):举几个简单的具体例子让自己理解问题,通过具体的实例找到抽象的规律
  • 图形化(把问题具体化):用图形表示抽象的数据结构,比如分析链表、二叉树这样的题目,可以画出它们的结构来进行分析 
  • 分解问题(把问题简化):可以试着把复杂的问题分解成若干个简单的子问题,再一一解决,很多基于递归的问题都可以这样去解决

 

(4)优化算法效率

优秀的程序员对时间和内存的消耗都锱铢必较,有激情的不断去优化代码。当面试官面试出的题目有多种解的时候一般都希望应聘者能最终找到最优解或者能不断优化算法效率

优化算法效率就是不断优化算法的时间效率和空间效率

优化算法效率从以下三方面去做:

  • 学会分析效率
  • 熟知各种数据结构的优缺点并选择合适的数据结构解决问题
  • 熟练掌握常用的算法

 

(5)综合能力

在整个技术面试中,面试者除了展示自己的编程能力和技术功底外还需要展示自己的软技能:

  • 沟通能力:介绍项目经验或算法思路时是否观点明确、逻辑清晰,说话的神态和语气(面试官不喜欢高傲或轻视合作的人)
  • 学习能力:知识迁移能力,能否从简单问题中得到启示从而找到解决复杂问题的窍门
  • 抽象建模能力:从日常生活中提出问题,考查面试者能否将问题抽象出来用合理的数据结构表示并找到规律解决
  • 发散思维能力:面试官有时候会提示不限制解题方法,这就考查应聘者是否具有创新精神,打开思路从多角度分析、解决问题

 

 

4、技术面试的经验建议

此部分来自《Java程序员笔试面试宝典》及网上的面经

(1)认清自我、保持强烈的求知欲

一个人最重要的就是认清自我,明确知道自己想要什么,明确自己的目标。只有认清了自己之后才能知道自己想要做什么、适合做什么、能做什么。

在某种程度上这比你学什么知识、技术更加重要。只有方向和目标明确,才会有前进的动力,否则再努力都是白费。 

其次,要有强烈的求知欲,求知欲即求生欲,连求知欲都没有的人很难在技术圈里混下去,哪怕没有也要装做有的样子!

世界上没有学不会的东西,就看你是否用心去学,是否愿意花费时间去做、去想,万事就怕认真,只要你认真做了不是太难的东西一般可以学会的。

 

(2)坦白诚实、脚踏实地

有时候面试官问到了你不会的问题或者不太熟悉的领域,那就实话实说,讲出自己的理解并坦言自己这方面知识的欠缺,这比你不懂装懂好得多。

另外大部分面试官在面试的时候一般都是在考查求职者擅长的方面,问的不擅长的问题应该不会很多,所以也没有必要担心面试官问的自己不会或者从来没听说过,只要做好自己就好

企业招聘人才的时候,想要的人是这样的:对人对事有信心、掌握多项技能、基础扎实、有冲劲、愿意拼搏,所以在平时的学习中,还是要脚踏实地的学好专业知识,适当拓展专业技能

 

(3)未雨绸缪、提前准备

什么事情都要提前准备,没有准备就去面试等于送死。

首先你要对你去面试的这个岗位有一个基本的认识,不能犯低级错误(比如投错简历),你要清楚的知道企业对这个岗位的要求是什么以及关于这个岗位的其他要求等信息。

其次要根据别人对你的职位要求进行相应准备,比如人家要求你了解socket编程你就要清楚socket编程中的几个函数(bind、connect、listen、accept、send、recv、close)

 

(4)多刷题、刷好题、多总结

如果要参加好的公司的技术面试,一定有一个前提就是通过别人公司的笔试(在线笔试 or 现场笔试),笔试无非就是刷题,题型是选择题+编程题(可能有的公司有简答题)

选择题可以去牛客上练:https://www.nowcoder.com/intelligentTest

编程题可以刷leetcode,另外剑指offer和编程之美这两本书里面的题目也要会(笔试的编程题的套路要么考这上面的原题要么换汤不换药,套路都是一样的)

 

转载于:https://www.cnblogs.com/wyb666/p/10230561.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

技术面试介绍 的相关文章

  • 老赵谈IL(4):什么时候应该学IL,该怎么学IL

    又是一个拖了半年的系列 xff0c 可能是前几篇主要以事实为准 xff0c 举例子的文章总是比较容易写的 xff0c 因此十分顺畅 而最后一篇打算做一个总结 xff0c 以讲道理为主 却发现该将的似乎都已经讲完了 不过做事要有始有终 xff
  • FreeRTOS的第一个任务是怎么跑起来的

    一 一般在程序末尾会有一个vTaskStartSheduler 函数 span class hljs keyword int span main span class hljs keyword void span BSP INIT Bina
  • STM32-正弦波可调(50HZ~20KHZ可调、峰峰值0~3.3V可调)

    1 原理 通过定时器每隔一段时间触发一次DAC转换 然后通过DMA发送正玄波码表值给DAC 当需要改变频率HZ 时 只需要修改定时器频率 即可 最高只能达到20KHz 当需要改变 正玄波的正峰峰值 负峰峰值 时 只需要修改正玄波码表 即可
  • .Net ASP.NET 打开指定文件夹

    比如要打开指定的文件夹 xff0c 而不是弹出对话框 System Diagnostics Process Start 64 34 D 34 这样就打开了D盘 和正常打开D盘是一样的
  • 几种更新(Update语句)查询的方法

    正 文 数据库更新就一种方法Update xff0c 其标准格式 xff1a Update 表名 set 字段 61 值 where 条件 只是依据数据的来源不同 xff0c 还是有所差别的 xff1a 1 从外部输入 这样的比較简单 例
  • mysql8.0.13 cmd 登陆报错

    今天打算配置一个php运行环境 xff0c 将php mysql apache依次下载好 xff0c 我首先安装的是mysql xff0c 安装过程很顺利 xff0c 在cmd输入mysql uroot p的时候 xff0c 我靠 xff0
  • vue移动端的自适应布局的两种解决方案

    目标 前端开发移动端及H5时候 xff0c 不需要再关心移动设备的大小 xff0c 只需要按照固定 设计稿的px值布局 基础知识 dpr xff08 设备像素比 xff09 css的像素px不等于设备像素 分辨率 各种值 xff0c css
  • 对单片机数码管显示段选位选的理解

    在51单片机的数码管的应用开发中一些小的细节还是应该注意到的 其中位选信号应该在段选之前打开 xff0c 下面是一段示例代码 xff08 我用的是国信长天开发板 xff09 xff1a include lt reg51 h gt 包含51单
  • http请求中get请求可以缓存和post请求不可缓存

    2019独角兽企业重金招聘Python工程师标准 gt gt gt GET请求后退 刷新无害 xff0c POST后退 刷新则会导致重新提交数据 GET书签可被收藏 POST为书签不可收藏 GET能被缓存 POST不能被缓存 GET编码类型
  • VMWare中虚拟机(CentOS)如何开启虚拟化功能

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 需求说明 xff1a VMware版本如下示 xff0c 在此VMware上创建了虚拟机并安装了CentOS6 5系统 现在需要在此客户机 xff08 VM xff09 上
  • C# 常见的错误类型

    Exception 应用程序执行期间发生错误 SystemException 系统异常 所有Exception的基类 ArgumentException 当方法提供的任意一个参数无效时 xff0c 引发此异常 ArithmeticExcep
  • 字典树 trie树 学习

    一字典树 字典树 xff0c 又称单词查找树 xff0c Trie树 xff0c 是一种树形结构 xff0c 哈希表的一个变种 二 性质 根节点不包含字符 xff0c 除根节点以外的每一个节点都只包含一个字符 xff1b 从根节点到某一节点
  • 《Linux 内核完全注释》阅读笔记

    在阅读源代码之前 xff0c 有必要对Linux内核的体系结构 源代码的目录结构有个宏观地了解 xff0c Linux内核完全注释 非常详细地介绍了这方面的内容 xff0c 所以 这里仅仅进行概述性的讨论 xff0c 以便让所有的笔记构成一
  • 抽象工厂模式(C++)

    define win 0 define mac 1 include lt iostream gt using namespace std class button public button virtual button virtual v
  • 大智慧显示切换服务器,大智慧怎么改界面 大智慧改界面教程

    很多软件的界面都可以根据每个用户不同的需求进行定制 xff0c 大智慧炒股软件也是如此 在大智慧的版面设计功能中 xff0c 用户可以将几十种不同功能的窗口自由组合摆放 xff0c 直到配置出满意的界面 大智慧的版面设计可以建立分析功能窗口
  • threadx将linux作为进程,如何在Windows操作系统上模拟ThreadX应用程序

    是的 xff0c 你可以的 xff0c 如果你愿意投入的工作 首先观察到每个线程系统调用都有一个等价的posix调用 xff0c 除了事件 因此 xff0c 您的线程程序可以使用posix线程 xff0c 互斥锁等作为单个进程运行 事件可以
  • STL"源码"剖析-重点知识总结

    STL是C 43 43 重要的组件之一 xff0c 大学时看过 STL源码剖析 这本书 xff0c 这几天复习了一下 xff0c 总结出以下LZ认为比较重要的知识点 xff0c 内容有点略多 1 STL概述 STL提供六大组件 xff0c
  • inter处理器(CPU)的分类

    对于台式机和笔记本电脑 xff0c 最常见的是酷睿 奔腾和赛扬系列 xff0c 同代产品中他们的性能依次减弱 xff0c 酷睿最强 xff0c 奔腾次之 xff0c 赛扬最弱 xff08 酷睿 gt 奔腾 gt 赛扬 xff09 对于智能手
  • 利用iftop查看网络带宽使用情况

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 利用iftop查看服务器实时流量 yum install y gcc flex byacc libpcap ncurses ncurses devel libpcap de

随机推荐

  • matlab程序改为m文件名,在MATLAB中,程序文件的扩展名为.m,所以程序文件也称为M文件...

    在MATLAB中 xff0c 程序文件的扩展名为 m xff0c 所以程序文件也称为M文件 答 xff1a 磷酸果糖激酶 2催化6 磷酸果糖生成的产物是 答 xff1a 2 xff0c 6 二磷酸果糖 人类行为的经济学分析 的作者是 答 x
  • 学习ASP.NET Core Razor 编程系列十八——并发解决方案

    学习ASP NET Core Razor 编程系列目录 学习ASP NET Core Razor 编程系列一 学习ASP NET Core Razor 编程系列二 添加一个实体 学习ASP NET Core Razor 编程系列三 创建数据
  • Kubernetes运行监控-使用Helm快速部署Prometheus和Grafana

    2019独角兽企业重金招聘Python工程师标准 gt gt gt Kubernetes运行监控 使用Helm快速部署Prometheus和Grafana 使用Helm快速部署Pormetheus和Grafana非常方便 xff0c 很多手
  • linux交叉编译c++

    下载g 43 43 交叉编译工具链 sudo apt install g 43 43 arm linux gnueabihf 测试程序 include lt iostream gt using namespace std int main
  • 因子分析factor analysis_spss运用_python建模(推荐AAA)

    sklearn实战 乳腺癌细胞数据挖掘 xff08 博主亲自录制视频 xff09 https study 163 com course introduction htm courseId 61 1005269003 amp utm camp
  • 清除ListBox的列表项(删除所有项目)

    如何清除ListBox的列表项 删除所有项目 xff0c 今天开发程序时 xff0c 有尝试使用此功能 一开始并不是很顺利 循环所有item去做remove时 xff0c 需要执行两次才可以完成清除 debug进行步进跟踪 xff0c 发现
  • SVN查看所有日志提交记录

    1 svn默认显示最近一周的文件提交和修改记录 xff0c 怎么查看更长时间的日志记录呢 xff1f 2 TortoiseSVN 3 点击show all 或者NEXT 100 xff0c 就可显示更长时间的文件提交记录
  • Nearest neighbor graph | 近邻图

    最近在开发一套自己的单细胞分析方法 xff0c 所以copy paste事业有所停顿 实例 xff1a R eNetIt v0 1 1 data ralu site Saturated spatial graph sat graph lt
  • 手把手教你实现一个简单的编译器

    手把手教你实现一个简单的编译器 1 概述 今天我们将学习开发一个编译器 xff0c 但是呢 xff0c 这个编译器并不是说什么都能都编译 xff0c 它只是一个超级小的编译器 xff0c 主要用于说明编译器的一些基本的原理 我们这个编译器可
  • 查看struts版本号

    2019独角兽企业重金招聘Python工程师标准 gt gt gt struts版本信息查看方法 xff1a 查看lib中的 struts2 core jar META INF MANIFEST MF 找到Implementation Ve
  • R语言读取大数据 data.table包 fread函数

    gt setwd 34 D R Tardy 34 gt library data table data table 1 9 6 For help type data table or https github com Rdatatable
  • Android中读取文本文件中内容的方法

    这几天在项目开发中 xff0c 要读取文本文件中内容的 xff0c 因此写了个读取文本文件中内容的方法 xff0c 代码如下 xff1a 读取文本文件中的内容 public static String ReadTxtFile String
  • Error creating bean with name 'objectMapperConfigurer' defined in class path resource

    转载于 https www cnblogs com qianjinyan p 10879065 html
  • C#实现Windows 服务的制作安装和删除[转]

    关于C 实现windows服务的制作与安装还有删除 运行Visual Studio NET xff0c 建立一个C 的Windows服务项目 主程序代码 xff1a 以下是引用片段 xff1a Code using System using
  • 相机与IMU联合标定

    相机与IMU联合标定 1 imu utils 标定IMU的内参1 1 安装环境1 2 录制IMU数据集 2 kalibr 标定工具2 1 安装2 2 校准相机的内外参2 3 校准相机与IMU外参 总结参考资料 1 imu utils标定IM
  • matlab练习程序(寻找凸包,Graham扫描法)

    我不太清楚这个凸包在图像处理中到底会怎样的运用 xff0c 因为这个好像更多的是计算几何或是图形学里面的东西 不过作为一个算法 xff0c 我感觉还是有必要研究一下的 我主要的参考资料是 算法导论 的33 3和这个博客 代码在这里 xff0
  • 1

    stage 1 xff1a 尝试直接使用Adobe acrobat xff0c foxit阅读器 xff0c 以及CAJ等PDF阅读器 xff0c 尝试使用CAJ是因为CAJ有文字识别功能 xff0c 但是对于加密的文档 xff0c 依然是
  • Python自动化备份系统及网站

    随着目前IT迅猛的发展 xff0c 自动化运维对于Linux运维人员也越来越重要 xff0c 传统的运维方式靠大量的人力 xff0c 现在也逐渐转向自动化运维 xff0c 我们常见的跟自动化有关的软件有哪些呢 今天我们来简单列举一下 xff
  • AI 黑箱难题怎么破?基于神经网络模型的算法使机器学习透明化

    编者按 xff1a 人们可以训练人工智能 xff08 AI xff09 和机器人完成任务 xff0c 但整个过程在黑箱中运作 我们并不知道 AI 和机器人是如何决策的 一家名为 OptimizingMind 的初创公司想要解决这个问题 这篇
  • 技术面试介绍

    内容 xff1a 1 技术面试的形式 2 技术面试的大致环节 3 技术面试应具备的素质 4 技术面试的经验建议 参考 xff1a 剑指offer 第二版 第一章 Java程序员面试笔试宝典 第一章 第二章 1 技术面试的形式 技术面试大致上