秋招面经

本文最后更新于:2024年12月22日 凌晨

记录一下整个秋招投递历程

招聘情况

❌科大讯飞 飞星计划 AI研究 深度学习框架和平台方向

技术一面 0708 40min

虚函数,静态多态和动态多态,内存分页机制,LRU

怎么排查内存泄漏

快排复杂度,为什么最坏是n^2

一条绳子切m段,怎么切使得每段长度之积最大(动态规划)

项目创新点,autoTVM算法

表达的太垃圾了。。。表述要清晰

有点kpi,最后“如果没什么问题我们就结束了”。。。反问环节也没有

0718通知一面过。。。约0725晚上八点二面

技术二面 0725 40min

全是大模型优化之类,岗位明显不太符合,25分钟提前结束,寄

面评:综合评估下来,大模型的了解不足,推理优化知识较为不清晰。

❌科大讯飞 飞凡计划 研发

笔试 0803

技术一面 0809

问到java和golang,不是很匹配

智能指针 静态/动态多态 内存泄漏的预防 操作系统锁 golang的协程与C++线程区别 无锁编程 malloc/new/free/delete

继承/构造/析构 基类指针指向子类对象 空类/结构体的大小 带虚函数的类大小 带const的类大小

❌OPPO 底层软件

技术一面 0821

主要问项目,但不很涉及细节,可能一面在于考察简历是否真实

进程调度中的时间片轮转算法,如何加入优先级,怎么保证进程不会饿死

虚拟内存怎么映射到物理内存,为什么需要虚拟内存,怎么实现内存分页,内存分页的意义,是怎么提高访问效率的

多线程怎么实现数据共享

面试官在平台与内核开发部,问的问题很快,20分钟就结束,但是回答我的问题也还比较仔细,不确定是否KPI

综合面 0901

他吗牛客上别人都开奖快一个月了,不会又是kpi面吧

ok,被狠狠kpi了,面试官也不耐烦。15分钟面完光速被挂,以后约面一定不能拖,hc都没了还面什么

❌寒武纪 高性能算法

笔试 0826

BFS/DFS 动态规划

技术一面 0910

偏聊天,讲讲项目,后面一道让设计一个FP28精度的数据结构,一道动态规划

技术二面 0923

牛客可以识别面试网页是否在最前端,慌了,看面经被逮到直接慌不择路,寄

中兴 领军计划 算法(智算)-> 软开

技术一面 0903

纯聊天半小时,技术方向,刷题情况,工作中的困难以及如何解决,比较随意

问到base说主要长沙,问流程说这就是技术面,后面还有综合面

0909感谢信,看来自己表现不太行

技术二面 0913 流程转软开正式批

噢牛皮,领军被KPI了接着流程面软开

base也换了,长沙/深圳

常规综合面问题,为什么选择中兴,预计薪资,职业规划,加班看法,出差看法,是得整理一下了

终面 1016

聊家庭情况 base选择 说武汉没hc了只有深圳,要了35+

华为 AI软件开发 终端软件部

笔试 0828

“主要考察字符串,差分,二分法,bfs/dfs,贪心。不考动态规划”

复活赛 1016

A了两道 应该过了

一面 1031 拒

武研所无hc,只有上海青浦的还在拉我,方向不是很符合,况且大城市华子也不算很有吸引力,拒

✅经纬恒润 C++

技术一面 0906

聊了二十分钟,讲讲项目互相介绍,体验很好

技术二面 0919

要求准备15minPPT

技术三面 0929

原先部门不招人,调岗之后重新讲一遍ppt,难绷

hr面 1009

电话询问base,薪资等等,面经上说这家公司很好A于是直接说了个30+,流程审批大概1-2周

邮件oc 1015

还真给到了30+,总包32,工资结构无绩效 + 五险一金拉满,base经开,组内大概20人,除了是小厂各方面都不错了

✅招行 后端

技术一面 0905

八股基础,会问到数据库,代码题简单写一个冒泡排序

线下二面+hr面 0911

基础+一些场景题目,如何为淘宝订单设计一个独一无二的订单号,如果和同事意见不一致怎么解决

邮件oc 1018

等了一个多月。。可能是前面释放hc轮到我了。总包30,只能说一般,可能比较稳定?

✅TP联洲 嵌入式

技术一面 0912

忘记写了 常规

技术二面 0925

