双非本科拿下oppo sp!这位粉丝太强了!
Posted 嵌入式与Linux那些事
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了双非本科拿下oppo sp!这位粉丝太强了!相关的知识,希望对你有一定的参考价值。
哈喽,大家好,我是仲一。今天分享的是一位双非本科生拿下oppo sp的秋招经验。当时,这位粉丝咨询我offer选择的时候,看到年薪31W这个数字,我以为他是研究生。后来,再三确认了,他确实是本科生。
本科生能拿到这个薪资,真的已经超越了很多很多人。和这位粉丝交流下来,给我最直观的感受是,他很有礼貌,而且,很谦虚。能拿下oppo sp 和他平时的积累是分不开的。 我就不多说了,下面的内容就是这位粉丝的秋招经验分享。
个人背景
学校:本科双非
专业:自动化
实际项目经验:参赛经验不多,只参加过学校的一个创新创业比赛(团队),拿了个奖;然后自己也会利用课余时间在网上找些例程进行学习,主要是单片机方面;
学习经历
目前大四上学期,我将我的大学经历主要分为两个阶段:
第一阶段:
大一~大二:这一阶段由于刚从高中来到大学,自己没能很好的对大学生活以及学习进行规划,也由于这两年做家教的影响,自己没能把重心放在学习上,所以这两年在学习上表现的很平凡,也没参加过什么比赛。
第二阶段:
大三~现在:大三开始把精力放在了学习上,除了学习专业课外,我也会利用课余时间学一下单片机,如stm32,esp8266等,但其实都是跟着教程了解一下,也并没有全部都学完,也是这一年由于巧合的机会我同学把我介绍给一个缺乏stm32知识的团队,然后我跟着团队参加了我的第一次竞赛,最后也拿到了校赛级的一个奖项。然后下学期在考研与找工作之间经过考虑最后选择了后者,4月份决定找工作,当时因为对找工作没有方向,然后看到年级群里面有阿里的师兄在宣传暑期实习生的招聘信息,所以就懵懵懂懂的报了C++岗位,然后在接下来的一个多月时间内断断续续的学习C++以及数据结构,结合视频将这些知识大概过了一遍,但是最后也没能过笔试(因为学的不扎实,也没去某网站上刷题,因为当时并不知道有这些网站),最后去了一个和学校有合作的小公司实习
实习经历
实习公司:一家做车载/终端产品的小公司
实习岗位:嵌入式驱动开发工程师助理
实习时长:暑期一个月
在7月份在一家小公司开启了我为期一个月的实习,在整个实习过程中,其实导师并没有给我们多少的帮助,最开始的时候给我们布置了一个关于stm8单片机的综合性任务,我用了半个月左右就完成,其他实习生晚一点,完成后导师让我们改进代码,后来也没怎么给任务或者安排给我们做了。然后在接下来的时间段了,我都在学习数据结构并且去leetcode刷数据结构专题(虽然进度比较慢)。然后又看了Linux相关视频与资料重新温习了一下linux的基础命令和操作。中后期的时候导师找我谈过两次话,想让我继续留下来实习,但我没有接受邀请。不过这段实习经历也让我对自己产生了肯定以及对这个岗位有了初步的了解。
面试经历
1.面试情况
面试经历按照简历投递时间排序,由于忘记了具体的投递时间,所以有些只能写大概的时间,投递的岗位都是嵌入式/驱动软件开发工程师
公司名称 | 投递/笔试时间 | 笔试/面试情况 | offer |
---|---|---|---|
联发科(MTK)(第一次投) | 7月25日 | 笔试挂(没准备,裸考) | 无 |
视源股份(CVTE) | 8月中旬 | 通过终面 | 需体验实习通过后才给offer |
OPPO | 9月中旬 | 通过终面 | 拿到offer(应该是SP) |
TCL(C++嵌入式) | 9月初 | HR面挂(惨) | 无 |
海康威视 | 9月初 | 通过终面 | 拿到offer (SP) |
小米 | 9月下旬 | 笔试挂 | 无 |
中兴 | 9月下旬 | 通过终面 | 收到offer call(没签) |
华为 | 9月下旬 | 笔试挂 | 无 |
荣耀 | 9月下旬 | 一面挂 | 无 |
VIVO | 9月下旬 | 笔试挂 | 无 |
联发科(MTK) (第一次投) | 9月下旬 | 笔试情况未通知 | 无 |
TCL(华星光电) | 10月初 | 笔试通过直接跳过一面发二面通知 | 拒了面试 |
除此之外,我还投递过几家中小厂,但都是投着来找面试经验的,不完全统计在秋招中投递的公司数量在20家左右,大部分简历都通过了筛选,上面列表中的是自己心仪公司的笔试/面试情况。也很幸运在10月中旬陆陆续续收到了OPPO、海康威视、中兴、CVTE的offer,最终选择了OPPO。
2.面试问到的问题
以下面试问题都是自己面试完根据回忆想起来的,可能会有一些遗漏,因为自己太懒了,没有时间整理当时面试时候的回答情况,然后需要大家自己去查找相关问题的答案啦。在此也提醒大家以后面试可以录音或者录屏哦,不要被发现就行,这样更有利于自己面试后进行总结。
1)OPPO篇
一面面试题
-
自我介绍
-
++i与i++的区别?
-
Switch() { case} switch里面可以是什么类型的数据?可以是float吗?字符串呢?
-
指针的高效性和灵活性?如何体现?
-
你选修的这些课程的原因是什么?你是怎么学习的?
二面面试题
-
自我介绍
-
问项目情况:(问的是实习的项目)
a) 这个项目是团队的还是个人的?
b) 在这个项目中你遇到什么问题?怎么解决的?
c) 在这个项目的过程中最让你满意的是什么?
-
后面的忘了,哈哈
2) 视源股份(CVTE)篇
CVTE一面面试题
-
自我介绍
-
问项目:介绍项目(介绍的时候还可以再精炼)
(1) 项目里用到了什么技术,负责的是什么部分?
(2) 遇到什么问题?
- ++i和i++的区别?
答:i++:先赋值再++,效率低;
++i:先++,再赋值,效率比++i高
为什么++i比i++效率高?
i++:int temp=i; i=i+1; return temp;(i++需要开辟临时变量,效率低)
++i:i=i+1; return i; (++i不需要开辟临时变量,效率高)
-
Static关键字
(1) static+局部变量:
(2) static+全局变量:
(3) static+函数:
(4) static+类成员变量:
(5) static+类成员函数:
-
指针和引用的区别
-
拷贝构造函数里面为什么用的是引用?有什么作用?
-
Linux命令:cut(怎么把CVTE_STN中的_识别并且将CVTE STN分开?),Sed, AWK?
-
文件系统有哪些类型?
-
Bootloader
-
汇编语言:DDR
-
无论数据多少,复杂度最低,效率最高的排序算法是什么?
-
IIC最多能有多少个从机?
-
IIC软件中断和硬件中断的区别?
-
SPI协议原理
-
为什么说TCP是安全的连接方式?
-
程序编译的四个部分:预处理->编译->汇编->链接(各阶段分别生成的是什么文件类型.c/.0/.s?)
-
中断函数有什么特点?如果在中断函数里面弄个10ms延时会怎么样?
-
如果有一个递归函数,没有初始条件,它会一直执行吗?会怎么样?
-
进程间的通信方式,最常用的通信方式是什么?
-
如果一个进程堵塞了,你怎么让这个进程运行?
-
你是怎么理解同步和竞争的?异常?(同步、异步、竞争)
-
GPIO的模式?方式?(上升沿/下降沿/双边沿之类的)
-
会JAVA/Python吗?
-
代码题
3)TCL篇
一面:主要深挖项目,根据项目做假设,问你可以做什么改进,并且很多都已假设形式提问,并且根据项目用到的知识点进行深挖,所以需要对写在简历上的项目要很熟悉,没有做过的不要写,不要给自己挖坑。
4)海康威视篇
一面面试问题
-
配置pwm需要设置什么寄存器?
-
怎么用单片机测量pwm波的周期和占空比?(描述思路,用代码编程的方法)
-
怎么将32位的int型数如int a=12345678转化为字符型string输出?(printf(“%s”))
-
Main函数里面分几个区?(数据区,代码区,bass区,栈区,堆区),string a=”hello world”存储在哪个区?加上static后在哪个区?
-
截至目前你坚持的最长的事是什么?学习上或则生活上。
-
成绩怎么样?偏科吗?
-
面试官说我应变能力不错,面试不错,其他问题忘了,哈哈。
5)中兴篇
一面面试题
-
C和C++有什么区别?各自有什么特点?
-
链表和栈有什么区别?
-
对中断有了解吗?中断发生时,CPU是如何处理中断的,如果程序在执行中断之后终中断返回异常,你该怎么判断呢?怎么处理?
-
232和485协议有什么区别?
-
使用的晶振是多少?你是怎么判断计数是一定精准的?
-
平衡二叉树是什么?
-
有用到浮点数吗?浮点数在内存中是如何存储的?
6)荣耀篇
一面面试题
主要问项目以及实习情况,抓着问,很难受。没有问基础问题(八股文)。
3. 关于HR面
一般来说,HR面问的问题套路基本一样,但是不要以为到了HR面就可以放松警惕,就算你前面的技术面表现得多么好,如果HR面没准备好的话那也会功亏一篑,经过多个HR面,我发现HR大部分都会问一下几个问题:
-
你为什么投递我们公司/这个岗位,你对我们公司有了解吗?
-
你的家庭情况,学习情况
-
你有什么爱好吗?有什么让你坚持了很久的事吗?
-
你有什么优缺点吗?(说缺点的时候也不要说很明显的缺点,如很懒、没责任心啥的。可以说过于追求完美、不够果断等,因为这些对公司没啥影响)
-
你对加班怎么看?
-
你的期待薪资/范围是多少?
-
还有其他的一些常见问题可以上牛客或者网上看一下其他面经哈哈
个人总结
在投递时间上
越早投递越好,大厂提前批一般在6、7月份就开始了,要抓好秋招提前批这个时间点,因为这个时候大厂的hc(岗位)是最多的,而且竞争可能没那么激烈,最重要的是有一些大厂提前批没有笔试,这对于那些没怎么刷代码提的同学来说是很有利的。
在公司投递选择上
不要全部都投大公司或者自己的心仪公司,也要适当的投递一些中小企业或者自己不那么喜欢的公司,如果你没有什么面试经验的话建议你先面小公司/不是自己心仪的公司先,这样可以为自己增加面试经验,为面试大厂做准备;同时,投递的岗位应该是你喜欢的,不要广撒渔网海投,这样不仅会浪费自己的经历而且还会让自己对面试产生厌倦,投递公司数量适可而止,并且投递的岗位最好专一一点。
在面试准备上
在面了这么多面试中,首先,我发现技术面中面试官100%会问项目,所以一定要对你的项目要熟悉;其次,面试官会问你的实习情况,如做了什么,有什么收获(如果有相关经验的话);然后是一些基础知识,如C/C++语言基础、数据结构、Linux基本指令、算法/手撕代码(Leetcode简单/中等题,不过我遇到的不多)。
在面试前,建议上牛客网上面查找相关面经,我在每次面试之前都会看一下对应的面经,然后根据面经预测面试官可能会问的问题,然后记录并且把答案搜索出来,从面试结果来看,有些问题确实被我预测到了,因为面试官问的问题基本都是那几个范围。
面试过程中,一定要注意一下自己的着装以及形象以及周围的环境,我在每次面试时都会洗一下脸以及穿着得体。然后在面试中最好保持自信,就算问到不会的问题也要思考一下然后讲出自己的想法,直接说不会是大忌。对了,还有就是一定要礼貌,在最后面试官问你还有没有问题问他/她的时候,要表现出你好学的态度,一般问2~3问题就好。
在心态上
还是要保持积极的心态吧,一般来说整个笔试/面试流程下来可能需要1个月甚至更长的时间,所以也不要干等待,在这段空窗期可以投递以及面试其他公司,自己协调好时间即可。
本人在秋招的过程中心态还是受到了很大的影响的,经常会失眠到凌晨3~4点,因为自己本来就睡眠不好,加上秋招一直没受到好结果,同时又断断续续听到别的同学拿到了多少多少W的offer,心理压力就更大了,因此也经常因为这是而失眠,那段时间真的很煎熬,没睡过几天好觉,但是很庆幸自己熬了过来,在10月份陆陆续续收到了几个大厂的offer,其中好几个都是我之前面试完之后以为挂了而且难受了很久的,现在想起来真的没必要。
最后寄语及感谢
不要和别人比,要和自己比!要认真对待每一次面试,即使这个面试的公司不是你的心仪公司,因为你的每次面试表现都会影响着你最后的薪资评级,所以还是要好好准备每一次面试。早得到的不一定是好的,晚得到的不一定是不好的!祝大家早日拿到自己满意的offer!!!
对啦!最后还是要感谢一下在牛客网上面找到的大佬的笔试面试总结《嵌入式软件开发笔试面试指南》,里面涵盖有简历建议,笔试面试题等相关内容,真的很全面。公众号是《嵌入式与Linux那些事》,里面干货挺多的,这次的面试我也是以这个为路线的,大家可以参考一下啦!!!
都说双非本科进不了大厂,阿里技术四面+交叉面+HR面,拿下P7 offer
前言
前两天,我收到了阿里巴巴的实习offer,从学长内推开始面试到拿到最后offer经历了4面技术、一面交叉面和一面HR面。经过了漫长的等待和几次几乎折磨的面试之后,终于拿到了实习offer。
自我介绍
本人来自西南某双非本科学校,该校学的专业是物联网工程。我的专业与Java开发关系不大,学校也只教过一些简单的编程课,其余的编程相关知识都是自己在课余时间在实验室学习和自学的。技术不是大牛,项目做得多但是大部分都是自己练手的小项目或者一些有意思的小项目,没有接触过真正意义上的大项目。平时没事的时候喜欢逛一逛微信公众号、简书、掘金等平台,看一看技术类文章,自己也偶尔写过一些文章。在校期间在实验室的时间偏多,喜欢写代码的过程和攻克难题的过程。
面试准备
首先准备校招之前一定是要好好准备的,长期的就是自己的编程基本功以及对各个方面知识点的了解程度,短期的就是突破一下自己不会的知识点。
我是投简历之前一个半月就开始做准备了,首先就是刷leetcode,算法这一关还是比较重要,而且阿里还有笔试成绩,面试的时候也会问到一些不是太难的笔试题;
然后就是多找几篇面经,看看学长学姐当初面试的时候面试官都问了哪些问题,如果遇到会的,自己尝试回答一遍,如果遇到不会的,那就去学习一下;
不过网上找的面经可能因为大家的学习过程不一样,找到类似的面经的概率个人感觉不太大,我恰巧在H大的知识星球里面,就找H大做了一下简历指导(不是在打广告,是真心感谢H大);
最后找到了一个很完整的Java面试题及答案的文档用来做复习资料。(Java面试宝典及核心知识宝典复习)
面试过程
第一次技术面(60min)
- 说一说你使用的是什么样的线程池,自定义线程池的几个参数是什么
- 说一说线程池的执行流程
- 你的项目中定义的核心线程数、最大线程数和队列大小是如何定义的?为什么这样定义?(这道题根绝我导师给我说是一个加分项)
- 在项目中如何防止超卖现象
- 你的下订单的sql语句如何编写的?(考察MySQL的乐观锁)
- 如果有用户反馈说整个系统的反馈比较慢,你是如何排查和如何解决问题的?
- 影响系统响应慢的原因有哪些?
- 算法题:给定一个无序数组和一个目标值,找出数组中两个数之和等于目标值的所有组合,并指出其时间复杂度。(很简单的一个算法题,leetcode easy难度)
- 了解过JVM内存模型么?说说哪些是线程独享、哪些是线程共享的?
- 详细说一下Java堆的分区,他们的比例,以及如果把比例调大以后会有什么样的后果?
- 说一下JVM的GC算法,以及为什么“标记-整理”法更好一些,他能解决什么样的问题?
- 了解过Java类加载机制么?一共有哪几种类加载器?
- 如果你想查看线上正在运行的服务的GC日志,你需要输入什么指令?
- 了解过HashMap么,说一下HashMap的原理。
- 如果两个对象hashCode相同,则一定是相同对象么,如果是两个相等的对象,那么他们的hashCode相同么?
- 如何解决hash冲突?
- HashMap是线程安全的么,如何把HashMap变成线程安全的类?
- 说一说MySQL数据库有哪些数据库引擎?
- InnoDB的索引的数据结构是什么,说一说他的原理
- 数据库事务等级以及他们解决了什么问题,请举例说明一下
- MySQL默认的事务等级是什么?
- MySQL如何开启慢查询?
- 说一下Spring主要包含哪些模块?
- 说一下你对Spring的IOC容器的理解以及启动流程
- 有了解过RPC框架或分布式的东西么?(这个后来问面试官,就是考察对新技术的了解以及对互联网发展的一个关注度)
- 说一下你读过的有关Java的书籍
第二次技术面(30min)
- 介绍一下你做的项目中你觉得最好的那个;说一下你这个项目中的技术难点和挑战。
- 如何解决商城项目中出现的超卖、少卖问题?
- 说一下什么是幂等性
- Redis如何保证高可用的
- Redis的哨兵模式知道吗?
- 你用Redis觉得有什么缺点吗?
- 你是如何做压力测试的?压力测试的数据是什么?
- 线城池有哪些参数?
- 核心线程数和最大线程数有什么区别?
- 常见的拒绝策略有哪些?
- 介绍一下SpringBoot的特性
- 说一下什么是单例模式
- 什么是饿汉模式、懒汉模式
- 使用懒汉模式的注意事项以及如何解决
- 说一下volatile关键字的作用和原理
- 说一下自旋锁和一些常见的自旋锁的实现
- 说一下数据库的左外连接
- 数据库索引优化
- 数据库索引的数据结构
第三次技术面(25min)
- 如何解决商城项目中出现的超卖、少卖问题?
- 在开发项目中,遇到了哪些问题?
- Redis与数据库同步时候出现问题是如何解决的
- 说一下Java当中线程有哪些状态
- 线程的阻塞和等待有什么区别
- 介绍一些Java的锁机制
- 你了解过哪些锁的类型
- 为什么wait、notify这个方法会在Object这个类下面
- 分布式、RPC框架有了解过吗
- Redis的线程模型是什么(考察NIO)
- Redis实现的消息队列是如何保证消息不丢
- 介绍一下堆排序是如何实现的
- 介绍一下TCP/IP协议是如何保证消息可靠传输的
- TCP/IP协议做了什么优化(拥塞控制和流量控制)
第四次技术面(15min)
- 说一下你投稿的文章写得是什么内容
- 介绍一下消息队列
- 超卖是如何解决的?
- 下单过程是如何设计的?
- 介绍一下雪花算法
- 你怎么理解分布式?
- 分布式之间怎么通信?
- 生产者、消费者模型是怎么工作的?
- Java里面创建线程的方式
- 代码场景:给一个字符串,统计每个大写字母出现的次数,按照次数排序,从小到大输出字母和其出现的次数
交叉面试(30min)
- 你在学校学习过程中,哪些可能成绩更好一些以及为什么这些课程成绩更好一些
- 你学习Java多长时间了
- 你是如何学习Java的?
- 你看过哪些开源框架源码?
- 你是怎么看开源框架源码的?
- 介绍一个你参与较多或者比较有难度的项目
- 你们团队开发项目的时候有没有大家一起解决的某些技术问题
- 你们做的这个项目有没有借鉴过其他已经成熟的项目
- 说一下你们项目的要求和指标大概是多少
- 你们项目中的线程池队列容量是如何确定的
- 项目中的某些解决方案是个人想出来的还是团队讨论的结果
- 如果再让你做一个商城系统,你会做哪些技术选型
- 项目中做过哪些安全方面的措施
- 你会如何设计一个淘宝会员系统?
- 你未来的发展方向是什么?
面试总结
每一次面试都感觉是煎熬,虽然之前看过很多阿里的面经,都说阿里面试官会抓住某一点一直问下去,直到问到你不会为止,但是当第一次亲身体会的时候,还是感觉很煎熬。
不过最终的结果还是好的,至少收到了心仪的offer,能在这个疫情期间,大环境不好的情况下找到实习工作。
对于整个的学习过程和面试过程,最大的感悟有四:
- 基础知识要扎实,尤其是Java和数据库的基础知识,如果基础知识不扎实,后面什么框架和实战不会有太好的结果
- 多看一些技术类的博客或者文章,但是要有自己的思考,因为很多技术类文章都是跟紧互联网发展的,多看一些能够更加了解互联网的发展方向;同时自己的思考也能让自己过滤掉某些文章中的较差的观点,做到取其精华去其糟粕
- 主动很重要,给我内推的学长是我主动认识的,我的导师是我主动认识的,学技术也是我主动学习的,这世上没有天上掉馅饼的好事,主动才会有故事
- 一个合适的导师真的很重要,我在遇到我的导师之前,学习方向很迷茫,对于很多东西都不知道如何入手,很多文章也没有解决我的问题;老师这时候就可以指明方向,让我的学习之路少了很多崎岖
分享个人面试刷题复习笔记
对这些面试笔记宝典感兴趣的小伙伴可以自取哦!
1、Java后端覆盖1000多道常问面试题及答案详解
上千道Java、Spring、JVM、集合、JVM、Mybatis、MySQL、DB、GC、Spring全家桶、Dubbo、数据结构、算法、Kafka、微服务等
这几份1000道面试宝典、Java核心知识、复盘面试宝典有感兴趣的工程师朋友们可以帮忙转发一下,关注后添加助理vx:yunduoa2019或扫描下图二维码,跟随助理指引自行获取
2、阿里P8大牛写出来的283页Java核心知识
3、面试宝典
面试复习宝典、面试前刷一遍对你帮助非凡!
2020年350道面试体系
这几份面试宝典、Java核心知识、复盘面试宝典有感兴趣的工程师朋友们可以帮忙转发一下,关注后添加助理vx:yunduoa2019或扫描下图二维码,跟随助理指引自行获取
以上是关于双非本科拿下oppo sp!这位粉丝太强了!的主要内容,如果未能解决你的问题,请参考以下文章
谁说双非本就一定无缘阿里!(四年crud经验已拿下P7)面经分享
面经分享:程序汪培训转Java粉丝拿下大数据和电商offer,分别13K和15K