后端开发技术面试指南

工作10多年,每年都会帮组里面试一些新同学校招社招的都有,下面我就从一个面试官的视角来给大家拆解一下如何淡然应对后端开发技术面试。

1.一面多为电话面试

(1)问七问八

①简历要注重内容,形式上不丑没有错别字即可。之前收到过一个工作5年的简历,内容只有一面,因为他一直在一个公司的一个项目组,他就写了一个大项目。这种简历很有问题,如果你确实没项目可写,

②换工作不能太频繁。如果你跳槽的频率是半年到一年,相信我,没有大厂敢要你,因为大厂流程复杂,半年相当于刚把你培训上道,你却要跑了。

③不要说自己是被优化掉的。你自己不承认,面试官怀疑也没有用,如果你面试状态很不错,其实没有影响。但是如果你上来就说自己是被上家优化掉的,很多大厂都不会考虑。

(2)自我介绍免不了

①下面是个不好的例子:我告诉他进行一次简短的自我介绍,结果他聊了15分钟也不停歇,尝试打断他,没说几句,他又开始聊起来自认为很牛x的项目。

(3)背八股。你说你精通c++,刚好我也懂。。

①面试官很喜欢问一些底层实现之类的问题以彰显他们的智慧,比如虚函数是怎么实现的?如果你能条理清晰的虚函数表的内存布局就差不多了。还有比如STL的hashmap是如何实现的?其实这些东西在工作中鲜有实际用途,但是能判别一个人是不是真的一天到晚CRUD,从不学习底层技术。你也知道大厂都是招聘火箭专家进来打螺丝。

(4)系统设计侃大山

①一般电话面试不会要求做题(也有那种给你一个共享文档让你来做题的情况),但是系统设计是可以不用写写画画就能聊的,比如面试官会让你设计实现一个限流器,碰到这种问题,你不要一上来就给答案,你需要先跟面试官沟通问清楚需求,比如问面试官如下问题:你是要给什么东西限流,面试官会说后端API接口;然后再问是给单机服务限流还是集群API限流;然后再问需求是否是只需要限制每秒少于N个请求即可还是说要尽可能的平滑请求等等;你把需求问清楚了,思路基本就出来了,比如你给出了一个用redis实现的令牌桶。

(5)你有什么问题?

①理论上你可以问面试官任何问题,但是最好不要问,你们组卷不卷,加班多不多之类的问题,你问了,面试官会觉得你不喜欢加班,而且这种问题你在面试官那里也得不到真实的答案,这个问题你最好问给你内推的人。

2.二面/三面

二面三面基本都是硬核的做题类型的面试。

(1)自我介绍,请开始你的表演。注意时长(5分钟以内),重点说难度说亮点。什么叫难度?高并发高可用低延迟,往这上面靠就行。

(2)八股文你能背出来吗?

①所有你简历上的内容,你都需要提前准备,尤其是你精通的,比如你说你精通Redis,面试官可能就会问你,redis为什么这么快?你如果只回答了一句因为redis是存内存的,你可能这次面试会挂,即使你作对了两道题。而如果你说了很多点,比如非阻塞I/O多路复用,以及哈希表优化等等,即使你两道编程题只做对了一道,一般还会有下次机会。

(3)先做一道入门级别的编程题热热身.

①这里一般面试官会让你用自己最擅长的语言写一道基本的编程题。比如将一个数1234转成中文一千二百三十四,拿到这种题目切记不要大意,面试官考察的是你能否编写干净整洁和正确的代码,干净整洁需要你逻辑清晰不写垃圾代码,正确需要你想清楚各种边边角角的情况比如4000,0等,并写好单元测试。

(4)工作5年,并发编程应该小菜一碟吧。

①比如让你写一个多线程压测工具,给你一个url,需要你开多线程对这个网站发送http请求,并打印出来当前压测的QPS是多少。你如果用java,拿到这个题,你至少需要知道如何开thread,如何发http请求,如何线程安全的记录QPS,可以看出这种题目并不难,但是如果你写代码不多,很容易写不满足要求的代码。

(5)重头戏来了:算法和数据结构

①这一块可能很难,如果你面试的职级比较高,碰到比较难的题例如某些复杂的动态规划题目的概率就比较大, 还有一般女生碰到难题的概率相对较小,以及特别牛X轰轰的人碰到难题的概率相对较大。