常规 投屏写个排序 被夸专业还行

三面 1014 线下

又迟到了。。基础八股,面完心理测评,等一个座谈会

座谈会 1018 线下

16薪,公积金单边5%,base南山区大楼+班车,公司目前发展状况还行,看能开到多少吧

邮件OC 1023

估计给到sp4到sp5了,总包接近50,这下真得去了

金山办公 人才计划-客户端

技术一面 0925

面试官迟到十分钟,然后是至今为止最漫长最细的八股拷打,预计45分钟结束结果面了70分钟
多态的意义、编译器在构造类的对象时会做什么,运算符重载的意义,静态成员的意义,泛型编程,C++的特色语法,lambda表达式怎么存储,C++多线程怎么设计,async,多线程的意义、困难点,怎么减少线程竞争,死锁如何避免,多线程和多进程的意义
关系型数据库和普通表的区别,怎么设计关系型数据库,数据库怎么保证完整性

流程转普通秋招 qnmd拒

奕行智能 编译器

智联猎头推荐的,一看名字还怪有缘就面面吧

技术一面 0830

一面和笔试一起俩小时,小公司流程比较随意,前面拷打半个小时项目,主要问燧原加速卡自动调优系统,有点偷师嫌疑。后面直接发了三个leetcode,2mid1hard要求做两个以上,最难绷的是由于开启的录屏和摄像头,腾讯会议被强行缩减时长到一小时,中途到一小时后强行退出会议,再上线也就是继续做,这不直接百度天理难容,怕后面露馅还是只做了两个mid

问base主要在杭州,薪资也就20

技术二面 0905 拒

✅联想 linux

技术一面 0910

开场直接问linux不bb,问得比较深

linux进程管理和内存管理,是怎么管理物理内存到虚拟内存的,伙伴算法 slab分配器,伙伴算法为什么分内存类型,伙伴算法和slab会不会导致缺页中断,linux进程调度的时机。。

有点知识盲区,寄

二面 1101

幽默,一面完隔了特么快两个月给我约二面^^

一点点操作系统的皮毛

三面 1107

下午的单人面试临时取消,完了安排晚上,一看除了我还有一哥们,估计二选一

ok,hr说已经过了,喊部门几个大佬过来交流一下,聊了一个小时,问一些场景题,你觉得平板上的安卓系统在调度上相比linux的cfs调度有什么可以优化的地方之类

电话OC 1112

总包25左右 饭补40/d 房补800/m 六险一金 15-21天年假 12天带薪病假 5年后1w5旅游补贴 等等

每年一个多月的带薪假,在武汉真的舒服,可惜年终太低了,固定全年10%也就一个多月

✅SHEIN 后台

技术一面 0912

常规

技术二面 0914

十五分钟简单聊天,主管说主要面向N卡做一些AI平台的优化,问我对国产卡的前景的看法之类,表示比较合适然后结束,后面还有总经理面

三面 1004

hr假期晚上10点约面。。。简单聊了下项目,base,最近学的东西,对寒武纪、摩尔线程的看法,胡言乱语,但体验还不错

hr面 1011

常规问题 性格优缺点 加班看法

电话意向 1120

各种待遇和TP差不多,hr费劲巴拉解释我们是自愿242绝不强迫,说开不到很高固定在42左右

感谢信 1128

脑残吧,电话里问我想要多少,我说40以上会多多考虑shein,现在又嫌我要多了直接感谢信?

❌联影医疗 后端

技术一面 0913

常规,说主要面向前后端,后续会往全栈发展,可能不太合适

❌开立医疗 C++

技术一面 0914

挺敷衍的,20分钟,基础问题,看得出来面试官没什么耐心

❌长存 软开

技术一面 0918

女面试官,人好说话,比较在意我去迟了。。几点去还不是要排队吗。。

linux inode是65535,inode溢出可能的原因

0923感谢信 牛批

✅海康威视 软开

技术一面 0926

明显对嵌入式更感兴趣,但是还比较好说话,手撕一道easy,不知道有无后续

综合二面 1017 线下

15分钟简单聊天,武汉要了30

电话OC 1114

15*15,加上一个月一千多的福利之类,听到15k就不想聊了,体面厂连不想要你都不会直说,他太温柔了

秒拒

平头哥 芯片软件工程师

技术一面 0929

常规,忘了,手撕是一个基础矩阵相乘

