这次面试的几个感想与想法

昨天跑去厦门面试,依旧很悲剧的找了好几个小时的路,大概找了2个小时,地方感觉不好找,中间还有人指错路,刚开始他指的路是对的,但是改口给我指反方向路,不知是故意还是不小心

公司在别墅里面,有两个面试官,第一个不是技术的,主要问个人问题,我91年的,很多人都认为还很年轻,不过好像在网上看见好几个91年就工作一年多的了,第一个面试官没什么,主要闲聊

第二个是技术的,跟我一样有点胖,问技术问题,根据我简历上来问问题,让我当场写代码,纸上写代码很别扭,幸好第一个面试官拿笔记本过来,不过没编译器,只有编辑器,写的是链表

很久没写过链表了,第一次有人在旁边看我写代码,脑子有点乱,本来为了省时间想用递归创建的,不过脑子太乱,写不出来,改用正常方法,结果代码命名出问题也是在create里面,如果那个时候用递归应该是不会有错的,虽然那个面试官主要是看我代码的可读性问题,但是自己还是感觉代码写得很不满意,后来给链表用函数指针排序(类似qsort)的也写不出来,其实也不是写不出来,只是当时没编译器,怕写错,根本没用过函数指针,后来回家自己敲了下,10+分钟就写完了,运行正确,倒三角形一个变量忘记减一,变成正方形,后来面试官提醒才知道,整个写代码过程脑子有点乱,越写越紧张

他还让我介绍下linux驱动开发,他说他搞windows驱动的,问了我什么R3和R2区别(R多少我忘记了),好像linux没有这说法还是我没学过??

后面还有几个问题,说印象比较深的几个

1.我的英语,悲剧,很多以前根本读错音,面试官说出一个术语我要反应很久才知道是哪个单词,还有代码可读性也是英语不好的原因

2.就是我的想法问题,面试官问我为什么不喜欢windows下开发,我给他说了几个原因,一个是不喜欢windows命名方式,一个是不喜欢写界面,感觉太繁琐,重复性太高,但是面试官告诉我,代码繁琐,重复性太高是可以解决的,而且如果真的开发一个工程,会比界面开发还繁琐

3.为什么不喜欢MFC,我跟他说MFC代码看起来有点乱,杂,他反问我难道linux不会??我说linux好像很少有这样的,但是他告诉我如果一个项目比较大,会比MFC复杂,甚至会使用很多种语言混合编程

虽然当时面试官问我不喜欢windows和MFC是否受网上影响我否认了,不过回家在车上我想了下,网上对我影响还是有的,话说回来,那个面试官告诉我他也不喜欢MFC  O(∩_∩)O~

4.C++的问题,面试官问了几个问题就告诉我我并不算熟悉C++(我简历上写的是熟悉C/C++),我只是把他当做C超集来用,想想也没说错,当初学 C++只是觉得STL好用,做ACM可以省下很多时间,再者C的字符处理,文件处理也比较麻烦,什么面向对象,除了写面试题要求好像也没用过了,甚至连 template这个也怎么用过

5.网络编程问题,我写过两个版本selece和epoll的聊天程序,他问了我几个问题,主要还是服务器方面的,什么包之类的,大概就是如果一个字符串之类的传输的时候被分成两次传输,第一次程序只传输前半部分,怎么办?我全不懂,我写网络编程到目前为止就是read然后write,想想还是有点幼稚了,如果大家有什么网络服务器设计这方面的资料,麻烦告诉我下,谢谢了

还有一个就是select和epoll效率问题,问select和epoll的效率哪个高,我说epoll,因为select要轮询,后来他说仅仅是这样吗?没深入研究过这两个代码区别,自然没回答上来

面试后给自己重新订了学习计划:
更深入C++,windows

学一门脚本语言,之前虽然有学过python,但是回来后想了下,还是学习lua,原因感觉这个和C配合比较好,更像是C的辅助而不是像python这种独立语言,再者lua比较小,以后要阅读代码也比较容易,云风也推荐学C的要去看下lua的代码

学英语

总之,感觉仅仅从书上获取知识还是不够,看来还是要多学点东西...程序员也要多了解一下其他语言,这里的多不是说涉猎广,而是起码要有另外一个熟悉的语言,不要什么都看看,我玩过的语言蛮多的,python,shell,c#,java,php,perl,ruby,go,VB,但是真正算上了解的几乎为0

程序员不要只禁锢在一种语言和系统里面,否则很容易成为井底之蛙,网上linux和windows之争,大家还是不要太过相信
原文地址:https://www.cnblogs.com/linyilong3/p/1999456.html