②正常都是leetcode上中等难度的题,比如对常见的数据结构二叉树,就会出一道这样的题,给你一个二叉树,验证它是否是一个二叉搜索树,什么?你连二叉搜索树是啥都不知道?这时候你不要慌,你就说平时编程时没有用过二叉搜索树,5年前学过的,现在忘记了,让面试官提醒你一下二叉搜索树的特性;面试官心情不差的情况下应该会告诉你;要是你刚好刷过这道题,你应该窃喜,并且不露声色的做思考状,“嗯,这道题没做过,递归不好搞啊,遍历一下怎么样,左中右,BST遍历之后应该是升序啊,然后装作问面试官,是升序就是BST?”。如果你很诚实,也可以告诉面试官我刚做过,请换一道。。

3.终面

(1)不清楚,等我当上领导了再说吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/508610.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机考研】408学到什么程度才能考130?

408考130要比考研数学考130难的多 我想大部分考过408的考生都是这么认为的。408的难点在于他涉及的范围太广了,首先如果你要备考408,你要准备四门课程,分别是数据结构,计算机组成原理,操作系统和计算机网络。 这四门…

kafka进阶(二)

文章目录 前言一、Ack机制二、ISR集合总结 前言 本篇主要介绍kafka 的 Ack机制 和 ISR集合 一、Ack机制 Kafka提供了三种不同的应答机制(ACK): acks0:这是最不可靠的模式。在这种模式下,生产者不会等待来自服务器的…

PHP【swoole】

前言 Swoole官方文档:Swoole 文档 Swoole 使 PHP 开发人员可以编写高性能高并发的 TCP、UDP、Unix Socket、HTTP、 WebSocket 等服务,让 PHP 不再局限于 Web 领域。Swoole4 协程的成熟将 PHP 带入了前所未有的时期, 为性能的提升提供了独一无…

wordpress 开源主题

海外就医wordpress主题 出国看病、海外就医是越来越多中产家庭的选择,此wordpress主题适合做相关业务的公司官网。 https://www.jianzhanpress.com/?p5220 防护wordpress外贸主题 个人防护器具wordpress外贸主题,适合做劳动保护的外贸公司使用。 ht…

matplotlib散点图

matplotlib散点图 假设通过爬虫你获取到了北京2016年3, 10月份每天白天的最高气温(分别位于列表a, b), 那么此时如何寻找出气温和随时间(天)变化的某种规律? from matplotlib import pyplot as pltx_3 range(1, 32) x_10 range(51, 82)y_3 [11,17,16,11,12,11,12,6,6,7,8…

CentOS配网报错:network is unreachable

常用命令: 打开: cd /etc/sysconfig/network-scripts/ 修改: vim ifcfg-ens33 打开修改: vim /etc/sysconfig/network-scripts/ifcfg-ens33 保存: 方法1:ESCZZ(Z要大写) 方…

2024绿色能源、城市规划与环境国际会议(ICGESCE 2024)

2024绿色能源、城市规划与环境国际会议(ICGESCE 2024) 一、【会议简介】 随着全球气候变化和环境问题日益严重,绿色能源和可持续发展已成为全球关注的焦点。本次会议旨在汇聚全球在绿色能源、城市规划与环境领域的专家、学者和实践者,共同探讨和分享关于…

ChatGPT最新功能“Text To Speech (TTS,文本转语音)”详细解读!

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,所以创建了“AI信息Gap”这个公众号,专注于分享AI全维度知识…

STM32(5) GPIO(2)输出

1.点亮LED 1.1 推挽接法和开漏接法 要想点亮LED,有两种接法 推挽接法: 向寄存器写1,引脚输出高电平,LED点亮;向寄存器写0,引脚输出低电平,LED熄灭。 开漏接法: 向寄存器写0&…

【JavaEE】_Spring MVC 项目传参问题

目录 1. 传递单个参数 1.1 关于参数名的问题 2. 传递多个参数 2.1 关于参数顺序的问题 2.2 关于基本类型与包装类的问题 3. 使用对象传参 4. 后端参数重命名问题 4.1 关于RequestPara注解 1. 传递单个参数 现创建Spring MVC项目,.java文件内容如下&#xff…

GORM框架快速入门

GORM框架 gorm地址 :https://github.com/go-gorm/gorm 目前使用最广泛的一个go语言数据库框架 1、入门 数据库以目前使用最多的mysql为例。 //安装MySQL驱动 go get -u gorm.io/driver/mysql //安装gorm包 go get -u gorm.io/gorm //安装gin go get -u github.c…

Quartz 任务调度框架源码阅读解析

概念: quartz 是一个基于JAVA的定时任务调度框架 案例: <dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.3.0</version></dependency>JobDetail job JobBuilder.newJob(Sc…