上周去了南京睿辰欣创网络科技有限公司去面了个试,我记得是11月21号在博览中心投的简历,上周三才收到他们的面试,反应可真够慢的,我都怀疑那天招聘会投了那么多简历怎么都没有收到面试通知呢!我也不至于那么差啊!....还好总算收到了一个!去面试前稍微了解了下公司的概况,它是开发游戏的,跟部队上有合作的,好像有什么部队上的模拟训练系统什么的。我投的是硬件工程师的职位,去之前稍微看了下模拟电子方面的的反馈的东西,模拟电子一直在复习中,哎,大学的时候没学好啊,或者说当初不知道学了能干什么,没什么目的,现在只能重新来过,还好在看的时候就有感觉了!...那公司是西安门那边,坐地铁2号线就到了,时间是上午9点半,哎,又得早起,7点起床,这就是在江北的好处,到市区就得1个小时。....黄埔科技大厦,旁边还有个黄埔大厦,还一模一样,双胞胎么,幸好我记得是科技大厦,没有走错!30楼,那公司在30楼上,当时我坐在电梯上就想我勒个去,这家伙要是地震了那就等着上帝来救我吧,如果我足够幸运的话!29层就是什么总参部***所,反正一看就是跟部队上有关系,两家就在最顶两层!去了我就跟前台说“哥是来面试的”,哈哈,我可不敢那么说!说明情况后那位前台MM就给我了一份硬件工程师测试题和一张应聘人员信息表,然后就是让我到后面的会议室做题填表,进去之后才发现已经来了有4,5个人了大家都在认真做题呢,我找了个位子,还好还有一个位子!然后拿出表准备做题,我先浏览下测试题的内容,我勒个去,全是FPGA的题目,我知道FPGA是什么,可并没有学过啊,只有一个写个程序让单片机的某引脚输出高电平的题目看着还行,我勒个去这题目也行,其他的就是用FPGA和CPLD的编程的题目了,例如编程实现**Mbyte的RAM内存空间,哎我不会做啊!再仔细看了下题目,还是不会做,没学过没办法,这卷子还是不要糟蹋了,还给人家吧!到了前台,我说你给我一份软件方面的测试题吧,还好那MM就给我了,然后让我把应聘人员信息上的应聘职位改成软件工程师就可以了!好吧,尽管我的软件业不怎么样,总不能就这么灰溜溜的回去吧!C++,软件考的是C++,选择题,填空题,问答题,编程题,选择题基本是概念题,关于构造函数,关于虚函数,关于继承多态等等,不过第一个题让我犹豫了,printf("%d\n",12&012),写出输出结果,当时给蒙了,没反应过来!&是按位与,就是十进制数12与012进行按位与,注意012可是八进制数哦,因为C,C++规定,一个数如果要指明它采用八进制,必须在它前面加上一个0,如:123是十进制,但0123则表示采用八进制。所以12&012就是 00001100&00001010,结果为00001000,十进制8!....第二部分是填空题,几个忘记了,有两个不会的倒是记得很清楚,一个是数据库的三级模式是什么,__模式,内部模式和外部模式,这个不会当时给强哥发了条短信,问问他结果,他给我我回了这样的答案:模式,外模式,内模式!当时我就晕了,我勒个去,强哥你太好了,就差一个空,你就是没告诉我那个是什么啊,后来回来的时候查了查资料才知道,模式又称为概念模式或者逻辑模式,哎,哥写的是中间模式,NB吧!第二个是问C++的两种多态性是什么,后来才知道是静态多态和动态多态,静态多态可以称为编译期多态,它是在编译期间通过函数重载和运算符重载的方式决定被调用函数的,动态多态可以称为运行期多态,它可以通过继承和虚函数来实现。实现时,编译器将在进程运行的过程中动态的捆绑想要调用的函数!哎,有学会了点知识!第三部分就是问答题了,第一个是问如何确定一段程序是由C编译器编译的还是由C++编译器编译的,我勒个去,这个也不知道啊,关键是C++学的不怎么样啊,其实还是关于C++方面的知识,第二个题是问关于_stdcall、__cdecl和__fastcall的作用的,首先来说stdcall,它是函数调用约定的一种,函数调用约定主要约束了两件事:1.参数传递顺序,2.调用堆栈由谁(调用函数或被调用函数)清理,被该关键字修饰的函数,其参数都是从右向左通过堆栈传递的,函数调用在返回前要清理堆栈,但由调用者还是被调用者清理不一定。 __stdcall表示,1.参数从右向左压入堆栈,2.函数被调用者修改堆栈,3.函数名(在编译器这个层次)自动加前导的下划线,后面紧跟一个@符号,其后紧跟着参数的尺寸。其中
好了说了那么多C方面的知识了,越来越觉得C语言真的是博大精深啊,随便拿出个问题来就能让你觉得你的C语言并没有你想象中学的那么好!很多人在简历上,包括本人都写着精通C语言,其实未必,说精通还是等到几年之后吧!好吧,闲话少说逆序做题吧,第三个题目是关于线程和进程的区别于联系的,这个还好就不说了,最后就是两道编程题,一个是不使用额外的存储空间编程实现两个数据的交换,这个考的比较多往上也有答案,第二个是编程判断一个操作系统是16位的还是32位的,不能使用sizeof。
其实我也不知道过了多久就决定交卷了,C++的知识学得也不怎么样!交上卷子之后就是稍微等待了下,就到了隔壁的一间房间开始面试了,其实面试的内容页基本都差不多,刚开始就是先做一下自我介绍,大概说了下基本情况,想从事的职业,以及读研期间参与的一些项目,还有就是自己擅长的是那一部分,然后就是我说我的英语比较好,如果公司有这面的需要的话,我想这是我的优势,不过我记得又一次面试的时候我也说了同样的话,当时还是一个女士,40多岁的样子,一看就是搞技术的,她回了这么一句“如果是做技术的,我们更看重你的专业素质,你的实际的项目经验,英语这方面只有能看懂datasheet就行了”,哎,这话回的我不知如何回答了!...自我介绍完了就是会问你在研究生期间做过什么了,大概讲讲了,然后就是问你想做硬件方面的还是软件方面的,我说其实我比较倾向于从硬件入手,然后软件方面的再慢慢的涉及,如果一下子上来就做纯软件的感觉不太好!然后就是问怎么没做我们的硬件测试题啊?哎,当时我就想说我也想啊,可是我看了你们的硬件测试题,全是FPGA方面的,我不会做啊!...没办法只好承认了,FPGA只是听后说过,并没有实际用过,然后我就说我擅长的ARM方面的,用STM32做过一些小东西,然后就大概讲了下!这也是一种策略吧,从一个你不熟悉的话题转到你擅长的东西上面来!再后面他还问了我知不知道野指针,野指针是怎么产生的,借这个机会再整理下吧! 野指针并不是NULL指针,是指向“垃圾内存”的指针,或者说是无指向的指针吧,野指针产生的原因主要有以下几个:1.指针变量没有初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内存。2.指针p被free或者delete之后,没有置为NULL,让人误以为p是个合法的指针。别看free和delete的名字(尤其是delete),它们只是把指针所指的内存给释放掉,但并没有把指针本身干掉。通常会用语句if (p != NULL)进行防错处理。很遗憾,此时if语句起不到防错作用,因为即便p不是NULL指针,它也不指向合法的内存块。3.指针操作超越了变量的作用范围。也即是常说的在一个函数中申请内存空间的指针不能在别的函数中来释放,否则的话就可能出错。好了先总结到这里吧。在后面他还问了我关于linux进程间通讯的方式的问题,有哪几种,信号量是怎么使用的 之类的问题。...整个面试过程中,我感觉面试官比较着急,速度很快,而且我回答他问题的时候他一直在我的简历上写写什么东西,写的什么我也不清楚,反正一直在写!面试完之后就是回到刚才做题的地方等待了,等别的铜须面试完好像还有个跟HR交流沟通的环节,哎,这个不是面试笔试通过了的才有的嘛,怎么提前就进行了,后来才知道,面试官和那个MM,也就是我刚说的HR好像是男女朋友关系,面试前那女的和那男的好像吵了一会,据说是女的闲男的效率慢慢什么的,哎,具体我也不知道了,当时我就想如果我工作了最好和我女朋友不在一个公司,更不要是上下级的关系,要不然也会发生他们这种情况!...聊呗,跟MM聊天感觉还是不错的,她也拿了本子记录东西了,你的名字联系方式什么的,还有就是问问你有没有什么别的公司的offer啊,都是参见了那些公司的面试啊,还有就是你的期望薪资是多少,因为聊天的时候我们三个人一起的,我是三个中第一个回答MM的问题的,我说5.5吧,然后旁边的说5000,最后那位更直接4500或者4000吧都能接受,我勒个去,哥们不带这么玩的,俺说的5500你们就找这个低嘛,太不厚道了吧,我勒个去!还好MM说你们的薪资要求基本能满足你们,我去,这已经比较低了!然后MM说对公司有什么想了解的嘛,我就问了个“你们公司跟部队上什么关系?”,MM说了一大通我也没有听进去她到底说了什么,总之就是没写仔细听,后面就是他们又问了关于加班,福利,住宿方面的东西!感觉这个公司还比较靠谱,除了楼层高的离谱O(∩_∩)O!最后MM说最后的结果我们在下个周五通知大家,期间如果有什么疑问可以打她的电话!没什么别的问题就可以回去了,再次欢迎大家来我公司面试交流沟通!....哎,回去吧,等通知,今天是周一,到周五呢,还有几天,我要不要打个电话问问呢!