提前批直投了两个:一个乐鑫、一个诺瓦科技,皆卒
乐鑫 乐鑫没有好记录的,7月16做的笔试(笔试挂),三道算法题(内心对算法是抗拒的),也是在此看到了算法的重要性,也是后续复习算法的动力来源。诺瓦科技(一面过,二面凉凉) 到现在为止,我依旧认为诺瓦科技是我面试公司中问的最全面的一家公司 1、笔试 笔试和其他公司笔试比较相同了,嵌入式选择题(C,C++,linux,嵌入式基础),可以在牛客网上刷一下,原题挺多,一道编程:链表,结构体相关的操作,两道问答题。 2、一面(52min) (1)自我介绍:我是xxx,就读于xxx,… (2)通信协议了解过吗(SPI,I2C,UART)?选一个你熟悉的说一下,我选的是I2C协议(必须要真的懂时序)。 (3)I2C协议你是用到哪里的,代码怎么实现的? (4)Linux下I2C驱动编程:I2C核心层、I2C总线层、I2C驱动层 (5)platform 与 设备树的区别 (6)linux 下怎么获取到设备树中硬件(板级)的信息 (7)TCP,UDP的不同之处,socket套接字编程了解吗,TCP服务器端的编程步骤,UDP和TCP socket编程哪里不同 (8)I/O复用,select、epoll,poll的区别 (9)linux字符设备驱动程序的设计流程,file_operations 中read write,应用程序怎么读取到字符设备中的数据; (10)系统调用的过程?platform 总线驱动的设计?mmap函数? (11)UART串口有时钟线吗,他是怎么保证数据发完之后对方知道你发完的,UART怎么保证数据的准确性; (12)多个进程访问同一个文件时,文件描述符是一样的吗? (13)uboot的启动流程了解吗;stage1 和 stage2 。uboot源码看过吗,其中的数组?(uboot代码必须理解) (14)添加过uboot中的命令吗?linux文件系统的格式. (15)多线程通信 (16)共享内存,进程间通信方式, 共享内存如果发生泄漏,怎么查看?ipcs -m? (17)创建的设备文件 /dev/下的,读取时文件描述符一样吗? (18)算法相关:反转链表,链表的头插和尾插法; (19)画过原理图吗,用什么软件画的,AD? 那在AD软件中在如果根据原理图上的器件快速选中PCB图上的器件 (20)了解Makefile吗,Makefile语法格式? (21)struct结构体的大小,字节对齐、数组 sizeof()大小; 3、二面(22min,凉凉) 全程聊项目和职业规划,扣项目细节部分物联安全开科技(技术面+HR面) (1)自我介绍 (2)问项目,还是那些项目,但是由于技术官对单片机了解不多,因此问的不够深入 (3)然后问用过linux吗 (4)TCP协议、UDP协议,TCP三次握手四次分手,TCP与UDP的区别 (5)利用UDP的优点,加强UDP的可靠性怎么改进 (6)I/O复用了解吗(poll、select、epoll区别以及用法) (7)然后面试官介绍公司做的东西:偏linux应用层编程,驱动层和内核层用的不多 (8)对应用层感兴趣吗,知道进程间通信吗,方法,共享内存了解吗 然后HR问的几个问题: (9)大学/研究生期间做的比较好的决定是什么?(加入工作室。。。。。。。。) (10)我看你写过博客,还挺多的,我也去看了一下,都是你自己写的吗? (11)什么时间可以实习?实验室规定,不可以,,,,,,,,
国光电器 1、一面(群面) (1)常规的自我介绍 (2)大学里面学的比较好的课程? (3)你所理解的设备驱动程序的设计流程是什么? (4)I2C协议介绍一下; 还有几个不是技术的问题,家庭情况,为什么想来广州,之类的 1、二面(技术面) (1)给定一个字符数组,求它的 sizeof 的大小,字节对齐之类的; (2)linux内核源码看过吗?linux内核启动流程,叙述一下; (3)uboot源码看过吗?uboot的加载引导过程; (4)linux内核移植做过吗,当时做的是哪一块的移植? (5)linux文件系统有哪些? (6)linux内核目录结构,linux查看内存的命令。 (7)自旋锁和互斥量的区别; (8)还有一些比较简单的C语言知识,冒泡排序之类的 (9)在linux内核里怎么分配动态内存(kmalloc,内核中怎么创建线程:kthread_create)
大华 1、一面 (1)自我介绍时候提到了linux下字符设备驱动程序的编写,然后面试官第一个问题就是字符设备驱动程序的编程流程,里面重要的 file_operations 结构; (2)进程间和线程间的通信方式; (3)TCP/UDP协议了解吗?介绍一下两者区别(然后就背起来了),linux下的TCP编程实现过吗?(然后就接着介绍socket编程); (4)平时开发用的是C还是C++呢?写的代码量有多少行?(这个我哪里记得,粗略说了一下) (5)大学时候学的比较好的课程是什么呢?数学好吗? (6)平时有看过什么专业的书籍没有?(有啊,巴拉巴拉巴拉…) (7)然后我这么问的差不多了,你那边还有什么问题吗? 得到面试官认可,面试官也很nice 1、二面 (1)自我介绍 (2)我看你简历里有学过自动控制原理,讲一下自控学的主要内容(我真是全部记得了,都还给老师了,就把还有点影响的PID控制讲了一下),然后面试官追着问:如果给你一个温度控制系统,怎么控制温度在变化不大呢,怎么降低超调量呢?还有动态响应什么的。然后还有其他大学和研究生课程的问题(内心:一度怀疑自己是不是投错简历了) (3)跟面试官说,我主要学的是C/C++,linux系统之类的,C语言终于开问了:数组链表的区别,数组链表插入的时间复杂度; (4)结构体和字符数组的sizeof; (4)uboot移植做过吗?介绍一下你做的吧 (5)多线程编程会吗?(了解的比较少) 本来以为凉凉,大概一周之后接到HR面谈薪资
中科曙光 技术面: (1)linux内核空间和用户空间的通信; (2)linux进程间通信方式:共享内存自己实现过吗; (3)串口协议懂吗,我说我了解,但是用的比较多的还是I2C协议,然后把I2C协议讲了一下,还有linux下I2C编程介绍了一下; (4)uboot的相关知识,uboot流程(stage1和stage2),uboot移植做了哪些测试,除了字符设备驱动程序,你还做过什么驱动程序:块设备,网卡设备 (5)然后问项目:mqtt协议介绍一下,你在项目中负责什么,你都做了什么工作,项目中的难点问题; (6)c语言中动态分配内存,怎么避免内存泄漏呢? (7)然后针对研究生期间的论文问了一些,介绍一下K-Means算法,你都是怎么进行算法改进的呢? (8)你有什么问题问我们吗? 后来在两天之后,收到HR面的消息,谈薪资待遇;
博观智能 笔试做完之后,三轮面试,(一轮技术面,两轮HR面吧,三天时间,效率很快),拿到offer,在济南,薪资待遇还可以,因为个人原因拒了 1、一面 (1)万年不变的自我介绍 (2)C语言中内存分配几种方式(局部、全局、静态、动态?) (3)栈和队列 (4)给定一个结构体,求 sizeof (考虑字节对齐); (5)大端小端通过程序判断(联合体,指针) (6)C++学过吗,智能指针的作用并且介绍一下; (7)STL了解过吗,vector容器和list容器的优缺点; (8)linux系统了解吗,介绍一下你知道的命令(把我能想到的全都说了),后来面试官问了一个网络命令,不记得了,尴尬 (9)uboot命令介绍一下 2、二面和三面都是HR面,基本都是容易回答的HR问题,还有就是谈薪资
天融信 1、一面(技术面) (1)自我介绍 (2)linux内核启动流程(start_kernel 函数里面的内容) (3)在linux系统中查找文件主要有什么命令(find,whereis,whichis,locate,grep等) (4)TCP/UDP协议会吗?两者区别,linux下的 tcp 编程实践过吗(简单的介绍了下socket 编程:创建socket,bind,listen等之类的),然后有问客户端连接服务器,三次握手发生在什么函数中。I/O 多路复ni用了解吗?(poll,epoll和select) (5)算法:怎么判断链表中有环,并且计算出中间环的个数(剑指offer原题):我按剑指offer上的思路说了一下:快慢指针,面试官说有没有时间复杂度更小的计算方法,思考了一下回答:还是两个指针,只要有指向同样的地址说明是有环的,然后面试官把这个思路也告诉了我一下,就是指向同样的地址空间。 (6)单向链表会吗,那写一个双向链表和循环链表的数据结构; (7)gdb用过吗,用过(真的只是用过,列举了一些gdb调试命令),然后面试官问:怎么调试多线程呢? (对不起,这个我真的不记得了) (8)你有什么问题问我?(工作内容。。。。) 2、二面(技术面) 二面全程围绕项目:mqtt 协议解释一下吧,你是怎么用 C 实现的,你在项目中有遇到过最大的困难是什么?怎么解决的? 我看你研究生期间做的是算法,那你解释一下这个K-Means是怎么实现文本聚类的呢?你的论文是基于什么项目呢?还有如果给你一堆协议,你怎么通过机器学习算法去识别出哪个是mqtt协议的数据报文呢? 给我的感觉就是天融信二面就是深挖项目,看你是不是真的懂你做的东西,所以呢,写在简历上的东西是一定要负责任的! 3、三面(HR) 聊工作地点,薪资情况
六方云科技 1、一面(技术面) (1)常规性自我介绍 (2)我看你项目做的嵌入式单片机的比较多,linux下的编程了解吗?了解 (3)linux 下TCP编程说一下吧(这个问题真的遇到好多次) (4)linux网关配置怎么操作呢(可以用命令,也可以在配置文件中写) (5)还问了linux下的其他命令,时间太久记不得了 (6)继续问第一个项目中 mqtt 协议(我发现只要问项目,第一个问的一定是这个问题:mqtt 协议) (6)C语言功底怎么样?答:还行(内心祈祷,别问算法),然后问了一下一道 struct 结构体(成员变量包含位域)的 sizeof 是多少,还好当时有复习到。 (7)我看你之前用过BP神经网络,现在有这样一个问题:你不是懂 mqtt 协议吗,现在有别的协议的数据包和 mqtt 协议包混在一起,你怎么用BP神经网络进行区分呢?还有在好多好多数据报文中,你怎么找到包含攻击类型的网络报文呢?可以用你懂的别的机器学习算法做。(然后我就按BP神经网络的原理去做分类了,开放性的题目,有合理的理由就行) (8)你有什么问题要问我的吗?(工作内容。。。) 2、二面(HR面) (1)为什么要来北京?(真的是北漂情怀驱使的我) (2)家庭情况 (3)大学/研究生期间最有意义的一件事,最后悔的一件事。 (4)自己的优缺点是什么
9月经历的事情很多,大概自己十一之前面试了这么几家公司,也做的其他公司的笔试,十一之前的一周很忙,基本上每天都有笔试、面试(当时真真正正的体会到原来笔试面试多了也会那么烦躁),当时自己也一直在思考还要不要去武汉,但是后来也算是不让自己后悔吧,算是给自己一个交代吧,毅然决然在10月6号,带着要坐一次南湖大道的538到终点站南湖大道茶山刘的愿望(但是在写这篇秋招记录博客之前,依旧还是没有去坐538,原来实现自己文艺的愿望还真是难啊)坐上了去武汉的飞机,来到了自己心心念念的英雄武汉
武汉— 在武汉的正式秋招,应该是8号或者9号正式开始的,全部是在武汉理工的校招
拓邦股份 1、一面(技术面,群面) 一共6个人,不同的岗位 (1)常规性的自我介绍 (2)linux内核启动流程知道吗(总是相似的问题) (3)linux下的字符设备驱动程序编程(申请设备号,注册,实现 file_operation 结构体(read,write,open,ioctl等)) (4)函数指针和指针函数 (5)c语言熟练吗?知道string库函数里的部分函数吗,字符串拼接函数,字符串查找函数,字符串拷贝函数之类的 (6)在C语言中,动态分配内存用的是malloc函数,释放内存用free,一般在使用时候释放完内存还应该做什么?(我回答的是把指针指向为空,为了防止出现野指针) (7)其他人有面试JAVA开发的,就记得两个问题:协程和线程池 2、二面(HR,群面) (1)家庭情况 (2)为什么要来深圳 (3)自己的优缺点 (4)大学期间做过比较满意的事情 (5)导师时怎么评价你的(优点和缺点) (6)手里的offer情况 还有一些常规性的HR问题,都比较容易回答,总体面试体验
深圳奋达科技(就一面技术面) 当时就随便去听了一下宣讲会,莫名其妙就去面试了,面的是软件开发,我还是想做驱动 (1)没有自我介绍 (2)你编程用的C多还是C++多呢,回答C。那用C语言实现一个把一个寄存器的bit3位置1,算是比较容易 (3)开始问项目,气象检测板,mqtt 协议,I2C协议之类的 (4)成绩咋样,四六级过了吗?
武汉恒为科技 这个面试完真的是自我感觉都凉凉了,后来很快就收到感谢信了,我是去的他们公司,现场做笔试然后直接面试 (1)自我介绍 (2)针对笔试题,用户空间和内核空间的通信 (3)数据库会吗(了解过,不深入,确实没学过) (4)计算机网络咋样(我只是有点基础),TCP报文是怎么组成的? (5)linux系统懂吗(还行),那怎么判断一个linux系统是32位还是64位的呢
查看linux系统是64位的还是32系统: getconf LONG_BIT uname -a cat /proc/cpuinfo c语言编写函数,输出指针大小,为4则是32位,为8则是64位这是面试完百度的,当时只想到一种方法 (6)给定一个超大的文本文件,有很多行,怎么用C语言实现把这个文件按行倒序输出呢?(当时想的是栈,后来被面试官否定) (7)给定四张扑克牌,怎么通过四则运算得到值24呢,判断可以不可以,然后输出任意一个结果(当时想的是用回溯,但是还是没有做出来) (8)你还有什么问题问我的吗?
湖南神锋电子 (1)自我介绍 (2)了解大小端吗?讲一下原理,然后怎么判断一个机器是大端还是小端呢?(联合体或者指针) (3)然后聊项目,几个项目都讲了一边,主要问的还是mqtt协议和自己写的论文,相关的机器学习算法; (4)I2C协议,SPI协议懂吗?介绍 (5)还有C语言中的一些 字符数组 strlen 和 sizeof 的大小长度,还有 strlen 和 sizeof 分别是在程序运行的哪个期间计算值的? (6)然后问了一个算法:给定两个递增排序好的数组,然后把数组合并成一个也是递增的数组(我说的是用递归) (7)然后问了一个非编程题:给定一个天平,10瓶药,但是10瓶药中有两瓶一个90g一个110g,其他的都是10g,怎么一次就可以找到这两瓶不同的药呢?(当时想了比较久,没答出来) (8)然后面试官开始介绍公司,他那边给的是一个客户技术支持的岗位。
杰发科技 1、一面(技术面) (1)自我介绍 (2)介绍一下你的项目,气象检测板,mqtt 协议,板子是怎么和阿里云平台进行通信的,你在项目过程中遇到的什么困难,怎么解决的,一面主要问的就是项目的问题,这是我遇到的对项目挖的最细的一个公司吧。 (3)然后另一个女生面试官问:TCP,UDP协议的区别,三次握手和四次分手的过程;linux下的TCP以及UDP编程;TCP客户端和服务器传数据用到的什么函数(read,write); (4)你有什么要问我们的,一面主要问的是项目,单片机类型以及单片机最小系统这块的。
1、二面(技术面,也算是+HR面) (1)自我介绍 (2)用到的编程语言是C吗,那C++了解吗(了解一点),然后开始问C++的一些基础知识; (3)C++中类和结构体的区别 (4)动态绑定是什么? (5)virtual关键字的作用是什么?(我开始听错了,听成volatile了,英语不好的尴尬) (6)虚函数定义以及作用? (7)vector容器和list容器优缺点? (8)我看你的项目上基本上都是裸机开发的,你用过操作系统吗?用的什么开发板? (9)另一个面试官:你能讲一下K-Means算法吗,你是怎么对他进行优化的呢,文本聚类是怎么实现的呢,感觉这个面试官比较对论文感兴趣。 (10)还有一些HR常问的问题:家庭情况,抗压能力,自己的优缺点,爱好,期望薪资之类的。
深圳开立医疗 三轮面试一共1个半小时左右 1、一面(技术面) (1)自我介绍 (2)面试官直接说我会针对你的以下几个方面进行问问题:C语言,数据结构,操作系统,计算机网络,没问题吧?(内心慌得一批,强颜欢笑:没问题) (3)C语言各种 sizeof 求值(数组,结构体),包括位域,字节对齐相关 (4)了解排序算法吗?讲一下或者给你笔写一下冒泡排序和快速排序的代码吧(还好我之前都自己实现过) (5)C语言中动态分配应该注意什么(内存泄漏什么的) (5)数组和链表的区别,单链表?双向链表?循环链表?具体实现呢?二叉树? (6)linux操作系统的启动过程(我把从bootloader到加载内核到加载文件系统做了一个简单的描述) (7)看过linux内核代码吗?(只看过start_kernel函数,还有driver目录下的部分驱动代码) (8)做过内核移植和uboot移植吗? (9)TCP和UDP的区别,linux下TCP编程,都是常规的TCP问题 (10)你有什么问题问我呢?(工作内容) 2、二面(综合技术面) (1)自我介绍 (2)介绍以下做过的项目,然后还是针对mqtt协议的一些问题,协议内容,协议的实现之类的 (3)做过带linux操作系统的驱动开发吗(介绍了以下linux字符设备驱动程序的开发流程),在做项目的过程中遇到过什么问题?怎么解决的?(确实遇到过,主要是内存映射这块的,物理地址和虚拟地址的映射,还有MMU的作用之类的,看芯片手册找到对应的寄存器物理地址去解决) (4)做过linux内核移植吗? (5)有什么问题问我的?(员工培养机制) 3、三面(HR面) (1)来深圳的理由 (2)家庭情况 (3)大学期间做的比较好的事情,有什么后悔的吗? (4)期望薪资 还有一些其他HR常问的问题,记不起来了。中间也有其他面试,也可能有的问题记不起来了,都怪当时有些公司没做记录,问的问题感觉都比较相似,排版很丑,以后学一学如何排版。