国家仪器面经
面试开始——首先是介绍面试流程:general interview,tech interview, english interview,Q&A
general部分主要是问问我的信息,想应聘的职位,本科学校。然后进入项目询问,让我自己选一个最有价值的项目进行介绍。在介绍过程中她会打断你,问她感兴趣的东西。介绍完后,她还会再问一些问题。主要是用了什么开发环境,为什么选择这个环境,为什么选这个芯片,你遇到的最大的问题是什么,你说自己是负责人,你主要负责的什么,这个项目给你最大的收获。——是不是都是很大路的问题,呵呵。然后又问了另外一个她感兴趣的项目。介绍完毕。还问选择问题,想去研究所国企吗?这两者的区别。
tech部分,她会针对简历当中突出的部分进行询问。我重点写了C/C++,因此她问的都是C和数据结构的问题。
1.介绍一下内存分配,我问是介绍动态还是静态,她说随便。于是我先从静态说起,再说动态,她就开始追问malloc和new的用法和区别,问我有没有遇到内存泄露的经历,怎么解决的。还问了函数内临时变量与动态分配变量的区别——当然是一个栈,一个堆,再具体描述一下就行。
2.请介绍内存对齐问题。如何解决这个问题。我只答出了调换顺序。她说还有别的吗,我想了想说pack(1)算吗?她说也可以——仍然用盼望的眼神看着我。我已经黔驴技穷了。她看我打不出来了,就说pack(1)也是解决问题的办法,就把这个问题过去了。自问:还有什么方法呢??
3.写一个memcpy函数的实现。我刚写出声明她就打断我,说你这样写会有什么问题?会不会有没复制成功的情况?我说那就返回一个bool标志吧。她说随便(这是她说的最多的两个字)。我又刚要写,她又打断,说会出现哪几种问题?我答出了n有可能比dst可用空间大、dst有可能是只读的、src也可能不可读。她问还有其他吗?我想来想去没答出来。后来想想这两个地址是不能重叠的!哎,当时咋就没想到。
4.数据结构的问题:复制一个线性单链表。这个链表节点的数据部分是另某个节点的地址,问怎么复制,写出程序。我一开始没想清楚,以为是简单的链表复制。就用赋值的方法实现了。她耐性地告诉我,例如h-A-B-C-D,A节点的数据域的值正好是C节点的地址值,如果你挨个用malloc分配内存并赋值的话,A节点刚创建完时C节点还没有呢,这样A的值也就不知道是什么。我说那就先把链表搭建好,再往里赋值。她说分两步走时对的。接着沿着这个问复制的时间复杂度。我没答上来,她又引导我说,你先考虑一个节点的情况,我说是(n-1)/2,她说这不是分两步嘛。我说那就是(n-1)。终于过了这关。。。这块还得重点复习呀。NI来的太早了,亲!
接下来是english部分,简单的问家乡是哪里,为什么来到哈尔滨。为什么会选择上海,家里人会支持你吗?能在上海长期发展吗?
最后的Q&A,我就放松多了,问她什么时候给二面,赞颂一下NI宣传里面播放的机器人,选铅笔,弹钢球的视频。结束。
总结:
1.这位JJ真的很nice,遇到不会的都耐心的指导,引导。实在不会还给你讲解一下。所以在遇到不会的问题时,千万不要习惯性的找借口,比如这块我没接触过,这块不是我们专业的,,,,一定要把面试当做学习的机会,表现出对这个问题的兴趣,暗示她,亲我真的很想知道,您就指导指导呗?记住,她看中的是你解决问题的能力,而不是现在已经掌握了多少,当然掌握的多多益善。但是如果不知道,她才正好考察你的解决问题的思路和态度。咱就是没啥好思路,也决不能输在态度上。
2.准备要充分。其实她问的问题都比较基础。但是如果之前没临时看看的话,想答全也很难。既然都投了简历了,晚上就好好准备一下
3.自信,互动。面试过程中要敢于直视对方,当然是温柔的电眼,不能给人家白眼看。声音清晰洪亮即可,不要张牙舞爪,貌似那些工程师都很温和,很实在。