技术二面 1011

沈正海,人很好,项目问很细,答得不好

黑芝麻 嵌入式

技术一面 1012

面试官贼坦诚,50分钟有45分钟都是他在说,包括各种经验分享,公司加班情况,工作内容。。。总结小厂,人不多,加班强度高,需要驻场,让我快跑的意思

技术二面 1025 拒

✅烽火通信 软开

一面 0930

20分钟,一点点八股,面试官像赶时间一样,判断你是个人就过了?

二面 1010

15分钟聊天,base意向,有无其他offer,会不会选烽火,还是没看出来考察了个什么

邮件oc 1016

总包20+,月薪12+3,不知道怎么算的,能开出这个价也挺幽默

Others

小米:投递武汉岗,隔了三个月给一面,拒

东风:hr给我转到新能源电池部门,半点不挂钩,面试体验差

迈瑞:投递武汉岗,意向武汉线下面,约到南京线下一面,反馈无回音,拒

途虎:武汉只有测开,一面拒

新凯来:hr爱搭不理,面的极晚,一面拒

jd:笔试全A感谢信

dji:笔试的时候在打德州,挂

去哪儿:调到测开还只有北京,拒

BYD:不知道为啥,投的很早但捞的部门不是管培就是测开,拒

中科创达:笔试全A感谢信

字节:被上海的深度学习部门捞,拒

快手:只有北京,面试拒

腾讯云智:网上说开的贼jb低,我是真没想期望薪资填25w能被简历挂

腾讯:测评完无消息

简历介绍

HR面准备

为什么选择XXX公司

职位方向选择:为什么投C++/linux

我之前的实习经历中有过一些算法设计相关的研究,但主要工作还是集中在工程实现上。而且在实习的过程中,我发现尽管有时候设计和理论研究很关键,但真正决定项目质量的核心还是在工程化能力上,包括对C++/linux系统的底层理解、代码能力以及软件工程设计等等。实习期间这一方面的学习让我自己项目的实现有很大的帮助。所以我感觉相比深度学习里面一些比较玄学的研究,底层实现包括操作系统的工作原理、以及编程语言的深入学习等等反而更加吸引我,这也是我选择C++/linux岗位的主要原因。

职业规划

我觉得作为研发岗位来说,职业道路的第一步首先是精通公司需要的技术栈以及工作流程,这方面首先是需要学习,因为我们刚进去可能对组内某些特定领域的侧重点还不太了解,我觉得至少能将自己组内的工作任务和所需技能研究透,这是规划的第一步。
然后在实现自己的工程能力的目标之后,我希望自己可以开始参与公司项目的一些关键技术的设计,从小的开发需求逐步转向系统设计、架构研究等等。我希望自己在这一阶段能够对团队的包括代码质量、系统整体效率等等带来一个推动作用。
再往上就是,我希望自己可以从更加宏观的角度,比如产品的整体流程、各个系统模块之间的构思等等来思考问题,并且最终能够领导一个项目的落地工作。
总而言之,我首先是希望自己在技术上深耕,能够把一个系统设计完全研究透彻,然后在这个基础上开始由微观到宏观,逐渐过渡到一些设计和领导工作,让自己在工作上发挥越来越大的价值。这是我目前想到的对自己的职业规划。

性格优缺点

我认为我的优点是执行力还比较强,包括工程化思维,解决问题的能力这一块。因为之前在实习的过程中,很多场景都是leader会给一个大致的解决思路,然后交给我们自己去实现,这就给了我一个很大的试错空间,可以帮助我去学习怎么将问题拆解,实现,然后再后续一步一步调整完善。

缺点:过于关注细节

最成功/失败的经历

加班看法

我个人还是比较倾向于任务驱动的工作方式。任务导向,就得适应工作强度上的波动,所以我还蛮能接受在推进自己的任务期间的一些加班,但是我希望加班是有一个清晰的目标或者说是我知道我在推进一个我所认同的项目。而不是为了混时长而加班,总体上来说,还是工作效率第一,然后任务优先,为了完成任务而加班。

出差看法

我目前还没有女朋友:P,感觉自己在生活中还是偏向工作优先,所以平时的加班或者出差对我来说都是可以接受的。而且我觉得出差也是一个还不错的机会去了解一些不同的地方或者扩充自己的视野。当然说的都是一般情况下的出差,如果是长期比如三个月以上或者异地太远比如说出国之类的,可能就需要考虑的多一点

