后端开发技术面试指南

工作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.mzph.cn/news/717866.shtml

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

相关文章

经典语义分割(一)利用pytorch复现全卷积神经网络FCN

经典语义分割(一)利用pytorch复现全卷积神经网络FCN 这里选择B站up主[霹雳吧啦Wz]根据pytorch官方torchvision模块中实现的FCN源码。 Github连接:FCN源码 1 FCN模型搭建 1.1 FCN网络图 pytorch官方实现的FCN网络图,如下所示。 1.2 backbone FCN原…

为raspberrypi编译bpftrace调试工具

基于eBPF的嵌入式应用调试 笔者之前写过几篇有关于使用eBPF调试Linux内核和应用的博客,其中提到,在嵌入式设备上使用BCC或bpftrace是不可行的;主要原因在于嵌入式设备的资源有限,而这两个调试工具依赖python/clang/llvm等库&…

Scratch 第十六课-弹珠台游戏

第十六课-弹珠台游戏 大家好,今天我们一起做一款弹珠台scratch游戏,我们也可以叫它弹球游戏!这款游戏在刚出来的时候非常火爆。小朋友们要认真学习下! 这节课的学习目标 物体碰撞如何处理转向问题。复习键盘对角色的控制方式。…

STL-内存的配置与释放

STL-内存的配置与释放 STL有两级空间配置器,默认是使用第二级。第二级空间配置器会在某些情况下去调用第一级空间配置器。空间配置器都是在allocate函数内分配内存,在deallocate函数内释放内存。 第一级空间配置器 第一级配置器只是对malloc函数和fre…

【自然语言处理】BitNet b1.58:1bit LLM时代

论文地址:https://arxiv.org/pdf/2402.17764.pdf 相关博客 【自然语言处理】BitNet b1.58:1bit LLM时代 【自然语言处理】【长文本处理】RMT:能处理长度超过一百万token的Transformer 【自然语言处理】【大模型】MPT模型结构源码解析(单机版)…

如何在 Mac 上成功轻松地恢复 Excel 文件

Microsoft Excel 的 Mac 版本始终略落后于 Windows 版本,这也许可以解释为什么如此多的用户渴望学习如何在 Mac 上恢复 Excel 文件。 但导致重要电子表格不可用的不仅仅是 Mac 版 Excel 的不完全稳定性。用户有时会失去注意力并删除错误的文件,存储设备…

2024-03-03 c++

🌸 MFC进度条控件 | Progress Control 1。新建MFC项目(基于对话框、静态库) 2。添加控件,删除初始的3个多余控件 加1个progress control,修改其marquee为true,添加变量:变量名为test_progress。…

Angular基础---HelloWorld---Day1

文章目录 1. 创建Angular 项目2.对Angular架构的最基本了解3.创建并引用新的组件(component)4.对Angular架构新的认识(多组件)5.组件中业务逻辑文件的编辑(ts文件)6.标签中属性的绑定(1) ID的绑定(2) class…

String和String Builder

String和StringBuilder的区别 String类 String类代表字符串。java程序中所有字符串文字(例如“abc”)都被实现为此类的实例。 String类源码是用final修饰的,它们的值在创建后不能被更改。字符串缓冲区支持可变字符串。 String对象是不可变…

STM32 (2)

1.stm32编程模型 将C语言程序烧录到芯片中会存储在单片机的flsah存储器中,给芯片上电后,Flash中的程序会逐条进入到CPU中去执行,进而CPU去控制各种模块(即外设)去实现各种功能。 2.寄存器和寄存器编程 CPU通过控制其…

Apache POI的简单介绍与应用

介绍 Apache POI 是一个处理Miscrosoft Office各种文件格式的开源项目。我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作。PS: 一般情况下,POI 都是用于操作 Excel 文件,如图: Apache POI 的应用场景&…

SQL无列名注入

SQL无列名注入 ​ 前段时间,队里某位大佬发了一个关于sql注入无列名的文章,感觉好像很有用,特地研究下。 关于 information_schema 数据库: ​ 对于这一个库,我所知晓的内容并不多,并且之前总结SQL注入的…

设计模式-桥接模式实践案例

桥接模式(Bridge Pattern)是一种结构型设计模式,用于将抽象与实现分离,使它们可以独立地变化。这种模式通过提供一个桥接结构,可以将实现接口的实现部分和抽象层中可变化的部分分离开来。 以下是一个使用 Java 实现桥…

【数据结构】_包装类与泛型

目录 1. 包装类 1.1 基本数据类型和对应的包装类 1.2 (自动)装箱和(自动)拆箱 1.2.1 装箱与拆箱 1.2.2 自动(显式)装箱与自动(显式)拆箱 1.3 valueOf()方法 2. 泛型类 2.1 泛…

【深度学习笔记】计算机视觉——目标检测和边界框

目标检测和边界框 前面的章节(例如 sec_alexnet— sec_googlenet)介绍了各种图像分类模型。 在图像分类任务中,我们假设图像中只有一个主要物体对象,我们只关注如何识别其类别。 然而,很多时候图像里有多个我们感兴趣…

某大型制造企业数字化转型规划方案(附下载)

目录 一、项目背景和目标 二、业务现状 1. 总体应用现状 2. 各模块业务问题 2.1 设计 2.2 仿真 2.3 制造 2.4 服务 2.5 管理 三、业务需求及预期效果 1. 总体业务需求 2. 各模块业务需求 2.1 设计 2.2 仿真 2.3 制造 2.4 服务 2.5 管理 四、…

在vue中对keep-alive的理解,它是如何实现的,具体缓存的是什么?

对keep-alive的理解,它是如何实现的,具体缓存的是什么? (1)keep-alive有以下三个属性:注意:keep-alive 包裹动态组件时,会缓存不活动的组件实例。主要流程 (2&#xff09…

数字化转型导师坚鹏:证券公司数字化营销

证券公司数字化营销 ——借力数字化技术实现零售业务的批量化、精准化、场景化、智能化营销 课程背景: 很多证券公司存在以下问题: 不知道如何提升证券公司数字化营销能力? 不知道证券公司如何开展数字化营销工作? 不知道…

胎神游戏集第二期

延续上一期 一、海岛奇胎 #include<bits/stdc.h> #include<windows.h> #include<stdio.h> #include<conio.h> #include<time.h> using namespace std; typedef BOOL (WINAPI *PROCSETCONSOLEFONT)(HANDLE, DWORD); PROCSETCONSOLEFONT SetCons…

Linux 安装pip和换源

一 配置文档 Linux和macOS&#xff1a; 全局配置&#xff1a;/etc/pip.conf 用户级配置&#xff1a;~/.pip/pip.conf 或 ~/.config/pip/pip.conf 二 下载 和 安装 # pip 安装 wget https://bootstrap.pypa.io/get-pip.py python get-pip.py 三 查看和升级 pip -Vpython -m…