字节跳动实习面经(已拿offer附攻略)

大家好,我是bigsai,今天给大家分享自己字节跳动面试经验分享。
在这里插入图片描述

enum我面得岗位是后台实习开发,具体部门是懂车帝,总体感觉就是字节的流程真的好快,只要安排面试,那流程接着很快。

大概是上上周投递一波简历,然后上周一约的面试,然后周二下午三场面试(腾讯三面) 然后字节一面完面试官说你休息两分钟,待会二面,然后就接着二面,周三就是hr面,周五具体offer就下来了是真的快。

字节的两次面试大概每次都是一个小时左右,面试主要内容就是 算法题+项目+八股文,下面会详细讲讲自己的看法,有些问题看似简单,但也有很多想回答好没那么容易的,还有些问题忘记了哈。

字节一面 1h

ps:字节的后台主要技术栈是Golang,但是一面面试官看我简历上是Java技术栈,并且这个老哥感觉以前是做Java的,所以问了一些Java的问题。

自我介绍

算法题(剑指offer32 从上到下打印二叉树 III)

介绍一下项目

在项目中负责什么(问数据库设计、缓存设计、其他功能设计等等)

你是搞Java的是吧,说说Spring两大核心(IOC,AOP)

SpringBoot和Spring区别

JVM内存模型

讲讲你知道的锁,什么是可重入锁

ReentrantLook是怎么实现

讲讲RESTful

讲讲InnerDB

说说你知道的HTTP状态码

Nginx和Tomcat区别

Get和Post的区别

HTTP请求报文格式

三次握手四次挥手

如何设计一个登录功能,需要考虑什么东西

字节二面(接一面)1h

自我介绍

算法题(力扣56. 合并区间)

介绍一下项目

项目中有用到什么设计模式,介绍你熟悉的设计模式

进程通信有哪几种方式,线程通信有哪几种方式

浏览器输入一个URL过程

MySQL事务ACID

事务隔离级别、幻读

谈谈你了解的微服务

流量并发太大有什么优化方法

Session存储在哪里,和Cookie区别

谈谈消息队列

如何保证Web应用设计的安全性(想多少说多少)

场景题:设计一个评论系统(数据库、缓存最重要),评论可以curd,查询可以按照页面ID查询,和用户ID查询(可以简单说说可以详细说说,自由发挥)

ps:这个场景题很有意思,缓存设计我个人设计前几页热点评论放缓存,其他不放(因为有删除可能影响太大hhh)

HR面

自我介绍一下

在项目中承担什么角色

你有什么优势

……

什么时候能入职

过两天offer就下来了

image-20210705180040946

总结

enum,因为是实习面试,可能没那么卷,个人感觉大部分问题并没有刁难,也并没有深挖一两个点,刚开始我以为字节会以恐怖算法题和八股文让我整个过程瑟瑟发抖,我以为疯狂计网、疯狂OS,但是两个面试官都跟我聊了很多项目相关的,并且我的项目都是以前自己负责编写,也参加过一些比赛啥的,所以在项目润色这块可谓是很早前就做了准备。

根据刷题,八股文,和项目在这里我给大家一些建议吧。

刷题

刷题的话,短期速成很难,不过实习大部分公司对刷题要求没正式批那么高(毕竟是进去廉价劳动力),并且刷题实习一般不会出hard难度的问题,除非面试官可能看你不爽(hhh),然后剑指offer优先级最高,把剑指offer简单和中等题目认真刷,最好是懂每一题的最佳解 ,不过有时在面试途中如果直接用最佳方法怕卡壳忘记思路断电(确实有这种情况),你可以用自己把握强的方法先过,然后跟面试官说:“面试官这题虽然这样过了,我还有优化方法,可以跟你说说吗。” 然后就这样可以再把最佳方法思路流程详细说一下。

这个当场刷题,其实考的就是一个刷题量,简单题你可能当场想出来,但是剑指offer,力扣这些基本都是思维技巧很大的当场这种紧张很容易断电,所以还是要提前准备,面对字节实习的话最起码要准备剑指offer力扣hot100题

可不能在算法题直接倒下,在这倒下很影响你后面回答问题信心,并且面试官如果看你题解答的很棒可能用一个交流的方式跟你面试,而不是冷冰冰的一直问一直挖哈哈(个人猜测)。

