美文网首页
2016/3/3 VMware电面以及面经总结

2016/3/3 VMware电面以及面经总结

作者: 丁不想被任何狗咬 | 来源:发表于2016-03-03 17:05 被阅读1934次

    中午刚面完Google下午vmware就打来电话,而且来了俩电话,两个组。。。

    +问static是什么,static除了可以修饰变量还能修饰什么
    -static全局变量与普通的全局变量有什么区别?作用域的区别,源文件/全局
    -static局部变量和普通局部变量有什么区别?被初始化一次
    -static函数与普通函数有什么区别?内存中只有一份/维持一份拷贝
    +问多态是什么? 允许将子类类型的指针赋值给父类类型的指针
    +问动态链接库和静态链接库的区别是什么
    +问简历上project系统如何实现同步
    +问tcp和udp的区别是什么
    +问了linux的基本操作:
    +如何查看命令是哪个包里的
    +文件的属性里面的内容分别代表什么
    http://jingyan.baidu.com/article/f54ae2fcd611b61e92b849f7.html
    +如何修改文件的属性
    +如何查看当前的命令是哪个包的
    +如何查找一个文件,如何只查找文件夹
    +ARP是什么协议?
    +MAC包头都有什么内容?
    +TCP包头都有什么内容?

    去看了看准网

    1. 做c的基础题~~都是很基础的题目,一些malloc、排序、变量类型、基本函数等~但是基础细节比较多
    2. 几天后现场面试,依然是算法,链表,二叉树
    3. 三个人轮番轰炸。都会问os相关的问题。虚拟化如何实现。内存管理。多线程实现。平时对细节把握的好的人,很有优势。最后会有一轮英文的面试。比较简单。勉强对答。

    天平找到9个硬币中的假硬币。回 答:分三波,称一次。然后利用替换的方法,找到。替换的思维是,用第一次找到的一波中的两个替换天平中的两个。再把替换剩下的一个,和对面的一波中的任意一个替换。这样就会找到可能的两个问题,硬币。

    1. 做过的项目必问,如果有网络方面的项目,描述的越细越好。这里是用unix的,会问c的一些语法,不会太难。一些常见的算法题,类似编程之美上面的。如果你没有项目经验,可能会问更多的东西,什么操作系统、编译啥的。
    2. 有关锁的问题,读写锁的优化
    3. 在论坛上认识的哥们。帮忙投的简历。过了2周来的HR的电话。1周后。hire manager给了电话,简单地聊了下。定了一个时间on site面试。一共面了3轮。每个人大概1小时。面试题很广。算法,数据结构。等等
    4. 首先是telephone interview. 问了差不多1个小时多,从我做的项目到分布式到算法设计到语言特性不下20个问题, 基本上都解决了。然后是onsite interview, 基本上是一个下午4个小时多,5轮每轮50分钟。我不想一轮一轮阐述,就说说总体感受。有一个 design pattern的问题 A,有一个开放式问题B (说说你做的最好的项目),有一句口头禅(这个算法做不出来没关系,不影响你的performance) C。每轮面试都是重复A, B, C 再加上一个算法题目....让我严重怀疑 1是面试官没有align好,2是这个公司的员工思维严重同质化。 还有,为什么算法做不出来不影响我的performance??另一个感受,面试官对题目严重不熟悉。有面试官的口头禅是 "那给你做个什么题目呢?", 有的问题比较难,我让他给个提示: "他说我也不知道,让我也想想..." 冏。有的面试官对面试者不尊重。总体感觉是: 他们只是把我叫过来聊聊天,然后帮忙培训下面试官?

    其他的面经:

    第二轮面试: 考了一些数据结构,Xpath,以及Unix的常用命令

    1. c和c++的区别
    2. c++和Java的区别
    3. grep和find的用法
    4. unix/linux怎么看当前运行进程?
    5. 写个bubble sort
    6. c++虚析构函数的用法及副作用
    7. 进程和线程的区别
    8. 给定九个球 其中一个轻了或者重了 称三次以内找出来

    https://www.douban.com/note/100423456/

    interviewed questions for 1st round phone screen:
    1) Introduce the project you have done
    2) Buffer overflow; exploitation
    3) Big endian and little endian; how to check it with the program
    4) How to check the memory address in stack is increasing or decreasing?
    5) There is one 32-bit interger x. We want to swap the first two bits
    and the last two bits. All other bits should be kept in the same.
    6) What’s the depth first search
    7) Reentrant function
    8) How to generate/write/compile position independent code
    9) What’s the copy-on-write?
    10) What’s the features of OO?
    11) What’s the inheritance? What’s the virtual function?
    12) How to implement the similar mechanism with Java final in c++?
    13) Why to use virtual destructor?
    
    Onsite interview questions:
    1) first person:
    a. There is one pattern “abc*cdf**egf” and one string “abc123cdf345egf”,
    where ‘*’ is wildcard. Please write the code to decide whether the
    string can be matched with the pattern;
    b. find errors in the following code snatch:
    char* stringCat(char* name){
    char dir[1024];
    dir d(“/etc”);
    while(d->next) { //like this. Will check it later
        if( strlen(name) < 1024 ){
            strcat(dir, name, strlen(name));
        }
    }
    Return dir;
    }
    c. write sendto, and recvfrom function for this structure:
    class data{
    short len;
    char array[];
    }
    d. if the structure is changed into:
    class data{
    short len;
    int test;
    char array[];
    }
    What is the true structure in memory?
    
    2) second person:
    a. there is a ring buffer and please implement add function for this
    ring buffer.
    b. Design the following class structure: Students, Classes, Teachers,
    University.
    c. How to design database table for the Classes?
    
    3) Lunch interview
    
    4) fourth person:
    a. what’s the difference between interface and abstract class? What’s
    the multiple inheritances? How to implement the multiple inheritances
    with design patterns?
    b. What’s the private inheritance? When to use the private inheritance?
    c. What’s the Singleton pattern? There is one more benefit beside the
    only one instance. Could you please figure it out?
    
    5) fifth person:
    a. questions related to resumes.
    b. There is one rectangular block and remove one small rectangular block
    from the original one. Please find one method to cut it and make sure
    those two halves have the same weight.
    
    6) sixth person:
    How to troubleshoot this case: the user wants to logon webpage. But when
    he input the username and password, the logon page appears again.
    
    7) seventh person – hiring manager:
    a. Why do I need to hire you into my team?
    b. There are 10k data (each one is composed of two bytes). Now, please
    figure out the fast way to calculate the number of ones in the bits of
    two-byte data.     
    

    居然还有这种组:

    接下来的几天,我就开始重点做hadoop方面的准备工作了。这个具体过程就不说了,只大概说下准备的方面吧。我重点看了自己之前写的mapreduce框架分析报告,以及网上大牛写的HDFS分析,然后看了看hadoop的配置、体系结构等等,java方面没怎么准备,算法也只是看了下各种排序的原理和思想。然后在这几方面想了想该怎么回答:
    描述Hadoop的架构
    搭建Hadoop集群环境的步骤
    在西门子实习工作的简介
    Hadoop可以优化的地方
    等到面试那天,问的问题基本上都是按简历来的。最开始的时候我还是有点小紧张,大脑有点短路,一面面试官先让我介绍hadoop。我就准备先把hadoop的框架结构先介绍了,本来是先想讲hdfs、再在其上将mapreduce的,但是刚开始,面试官就让我讲我最熟悉的,我对mapreduce了解的更多,就直接讲mapreduce了,这导致我一说完架构就不知该怎么讲了,还是因为紧张导致的大脑短路了,这时面试官就开始问我问题了,包括任务执行的一致性问题、节点失效的判定及恢复相关的问题、以及我认为可以优化的地方。接下来面试官问我看过哪些java方面的书,熟不熟悉设计模式,唉,说来惭愧,java的经典书籍(如Core Java、Thinking in Java、Effective Java、设计模式相关的等)我真没看过几本,设计模式也只是知道mvc和dao,还是在康明斯实习的时候用JavaBean+JSP+Servlet做的项目,并没有真正用框架做过大型项目。面试官让我写个实现单例模式的类,所谓单例模式,就是一个类只能产生唯一的实例,无论如何调用此类,都只返回该实例,而不能产生新的实例。我思考良久(悲伤),写了下面的实现:
    class A
    {
        static A a = new A();
        A() {}
        static A get()
        {
            return this.a;
        }    
    }
    可惜,只对了一半,因为我无法保证产生一个新实例。通过构造器还是能够创建新的实例。。。。。。。
    而我当时实在是想不出怎么解决,很糗。。。。面试官给我做了补充:
    class A
    {
        private static A a = new A();
        private A() {}
        public static A get()
        {
            return this.a;
        }    
    }
    看到答案后,我狂晕,我竟然把public、private这种关键字忘得一干二净,充分暴露了我研一这一年编程少的可怜至极(部分原因是由于课题性质,部分原因是自己没主动练习)!!!!
    接下来,面试官问了数据库方面的知识,可数据库我压根没准备,但是简历上写着了,面试官问我也只能硬着头皮回答acid特性是什么、分别是什么意思等。ac我想起来了,是原子性、一致性,可id这俩隔离性和持久性我可是真想不出来。。。。现在想来,真悲剧啊!!!!!
    二面面试官基本上没问什么问题,就让我写快速排序代码,我是没写出来,只是阐述了下排序思想。。。。。。还问我会不会flex,oracle用过没等等。。flex我没用过。。。oracle自己用过。。
    三面面试官又问了我hadoop有什么可以改进的地方,答的也是一般般吧,然后是一些项目经历。。。。这些就是自己对面试官解释了,不多说了。。。。
    总结下这次面试,可以用糟糕、炮灰、失败来形容,可当时我的自我感觉却很好,真不知为何,想在回想起来,真觉好囧!
    至今未给我通知,可见我的这次面试是彻底失败了!!
    我的功力还不够深厚啊,继续好好修炼吧,失败归失败,机会以后还会有的,我要做的是抓住机会,充实自己,充分准备!
    
    为自己加油吧!
    

    知乎上的回答:

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者:董飞链接:http://www.zhihu.com/question/25068526/answer/29988631来源:知乎

    1. threadpool design: 给出一些任务, 并发去处理,设计到queue排队等待,同步在哪里加锁,线程池预先分配,饥饿和队列溢出的处理
    2. 压缩算法,给一个16进制字节流如何压缩0x 12 32 FD FD 32 43 43 43
    3. 实现semaphore
    4. 2-phase commit 要几次通信,3-phase commit呢,分布式系统中给一个信息,如何最快传输到每个结点,gossip?
    5. 给一个任意的path “/etc/abc/def/a.txt”去验证是否存在,如果是目录的话,假设可以用getFiles()获取所有的当前文件和子目录,然后给一个父目录,/etc/, 遍历所有的子目录和文件,判断是否文件句柄有效,这道题也有些模糊了。

    ChinaUnix上的blog
    http://blog.chinaunix.net/uid-22832715-id-2111536.html

    笔式一个小时,23个选择题,2个编程题,主要是c语言,linux,计网,c++,算法,都不怎么难,编程题一个大小端变换,一个字符排序算法,比较基础。
    然后来了几个工程师开始面试,一个把我领到一间屋,介绍自己的项目,对着我的简历一阵问。我说主备路由的时候,我一答她一应的,煞是有趣。过会儿来了个拖鞋男,说了下ipv6,netfilter,adhoc,感觉还不错,半个小时后boss来了,表情看起来很怪,有些伤感,问了些自己感到最有成就的事,自己的缺点,爱好,用英语描述下自己的困难,xxx,我说自己的缺点就是只对自己感兴趣的东西上心。又说自己想做研发,对测试不是很感兴趣,哈哈,估计让他很无语,bye,wmware,the job isn't what i want.
    but what do i want?
    good luck ,tommorrow!

    一大早跑到保福寺桥西看到了vmware所在的大楼,上去之后是部门经理直接面试的我,问了我做过什么项目,然后说明了项目的详细细节,问的非常细,然后问遇到了什么困难,让写了个链表,还有虚函数的机制,还有一些网络方面的问题

    相关文章

      网友评论

          本文标题:2016/3/3 VMware电面以及面经总结

          本文链接:https://www.haomeiwen.com/subject/fnxokttx.html