【面试经历】2017年11月11日
今天一共参加两次面试,上午一次下午一次。面试的岗位是嵌入式开发工程师。下面记录一下面试经历,分析自己的不足之处,为后续的工作指明方向。
面试一
【时间】2017-11-11 9:00-11:00
【地点】西乡老兵大厦 hengkong科技
【面试过程】
1、笔试
九点到达公司后,前台妹子打印一份试题C语言,要求一个小时内完成。主要包括有宏,指针,数组,字符串操作,位的操作,函数的基本操作循环等,基础的电路题目,寄存器操作,C编译原理,逻辑思维,内存的一些概念。由于最近工作的确没有去看这些基础的知识,导致花了一个钟,还有5个左右的电路题目没有做。虽然感觉没有下文了,但是还是坚持做了。
2、技术面试
技术面试官面试时说题目做的不合格,然后说基础不好。问了几个工作的问题如工作具体是做什么的,这个奈何接入网设备特别庞大,也没有很好的切入口,导致他听我说了半天没听明白。接着又问了培训做的项目,我也含糊其辞,没有回答的特别顺畅(由于当时培训基本零基础入门,基本没有实际的项目,每天都是敲代码)。后面问了几个问题,如堆和栈的区别,数组的缺点,有没有使用过链表,ROM、RAM、SDRAM、NONDFLASH等几个的含义及区别。最终对我的评价就是基础知识不好。后面又来了一句不建议去中软和软通这些外包公司,我也没说啥了!我说了句谢谢就撤离案发现场了。
【面试总结】
1、自己太过于盲目,简历前一天才打印,没有做充分的准备
2、简历的内容自己不熟悉,导致回答问题是思维混乱,无法讲诉清楚
3、基础知识太差,基本的问题回答不到,这个下面需要认真准备
4、面试注重的偏基础,主要因为项目介绍过于笼统,需要给出实际的案例,项目经历需再优化
面试二
【时间】2017-11-11 14:30-15:10
【地点】石岩创维数字大厦 guanglianzhitong科技
【面试过程】
1、技术面试
没有进行笔试,前台妹子拿了一张信息表填完成之后,又让她打了一份简历(中午回宿舍给漏宿舍了,尴尬)。等了大概十分钟,技术面试官聊了一下。主要是目前的工作内容,以及工作外包的模式,然后就项目经验问了一下。有讲了一下我们做的产品是在路由上层的,他听懂了。然后介绍了他们公司是做无线和有线路由器,正在扩展业务做智能家居终端的。我问了一下是怎么开发的,他说将芯片厂家提供的demo进行实际场景修改,以及对开源的一些项目修改,优化和适配。开发使用的环境是Windows加虚拟机安装的Linux环境,设备上运行的就是Linux系统。
2、HR面试
HR简单介绍了一下公司的政策,对简历上的一些项目进行了了解以及每家公司离职的原因,还有个人最近的发展规划,我说主要是做技术这一块。讲了一下公积金的事情,后面可能会有技术总监面试。
【面试总结】
1、技术面试氛围较轻松,对于项目介绍个人还是不够熟练,应该了熟于心,调理清晰
2、自己的定位不是很明确,导致有些问题答非所问,这点需要仔细思考一下如何改进
附录
【面试题目汇总】
笔试题目:
1、用变量a给出下面的定义?
(a)一个有5个指针的数组,该指针指向一个整形数; ANSWER: int *a[5];
(b)一个指向有5个整形数数组的指针; ANSWER: int (*a)[5];
(c)一个指向函数的指针,该函数有一个整形参数并返回一个整型数; Answer: int (*a)(int);
(d)一个有5个指针的数组,该指针指向一个函数,该函数有一个整形参数并返回一个整形数; Answer: int (*a[5])(int);
2、数组和链表的区别?
Answer: 数组:数据顺序存储,固定大小; 链表:数据可以随机存储,大小可动态改变;
3、中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展—让标准C 支持中断。具代表事实是,产生了一个新的关键字__interrupt 。下面的代码就使用了__interrupt 关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的。
1 __interrupt double compute_area (double radius) 2 { 3 double area = PI * radius * radius; 4 printf(" Area = %f", area); 5 return area; 6 }
Answer: (1)ISR不能返回一个值;(2)ISR不能传递参数;(3)在许多编译器中,浮点一般时不可重入的,ISR应该是短而有效率的,在ISR中做运算是不明智的; (4)printf() 经常有重入和性能上的问题。
面试题目:
1、堆和栈的区别?
Answer: 堆(Heap):①队列先进先出 ②堆的空间是程序员手段分配和释放的 ③堆很大的存储空间4G ④使用malloc和new分配内存都在堆上。
栈(Stack):①栈先进后出 ②栈的空间有操作系统自动分配和释放的 ③栈空间有限4~12M ④程序在变异时对函数和变量分配内存都在栈上。
2、数组和链表的优缺点
数组分配在一块连续的数据空间上,故在分配空间时必须确定大小;链表时一块不连续的动态空间,通过指针连接,故长度可变。
优点 | 缺点 | |
数组 |
1.可以利用地址偏移来访问,效率高 2.可以使用折半法查找元素,效率高 |
1.空间连续,存储效率低 2.插入和删除元素效率比较低且麻烦 |
链表 |
1.插入和删除元素不需要移动其余元素,效率高 不要求连续空间,空间利用效率高 |
1.不提高随机访问元素的机制 2.查找元素和搜索元素的效率低 |
3、ROM、RAM、SDRAM、NAND Flash、NOR Flash、EPROM、E2PROM区别和联系