八股文

八股文因为我准备时间很少,可能只有有限天数,我还是推荐Guide哥的JavaGuide面试突击版,用起来感觉很香,把很多高频问题都已经总结到了,另外如果有些感觉如果不够详细,可以找一些博客文章具体看看,因为面试高频问题有很多人写的非常好。不过面字节和腾讯的话Java那部分可以省略跳过一下。

除此之外,看一些公众号文章也是有必要的,比如我面试前把秀哥逆袭进大厂系列需要的看了,还有狼王那篇GET和POST卡布奇诺也看了刚好也问到了,还有看了一些身边比较厉害号主文章感觉还是在面试上有不少帮助的。

最后一点,牛客面经肯定要看的,看看各个大厂(可以直接搜这个部门)常见面试问题,看看自己能不能回答上来,不会的就去搜索学习一下,虽然这个很零散,但是经过前面两个步骤大部分热门面试题可能都涵盖了,所以再看看面经就是一方面考察一下自己掌握情况,另一方面就是查漏补缺。

项目

以前听过很多人靠着刷题+八股文就能进大厂,但是最近我感觉各个大厂对项目的要求明显高了,会详细问项目中的各种实现,也会给各种场景,所以要好好准备一些项目,最好是自己参与的。

项目最好什么类型呢?不要商城系统、秒杀系统、图书管理系统这些,最好就是能贴合以下两个方面:

  1. 能够真实落地小部分范围使用的,在这个过程中肯定有一个发展的过程。
  2. 未落地但是有发展前景的,跟当今潮流关系比较大的方向比如教育之类(可以多吹)。

项目的话一般准备2-3个,我个人准备两个,但是两个项目最好类别有一定区分度,最好不是课设、毕设这种必须要求的项目而是自己更主动创造出来的(可以说是参赛项目、落地使用项目、开源项目等等),并且项目中基本覆盖主流技术栈,这样面试官可以通过项目问一些问题你可能更熟悉,回答的也更好。

项目的话最好是自己的,如果自己没有项目也没有精力写项目可以找,但是不是自己的话一定保证吃透,可以使学长、学弟的,可以跟他们交流一下,吃不透面试官一问开发中具体可能出现问题如果露馅那可能评价不太好。

其他

除了上面提到的,简历啦这些可能也很重要,简历主要是包含基本信息、比赛荣誉、项目经历、实习经历(部分无)、个人评价这几个部分,最好各个部分充实,排版简洁(不过各大官网会有他们自己简历系统)。与面试官交流要口齿清楚,与人良好沟通也是实习工作必备条件,面试途中要谦虚乐观,这些不用多说了。

各个方面趁早准备,很多东西身不由己,计划早一点总没坏处。

最后

这其实是我收获的第一个大厂offer,虽然是实习的,考研狗一直在校读书到了研一读了五年书没实习过确实是有些遗憾,给hr交流时候喊她姐她让我别喊姐,我翻了朋友圈才发现她也是hr实习生hhh难怪。

但是这个offer我还是拒了,本来打算这个暑假大厂实习一波,顺便看看论文,然后秋天可能回南京本部搞搞论文。

但hhh研究生其实就是打工人,干活。暑期可能外派28所和大西北参加无人车项目,不过这无人车项目是c语言的,跟就业无关。我们学校并且很多学校的研究生可能都这样:研一上课、看论文、有的干干活,研二要写论文、干活,到了找工作的时候发现自己好像什么都不太会,从0开始学,然后最后只能去华为、国企这些更吃学历不太吃技术的地方。

image-20210705175538596

image-20210705175708530

虽然每个人都有解不开的枷锁,但是有时候也只能认了,也只能夹缝中寻求求生的方法。不过我还好点,在江阴呆了一年很自在很轻松,比起其他被压迫同学来说还是很幸运的。

最后欢迎有需要的和我交流,如果有需要看简历、交流的欢迎加我微信(bigsai66)交流(备注csdn)哇。

面试八股文和刷题笔记我在这篇 csdn的文章中也写过,可以根据需求取一下:师兄刷题笔记、算法小抄、面试突击版必备资源,帮你走上人生巅峰

后面可能要去大西北肝文了,hhh兄弟们三连支持一下!

