V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jusonalien
V2EX  ›  职场话题

今天跑去微信面试实习生了。。

  •  1
     
  •   jusonalien · 2016-03-08 20:21:45 +08:00 · 10003 次点击
    这是一个创建于 3169 天前的主题,其中的信息可能已经有所发展或是发生改变。

    微信后台实习生面试(一面) (2016/3/8 3 : pm--5 : pm)

    走到 TIT 创意园的时候才两点多一点点,约的时间是三点钟,等了大概半个小时多一点。面试官是一个三十来岁的男人,一上来就对着我的简历问我项目,他貌似没弄过虚拟化相关的东西,更不懂 qemu-kvm 的东西了,然后就问我这个缓存的意义啊,他从头问到尾,叫我解释一下这个虚拟机的体系结构。。 blabla 解释了一大堆他终于听明白了,然后说哎呀你们这个东西还是蛮有意思的,然后就叫我做题了,他直接在草稿纸上写了几道题给我,(写了四十分钟)题目是这样的

       1.实现一个字符串拷贝函数,要求可靠稳定,写得七七八八,感觉还 ok 吧。。

       2.一个程序分析 ,能分析出是六个出来,还让我画图给他解释一下,他说还挺清晰,不过那个关于缓冲区的 trick 就没答上来叫我自己去做实验验证一下。。答案和题目都在这个链接里面了。。我去。。。: http://blog.csdn.net/chdhust/article/details/10579001

       3.考察大端小端模式的转换的 ,有点坑爹,给了他提示之后才想起来大端小端,然后才一步步分析出来=0=

      

    1 #include <stdio.h>
    2
    3 int main(void) {
    4
    5 short x[] = {1,2};
    6 printf("%x \n",(int)x);
    7 return 0;
    8 }
       4.叫你实现二进制串的反转,比如 32Bit 的二进制数 头尾反转过来,要求尽可能高效。。结果只写了一个暴力的。。问我还有没有优化空间,我就说可以两头同时转换。。。然后他问还有没有优化的空间。。。想了很久都没想出来,然后叫我回去再思考一下。。。

      最后问我 TCP IP 怎么样,我说我网络只是上过课,没有太多实践过-。-,然后问我你是更多的偏向于操作系统一类的吧?我说是啊,然后又问我 fwrite 和 pwrite 的区别是什么。。我支支吾吾了几下没答上来。。。

      最后他问我还有什么问题问的吗? 我问了他实习生过来的话你们会安排什么任务。。他就说会有导师带。。 blablabla 一堆。。。然后送我走了,走的时候和我说平时要多多注意一些细节的东西。。哎:(

      我最后问他我这次面试结果通过了吗?他好像挺不愿意说,就叫我回去等电话通知。

      我回去坐地铁的时候,问了一下那个帮我内推的师兄说这个会不会挂了?。。他说面试结果这一类的问题是不能问的。。。

      就这样两个小时过去了,写题目用了大概四十分钟吧。。。问项目和题目问了块一个半小时了。。。时间过的很快。。

      哎 感觉很没底啊 QAQ 跪的概率应该有 50%吧。。。。求不要给我跪 TAT 。。。。。。

      现在的情况是只能慢慢等了咯。。。看命吧。。要是还能收到面试邀请就继续更新这个帖子。。
    最后 各位 V 友评估一下本蒟蒻的希望大不大啊 QAQ

    60 条回复    2016-03-10 10:03:41 +08:00
    Lpl
        1
    Lpl  
       2016-03-08 20:38:41 +08:00
    会不会出现:我就是那个三十多岁的男人
    POP
        2
    POP  
       2016-03-08 20:41:52 +08:00
    我就是那个三十多岁的男人
    zonghua
        3
    zonghua  
       2016-03-08 20:44:12 +08:00 via iPhone
    有没有 web 方向的?
    27
        4
    27  
       2016-03-08 21:08:14 +08:00
    要你多多注意一些细节的东西,就是委婉地说楼主你的细节问题太多吧。。
    snow4young
        5
    snow4young  
       2016-03-08 21:08:28 +08:00
    感觉你应该过了的节奏
    talentsnail
        6
    talentsnail  
       2016-03-08 21:13:38 +08:00   ❤️ 2
    刚满二十岁的面试官:我有那么老吗?
    22too
        7
    22too  
       2016-03-08 21:17:46 +08:00
    姐夫痛哭流涕,现在的年轻人,怎么这样啊,看起来有三十多吗?你不用来了。。。
    miyuki
        8
    miyuki  
       2016-03-08 21:27:36 +08:00 via Android
    我就是那个三十多岁的男人。很抱歉你未被录用。
    jusonalien
        9
    jusonalien  
    OP
       2016-03-08 21:51:46 +08:00
    @27 没办法呀。。问了我很多 IO 函数的细节。。。其实大部分我以前有留意过。。太久没摸过就忘了。。
    jusonalien
        10
    jusonalien  
    OP
       2016-03-08 21:52:44 +08:00
    @zonghua 我是面试 C++后台的。。。。
    jusonalien
        11
    jusonalien  
    OP
       2016-03-08 21:53:48 +08:00
    @snow4young 一半机会过 一半机会跪啊 TAT
    wodesuck
        12
    wodesuck  
       2016-03-08 22:00:15 +08:00   ❤️ 1
    二进制翻转可以用位运算整段整段地翻嘛
    x = (x&0x0000ffff<<16)|(x&0xffff0000>>16); // 前 16 位和后 16 换
    x = (x&0x00ff00ff<<8)|(x&0xff00ff00>>8); // 8 位 8 位地换
    剩下的你懂的
    jusonalien
        13
    jusonalien  
    OP
       2016-03-08 22:08:56 +08:00
    @wodesuck 哇.....好像是的。。。这是你自己想的吗。。?
    htfy96
        14
    htfy96  
       2016-03-08 22:15:58 +08:00
    @wodesuck 还不如暴力打个 2^16 的表快…… GCC 的__builtin_popcount 之类的就是暴力打表
    ethego
        15
    ethego  
       2016-03-08 22:51:11 +08:00
    http://blog.csdn.net/chdhust/article/details/10579001 这博客说的真的是对的吗。。我拿 gcc 编译跑了只有 6 个-啊。。
    jusonalien
        16
    jusonalien  
    OP
       2016-03-08 23:00:59 +08:00
    @ethego 你 printf 的时候有没有去掉\n
    onlyice
        17
    onlyice  
       2016-03-09 00:07:48 +08:00 via Android
    楼主是华师的吗?好像我们是微博好友
    jusonalien
        18
    jusonalien  
    OP
       2016-03-09 00:15:42 +08:00 via Android
    @onlyice 啊 是啊。。。。是 scnu 的。。
    snnn
        19
    snnn  
       2016-03-09 00:17:00 +08:00 via Android
    把你写的字符串复制的函数贴上来看看
    zeusLeeJh
        20
    zeusLeeJh  
       2016-03-09 00:22:11 +08:00
    @jusonalien 有意思竟然可以在 V2EX 上遇到 scnu 的
    jusonalien
        21
    jusonalien  
    OP
       2016-03-09 00:23:23 +08:00 via Android
    @zeusLeeJh 额 请问您是?
    jusonalien
        22
    jusonalien  
    OP
       2016-03-09 00:24:33 +08:00 via Android
    @snnn 迟点再贴吧,主要还是考察我对错误机制的判定。。
    zeusLeeJh
        23
    zeusLeeJh  
       2016-03-09 00:26:58 +08:00   ❤️ 1
    @jusonalien 只是一个喜欢潜水的校友罢了
    oplang
        24
    oplang  
       2016-03-09 01:06:35 +08:00   ❤️ 1
    @wodesuck 你式子里的“)”放错地方了,运算优先级错误,会先偏移再&。方法是分治法,完整程序如下:

    #include <stdio.h>

    unsigned int ReverseBits (unsigned int x) {
    x = ((x & 0x0000ffff) << 16) | ((x & 0xffff0000) >> 16);
    x = ((x & 0x00ff00ff) << 8) | ((x & 0xff00ff00) >> 8);
    x = ((x & 0x0f0f0f0f) << 4) | ((x & 0xf0f0f0f0) >>4);
    x = ((x & 0x33333333) << 2) | ((x & 0xcccccccc) >>2);// 0011 | 1100
    x = ((x & 0x55555555) << 1) | ((x & 0xaaaaaaaa) >>1);// 0101 | 1010
    return x;
    }

    int main () {
    unsigned int x = 8;
    printf("%u\n", ReverseBits ( x ));
    return 0;
    }
    bk201
        25
    bk201  
       2016-03-09 09:01:41 +08:00
    基本是挂了,除非限定时间没有更好的
    jusonalien
        26
    jusonalien  
    OP
       2016-03-09 09:04:53 +08:00
    @bk201 为啥呀 0 。 0
    kiwi95
        27
    kiwi95  
       2016-03-09 09:44:59 +08:00
    打印横杠那个结果是不确定的,虽然按分析确实是可能有 8 个,实际编译运行可能是 2 个, 4 个,或者 6 个,多运行几次结果可能不一样
    zwpaper
        28
    zwpaper  
       2016-03-09 09:46:04 +08:00
    @jusonalien 因为如果是第一选择会很积极的
    jusonalien
        29
    jusonalien  
    OP
       2016-03-09 09:47:13 +08:00
    @zwpaper 面试官那时候回应说还要回去多面试几个人,然后比较一下才会有结果 00
    snow4young
        30
    snow4young  
       2016-03-09 10:02:12 +08:00
    不过给你发红包,过了给我发红包~
    exoticknight
        31
    exoticknight  
       2016-03-09 10:03:35 +08:00
    我报了前端还没有通知……
    zwpaper
        32
    zwpaper  
       2016-03-09 10:11:52 +08:00
    @jusonalien 所以你只能等,今天没消息就危险了
    skylancer
        33
    skylancer  
       2016-03-09 10:20:48 +08:00
    人家都说细节问题太多
    十有八九就跪了

    还有居然问他面试过了没有这种问题

    ..GG
    shenqi
        34
    shenqi  
       2016-03-09 10:43:54 +08:00
    GG 了的节奏,我就是那个三十多岁的男人系列。
    samueldeng
        35
    samueldeng  
       2016-03-09 10:59:44 +08:00
    我倒是觉得蛮大的~
    drush
        36
    drush  
       2016-03-09 11:25:22 +08:00
    樓主準備找下一份吧
    napsterwu
        37
    napsterwu  
       2016-03-09 11:27:43 +08:00
    不是在公众号可以查状态嘛
    magicdawn
        38
    magicdawn  
       2016-03-09 11:39:11 +08:00
    3.考察大端小端模式的转换的 ,有点坑爹,给了他提示之后才想起来大端小端,然后才一步步分析出来=0=

      

    1 #include <stdio.h>
    2
    3 int main(void) {
    4
    5 short x[] = {1,2};
    6 printf("%x \n",(int)x);
    7 return 0;
    8 }

    这是考啥啊~这段代码没体现大小端啊
    magicdawn
        39
    magicdawn  
       2016-03-09 11:49:56 +08:00
    printf("%x \n", *((int*)x)); // 20001 这样?
    Felldeadbird
        40
    Felldeadbird  
       2016-03-09 12:08:52 +08:00
    我竟然不会……看来我的水平还是很低。
    ichigo
        41
    ichigo  
       2016-03-09 16:05:51 +08:00
    情商堪忧
    skylancer
        42
    skylancer  
       2016-03-09 16:30:32 +08:00
    @ichigo 哎哟 遇到一个看死神的人呐- -
    acros
        43
    acros  
       2016-03-09 16:31:11 +08:00 via iPhone
    大小端是靠 union 吧。上面的代码是自动转精度了,不是内存上读取不同啊。
    yuriko
        44
    yuriko  
       2016-03-09 17:04:06 +08:00
    基本是死了……
    二进制翻转不会,只能说是你见得太少……大扣分
    TCP IP/ fwrite pwrite 答得不好基本就死了

    跪的概率不是 50%……是 90%
    vanxining
        45
    vanxining  
       2016-03-09 17:08:12 +08:00
    @yuriko 二进制翻转对应届生才是重点吧,其他都是细枝末节了,工作了自然能接触到。
    楼主不应该说熟悉操作系统。这些系统调用有几百个,怎么可能全知道。
    全面算法加一些语言知识对应届生反而是最好的。
    yuriko
        46
    yuriko  
       2016-03-09 17:13:36 +08:00
    @vanxining 都是实习生了……当然是应届生咯。二进制翻转作为一道小算法题还是很经典的,没见过的确是见得太少。
    TCP IP 其实也是问的很多的,这个也没做好准备,经验不足。

    没啥好问的时候,找些经典的来问是很正常的, TCP/IP 和算法题常见的很。后面换了个题也是在给机会,可惜 LZ 没抓住。

    一般一道算法题,看看逻辑思路怎么样;一道系统题看看你的基础知识如何;再手写点代码或者看看项目,看看你实践能力如何。一般都是这个套路,两个点不行的确有点……
    jusonalien
        47
    jusonalien  
    OP
       2016-03-09 17:19:09 +08:00 via Android
    @yuriko 前面的题目我大部分都 OK ,有些他给了一些提示都可以完全分析出来,并且我们前面大部分时间都是在聊项目,后面才是当场出了一些题目做做他也表示对我的项目很有趣==,只能说有些东西没接触过就是不会的了,虽然挂的几率还是很大
    Lihz
        48
    Lihz  
       2016-03-09 17:45:01 +08:00
    感觉你已经半只脚踩进取了
    jusonalien
        49
    jusonalien  
    OP
       2016-03-09 17:47:04 +08:00
    @Lihz 啥意思。。。?
    bengol
        50
    bengol  
       2016-03-09 18:10:19 +08:00
    第一个题目才是重点吧
    jusonalien
        51
    jusonalien  
    OP
       2016-03-09 18:45:55 +08:00
    @onlyice 额 你是华师的师兄吧? 我记得你也是小企鹅的员工。。。?
    onlyice
        52
    onlyice  
       2016-03-09 18:56:57 +08:00 via Android
    @jusonalien 是的哈哈,我 09 级的
    jusonalien
        53
    jusonalien  
    OP
       2016-03-09 19:00:38 +08:00
    @onlyice 膜拜一下~ 遇到远古神犇了
    recovery0394
        54
    recovery0394  
       2016-03-09 20:04:08 +08:00
    @Lpl 90 的小屁孩
    luckybird
        55
    luckybird  
       2016-03-09 21:35:29 +08:00
    @onlyice 同是华师 09 级的飘过
    chiu
        56
    chiu  
       2016-03-09 21:35:44 +08:00
    大小端怎么转换?
    只遇到过判断大小端的题目
    livecoding
        57
    livecoding  
       2016-03-09 21:59:31 +08:00
    @wodesuck 讲真这个效率不一定高
    neoblackcap
        58
    neoblackcap  
       2016-03-10 00:33:46 +08:00
    @chiu 用 @oplang 提出的翻转二进制的方法,提取前两步不就可以?不过感觉好像有点不是很严谨,是不是还应该判断一下 size 。否则 64bit 的整型大小端直接套用就不行了
    jasonliao
        59
    jasonliao  
       2016-03-10 09:46:15 +08:00 via iPhone
    @exoticknight 同前端 看来可以认识一下 😃
    matthewz
        60
    matthewz  
       2016-03-10 10:03:41 +08:00
    不知道国内的规矩

    在 FLAG 最后问面试官过不过属于作死行为
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   942 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 19:46 · PVG 03:46 · LAX 11:46 · JFK 14:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.