面试反问

目前在什么轮次,hc是否充足,后面是什么流程

公司对应届生的培养模式

我投递的岗位有没有直接对接的部门,如果有,组内目前主要负责什么方面的工作

组内一个典型的一周工作是怎样安排的

您在这里工作多久了,您觉得体验如何

常见八股

const:常量修饰符,表示变量的值无法被修改
修饰指针:指针常量——指向的地址中的值无法被改变;常量指针——指向的地址无法改变
修饰成员函数:不能修改类中未被mutable修饰的成员变量
修饰对象:表示该对象的成员无法被修改,且只能调用const修饰的成员函数

static:静态修饰符,
修饰局部变量:表示该变量初始化后的生命周期从函数调用变成程序的整个生命周期,后续每次调用都会保留之前的值
修饰全局变量/函数:将他的作用范围限制在定义它的文件内,不能被其他文件访问
修饰成员变量/函数:表示该变量/函数属于这个类而不是某个具体的对象,所有该类的对象共享这个变量/函数。静态成员变量在类外初始化,静态成员函数只能访问静态成员变量

内存分区:
代码区:程序的机器指令
数据区(全局区):字符串常量、全局常量、全局变量、静态变量,包括data段(已初始化)和bss段(未初始化)
堆区:手动申请和释放的空间,使用malloc/free/new/delete来手动管理的区域
栈区:编译器自动分配和释放的空间,存储一些局部变量、函数参数、返回地址等等

malloc/free:C的标准库,分配指定大小字节数,返回指向该块的指针。只分配和释放内存,不会调用构造或析构
new/delete:C++的运算符,为某个对象分配内存,返回该对象的指针,会调用构造和析构函数

内存泄漏:动态分配的堆内存在使用完毕后没有得到适当的回收和释放,最主要的原因就是malloc之后没有free,new之后没有delete
避免:使用智能指针、内存检测工具、记录日志等等

智能指针:用于管理动态分配的内存
unique:独占指针,无法复制,只能移动;同一时间只有一个独占指针拥有对象的所有权,超出作用域时自动释放内存
shared:共享指针,内部使用引用计数,当最后一个共享指针被销毁时,指向的那块内存才被回收
weak:弱指针,用来解决共享指针可能导致的循环引用问题,弱指针不会增加共享指针的引用计数,可以在不影响指向对象的情况下安全的观察对象,但也不能直接访问,只用使用lock方法获取对应的共享指针后才能访问

i++ ++i的性能差异:一般来说++i更高效,因为不需要生成一个临时值来保存自增前的值

左值引用:常规引用,用于引用一个可以被修改的对象
右值引用:在移动构造时,引用一个临时对象,主要用于移动语义,避免不必要的复制

静态多态:编译时的多态,通过函数重载或运算符重载,在编译时就确定具体调用的函数或运算运算符
动态多态:运行时多态,主要通过继承和虚函数实现,子类重写基类中的虚函数后,使用基类指针或引用来调用虚函数时,会在运行时确定调用的函数

C++ 虚函数
编译器为每一个含有虚函数的类生成一个虚函数表,其中存储该类的虚函数的地址。每个对象会包含一个指向该类的虚函数表的指针,对象初始化时,构造函数会初始化这个vptr,使其指向所属类的虚函数表

C++ 常见stl及其底层
vector:动态数组,内部有一个指向数据的指针,当容量不足时,会为指针分配一个更大的数组,并将旧数据拷贝到新数组中
stack:内部由deque或vector实现,
queue:
map:有序的KV对,由红黑树实现,增删改查都是logn级别
unordered_map:无序KV对,由哈希表实现,平均是O1级别,但出现哈希冲突时,最坏可能达到On

C++ 多线程 python多线程

空类大小:1字节,类的大小通常是所有非静态成员变量的大小之和
带虚函数的类大小:4字节,存储指向虚函数表的指针
/结构体 const类大小

常见排序算法

C++11 新特性
自动类型推断:auto
智能指针:
移动语义和右值引用:
lambda表达式:
标准线程库:
nullptr
静态断言:


秋招面经
http://example.com/2024/07/08/秋招面经/
作者
Zhang Yix
发布于
2024年7月8日
更新于
2024年12月22日
许可协议