关于作者:bigsai,在读研一,手握腾讯、字节实习offer,蓝桥杯国一选手,专注于数据结构与算法、Java领域的知识分享,喜欢用图将复杂内容简单化,欢迎关注同名公众号【bigsai】,坚持输出干货,如果有学习、实习、考研、选择等问题欢迎交流!

<think>好的,我现在需要处理用户的查询,用户想查找关于嵌入式系统的面试经验和常见问题。首先,我要分析用户的需求。他们可能在准备嵌入式相关的面试,需要了解常见的面试问题以及如何回答,同时可能也想知道一些面试经验。 接下来,我需要查看提供的引用资料。引用1提到了车路协同V2X和嵌入式开发的面试准备,引用2是深圳嵌入式软件岗的经,引用3关于STM32的培训课程,引用4提到了const的面试问题,引用5关于微处理器的定义。这些引用中,引用2和4最相关,因为它们直接涉及面试问题和经验。 然后,用户的需求可能包括几个方:常见问题、解答技巧、项目经验、技术点准备。我需要将这些内容组织起来,确保结构清晰。根据引用2,面试中常问基础知识和项目细节,而引用4中的const问题是一个典型例子,说明面试官会深入考察基础知识。 用户可能还希望得到具体的例子,比如代码或问题解答,所以需要包含像const、volatile这样的关键字解释,以及RTOS、调试经验等。此外,项目经验部分需要引导用户准备项目描述,突出难点和解决方案,引用3中的课程可能对项目准备有帮助。 还要考虑用户可能的深层需求,比如如何展示实际操作能力,如何应对技术难题,所以需要包含调试技巧、协议栈问题等。同时,引用5提到的微处理器定义可能用于基础知识部分。 最后,生成相关问题时要覆盖用户可能关心的其他方,比如职业规划、公司业务了解、薪资谈判等,这样能全帮助用户准备面试。确保回答符合系统指令,使用正确的中文和LaTeX格式,引用标识自然添加。</think>### 嵌入式系统面试经验与常见问题解答 #### 一、基础技术问题 1. **C语言核心知识点** - **const与volatile的区别** - `const`表示“只读”,用于定义常量或保护指针指向的数据不被修改,例如: ```c const int *p; // 指针指向的内容不可修改 int* const p; // 指针本身不可修改 ``` - `volatile`告知编译器变量可能被外部因素修改(如硬件寄存器),需直接访问内存而非优化缓存[^4]。 - **内存对齐与大小端** - 内存对齐通过`#pragma pack(n)`控制,用于优化访问速度。 - 大小端问题需在跨平台通信时处理,例如: ```c uint32_t swap_endian(uint32_t data) { return (data >> 24) | ((data >> 8) & 0xFF00) | ((data << 8) & 0xFF0000) | (data << 24); } ``` 2. **嵌入式硬件基础** - **微处理器与微控制器区别** 微处理器(如x86)侧重通用计算,需外接外设;微控制器(如STM32)集成CPU、内存、外设,适合嵌入式系统[^5]。 - **中断处理流程** 包括中断触发、现场保存、ISR执行、中断返回,需注意**可重入性**和**优先级配置**。 #### 二、项目经验与实战能力 1. **项目描述框架** - **核心功能**:例如:“基于STM32U5的智能手表项目,实现心率监测与蓝牙通信”[^3]。 - **技术难点**:如低功耗优化(使用HAL库的休眠模式)、实时性保障(RTOS任务调度)。 - **调试方法**:逻辑分析仪抓取SPI时序、内存泄漏排查(通过`free()`前后对比)。 2. **RTOS相关问题** - **任务通信方式**:消息队列、信号量、邮箱。 - **优先级反转解决方案**:优先级继承(如FreeRTOS的互斥锁)。 #### 三、进阶问题与解答技巧 1. **协议栈与驱动开发** - **CAN总线配置**:波特率计算($T_q = \frac{1}{BRP \times f_{osc}}$),同步段占比调整。 - **TCP/IP协议栈移植**:需适配LwIP的`netif`结构体与PHY驱动。 2. **代码优化实例** - **空间优化**:使用位域(`struct { uint8_t flag:1; }`)替代布尔数组。 - **时间优化**:查表法替代浮点运算(如正弦函数预计算)。 ---
评论 93
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员bigsai

喝杯咖啡压压惊!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值