V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
javaWeber
V2EX  ›  程序员

最近去大公司面试,面得怀疑人生。。

  •  6
     
  •   javaWeber · 2019-01-21 11:08:20 +08:00 · 38242 次点击
    这是一个创建于 1010 天前的主题,其中的信息可能已经有所发展或是发生改变。

    java 后端。一直在小公司转。最近面了几家大公司都挂了。
    就拿 redis 来说吧。
    问 redis 的持久化方式,这个我答 aof 和 rdb。再问 aof 和 rdb 的区别,这个答 aof 备份操作命令,rdb 备份具体数据。然后继续问 aof 文件太大会怎么样?我却不知道 aof 重写机制压缩文件。
    问 redis 的主从?答读写分离,主机写,从机读。然后问主从同步,支支吾吾答了个 bgsave 命令,讲不清楚。
    问 redis 的回收策略。答了 lru 和 ttl。然后让手写 lru 算法,写不出来。。
    问 redis 怎么做分布式锁,答 setnx 命令。再问怎么释放锁,答 del key。然后问,如果获取锁的模块宕机了怎么办?答设置缓存失效时间。然后继续深问,分布式锁 redis 做了主从,如果设置锁之后,主机在传输到从机的时候挂掉了,从机还没有加锁信息,如何处理?这个我就蒙了。
    面试官说我只会用,不懂底层原理。
    一个知识点,不断地往深问,就会蒙。
    现在面试大公司,面得怀疑人生,想进大公司实在是太难了。。

    167 条回复    2020-05-28 19:43:11 +08:00
    1  2  
    402124773
        1
    402124773   2019-01-21 11:11:56 +08:00   ❤️ 15
    你多去几次,发现他们每次问的问题都是那些。然后针对那些问题,深入地查看源码,了解底层。然后。。。
    zzzhbooo
        2
    zzzhbooo   2019-01-21 11:11:57 +08:00   ❤️ 3
    欲戴王冠,必承其重
    Itoktsnhc
        3
    Itoktsnhc   2019-01-21 11:12:33 +08:00   ❤️ 84
    然后进去 CRUD 😂
    RoyL
        4
    RoyL   2019-01-21 11:12:49 +08:00   ❤️ 20
    ...然后进去了发现,一个也用不上
    yu5121199
        5
    yu5121199   2019-01-21 11:12:58 +08:00
    1 楼正解,多去面几次就好了。
    panbofeng
        6
    panbofeng   2019-01-21 11:14:43 +08:00
    @RoyL 哈哈哈哈哈哈,真相了
    jinhan13789991
        7
    jinhan13789991   2019-01-21 11:15:03 +08:00   ❤️ 2
    招一个螺丝钉,却问你发动机如何制造。
    不过这也是人家筛选人才的手段啊
    skypyb
        8
    skypyb   2019-01-21 11:15:50 +08:00
    所以这个锁到底怎么处理啊,我也好奇
    SyncWorld
        9
    SyncWorld   2019-01-21 11:16:09 +08:00   ❤️ 6
    面试造核弹,上班拧螺丝~~~
    liprais
        10
    liprais   2019-01-21 11:16:38 +08:00   ❤️ 4
    "问 redis 怎么做分布式锁,答 setnx 命令。"
    这个是有问题的,setnx & expire 这个操作并不是原子的
    另外还有一些关于 redis 的分布式锁是不是安全的讨论,这个 blog 讲的不错
    http://zhangtielei.com/posts/blog-redlock-reasoning.html
    wispx
        11
    wispx   2019-01-21 11:17:43 +08:00
    @Itoktsnhc 真相
    guanhui07
        12
    guanhui07   2019-01-21 11:18:33 +08:00
    多面面才知道自己不足,然后补,面试也是收获的一种
    nekoleamo
        13
    nekoleamo   2019-01-21 11:18:41 +08:00
    我之前去海康威视面前端,问的问题真的是大而全,上来就让我说一下 vue,然后我说到哪一点,就会盯着这个点挖下去,被问倒了😌
    suhongbo
        14
    suhongbo   2019-01-21 11:18:51 +08:00
    你只是没有找个合适你的公司而已,不要急,慢慢来。面试也是一种经历
    df4VW
        15
    df4VW   2019-01-21 11:18:57 +08:00
    不是啊,这公司只问 redis 么。。
    eamon666
        16
    eamon666   2019-01-21 11:19:59 +08:00
    你是在简历里过度强调了 redis 的技能吗?导致面试官一直揪着这些不放?
    现在大公司 模块都是分的很清楚 普通的业务 rd 是基本碰不到 redis 底层原理的。。。
    liprais
        17
    liprais   2019-01-21 11:20:03 +08:00
    另外你面试 java 职位让你当场实现一个分布式锁太欺负人了, 面试官自己都不一定能想出来一个正确的方案
    a226679594
        18
    a226679594   2019-01-21 11:20:56 +08:00
    面试造核弹,上班拧螺丝~~~
    zhengwenk
        19
    zhengwenk   2019-01-21 11:27:14 +08:00   ❤️ 2
    @liprais 很多时候面试官自己不懂,所以希望在面试的时候问问看有没有人能教他。当然大牛面试官例外,但是大牛也比较少
    holy_sin
        20
    holy_sin   2019-01-21 11:29:24 +08:00
    @402124773 然后继续挂 哈哈
    inwl
        21
    inwl   2019-01-21 11:29:36 +08:00
    以前每次去面试自信都被击碎一地,因为我也不知道底层,只会用。
    maichael
        22
    maichael   2019-01-21 11:31:12 +08:00
    我觉得这样问的问题不大,一般是你简历上写什么他就抓住一点问什么。然后再根据你回答的深入问下去,有些问题回答不出来不会减分,但是如果你回答出来就会加分,这对于筛选很有帮助。
    maemual
        23
    maemual   2019-01-21 11:31:19 +08:00
    只不过想要摸清你的深度而已
    msg7086
        24
    msg7086   2019-01-21 11:33:01 +08:00
    面造入拧是常态。不过盯着 Redis 问有点过分了。又不是招你去开发 Redis 的。
    Jonssen
        25
    Jonssen   2019-01-21 11:35:19 +08:00 via Android   ❤️ 7
    给你们支个招,在发现面试官苗头不对的时候,你先问一下面试官该职位的薪资多少?如果是 50K 的你直接走人,如果是 10K 的估计他也明白你的意思了。
    deepreader
        26
    deepreader   2019-01-21 11:36:03 +08:00
    @Itoktsnhc 说出了真相。
    javaWeber
        27
    javaWeber   2019-01-21 11:36:22 +08:00   ❤️ 3
    @df4VW 不是啊,这公司只问 redis 么。。
    ========================================
    不止啊。java 基础,集合源码,线程池源码,多线程并发源码问得最多。有些会问 jvm。
    数据库基本必问索引和锁,还有 sql 调优。。以前我都不知道做后端对数据库要求这么高的。
    框架就 ssm,springBoot 这些。
    分布式的话就问缓存,消息队列,服务协调这些。
    有的还会问几个 Linux 命令。
    pxlxh
        28
    pxlxh   2019-01-21 11:39:09 +08:00
    你不是应该感谢别人。
    sarlanori
        29
    sarlanori   2019-01-21 11:40:29 +08:00   ❤️ 4
    这个只能说明供大于求了,一堆人去面相同的岗位,都满足该岗位的最低要求,那当然要在这里面选能力最强的了
    zhangdawei
        30
    zhangdawei   2019-01-21 11:43:27 +08:00 via iPhone
    很好啊,这个正好是补足不全的机会
    dengtongcai
        31
    dengtongcai   2019-01-21 11:46:44 +08:00
    l 楼主可以尝试总结一下面试经验,有好处的哦,我们也可以参考下
    RockShake
        32
    RockShake   2019-01-21 11:47:50 +08:00
    然后发现问的问题一个都用不上
    javaWeber
        33
    javaWeber   2019-01-21 11:51:21 +08:00
    @pxlxh 你不是应该感谢别人。
    ======================
    嗯嗯。感谢并惭愧。。
    waytodelay
        34
    waytodelay   2019-01-21 11:52:23 +08:00 via Android
    楼主几年经验?面的哪家?想参考参考
    fcoolish
        35
    fcoolish   2019-01-21 11:54:19 +08:00
    问的这么详细的吗,
    zjl03505
        36
    zjl03505   2019-01-21 11:55:36 +08:00
    没人说 面试是一定要全答上。摸摸你的深浅,了解了解你应对问题的策略而已
    loveCoding
        37
    loveCoding   2019-01-21 11:56:33 +08:00
    你反问他 , 他也会跪的
    nicevar
        38
    nicevar   2019-01-21 12:03:52 +08:00   ❤️ 1
    招人就是这样,肯定择优录取,面试的问题不一定要求你全部回答上,那些调侃"面试造核弹,上班拧螺丝"的人等招进来给你打下手不行了你肯定会喷这人谁招进来的,这也不会那也不会
    mortonnex
        39
    mortonnex   2019-01-21 12:05:00 +08:00
    redlock 没听过嘛...
    nl101531
        40
    nl101531   2019-01-21 12:07:01 +08:00 via Android   ❤️ 1
    redis 设计与实现 可以看看这本书
    javaWeber
        41
    javaWeber   2019-01-21 12:11:12 +08:00
    @mortonnex redlock 没听过嘛...
    =========================================================
    听过。有个框架 redisson 里面有 redLock 机制。我只知道 lock(),unLock()。。不知道原理。
    he583899772
        42
    he583899772   2019-01-21 12:21:52 +08:00
    反复准备,坚持一两个月肯定没问题的
    enenaaa
        43
    enenaaa   2019-01-21 12:22:49 +08:00
    面试就这样啊。 面试官就是把尺子,量出你的深浅。当然人家也不一定全懂,但是就想知道你懂不懂。
    Z1076
        44
    Z1076   2019-01-21 12:22:56 +08:00 via Android
    @Itoktsnhc 真实 emmmmm
    onlin
        45
    onlin   2019-01-21 12:34:18 +08:00 via Android
    攒经验,为什么会支支吾吾的,不会就是不会,会就是会,我面试时候问了我快两个小时,,,然后跟你讲,我走的时候不报任何希望,过了没几天就给了我二面~
    tourist2018
        46
    tourist2018   2019-01-21 12:48:00 +08:00
    简历里面绝对写了 redis。。。
    rudyyuan
        47
    rudyyuan   2019-01-21 12:53:44 +08:00 via Android
    @SyncWorld 不是造火箭吗
    mogami95
        48
    mogami95   2019-01-21 12:59:47 +08:00
    没问你工作方向上的顶会 paper 就算幸运啦~
    hilbertz
        49
    hilbertz   2019-01-21 13:01:51 +08:00
    因为其他大公司也是这么面试,人家一个小小面试官,当然不想担责任,就按规章走呗
    quwabcxyz
        50
    quwabcxyz   2019-01-21 13:10:22 +08:00 via Android
    不要问人生理想这些尴尬呃呃问题就好,一堆鸡汤
    cncoffer
        51
    cncoffer   2019-01-21 13:12:41 +08:00
    @nekoleamo 前年我也去海康面过, C 语言的嵌入式岗位, 感觉问题都很浅哎, 就是工资开的也很低而且 996, 然后我就没去, 2333
    Paual
        52
    Paual   2019-01-21 13:24:04 +08:00
    面试也是一次学习的机会吧,楼上说的 redis 设计与实现可以看一下,看过一遍,懵懵懂懂,感觉需要再仔细看一遍,换个思路想一下,遇到难的问题的时候都要从底层了解原理去学习,所以所有知识的学习都是由会用到了解然后到深入吧,分析然后类比总结,redis 用比较简单,用好又是一门学问了
    Vegetable
        53
    Vegetable   2019-01-21 13:26:34 +08:00
    这就是为什么说不是真精通就连了解都不要说...
    jakson
        54
    jakson   2019-01-21 13:35:33 +08:00
    确实,之前面过几个也是,一步一步的深入,而且有时候有的面试官问的问题很难理解。
    知识点那么多,没个大半年准备怕是不行
    Just1n
        55
    Just1n   2019-01-21 13:40:47 +08:00
    所有大公司都这么面嘛?
    dezhou9
        56
    dezhou9   2019-01-21 13:45:19 +08:00 via Android
    多看书就能秒杀了
    pony279
        57
    pony279   2019-01-21 13:46:54 +08:00
    不知道你具体是什么情况, 作为面试官, 主要考虑的应该是你个人技术和简历描述的匹配程度(是否真实靠谱, 很多公司鼓励内推, 也是基于这个考虑), 以及你有没有其他亮点

    如果面试的时候过程中你只提到会用 redis, 那么并不能算作是亮点

    你如果不擅长 redis, 那就把面试引导到你擅长的地方, 当学历,资历都没有优势的时候, 让对方知道你的长处, 才是上策

    你可以回答, redis 我主要是会用, 并没有深入了解, 我平时研究 xxx 比较多 ...
    pony279
        58
    pony279   2019-01-21 13:51:34 +08:00
    还有就是要体现出你工作或者研究过程中面临的挑战, 以及解决业务问题的办法, 比如前面提到的主从问题, 就是业务可能面临的挑战, 如果没接触过也很正常, 但是你可以找其他地方和他聊
    ResidualWind
        59
    ResidualWind   2019-01-21 13:52:32 +08:00
    面试造核弹,上班拧螺丝~~~
    ntop
        60
    ntop   2019-01-21 13:52:52 +08:00   ❤️ 4
    老铁你这是不会面试呀,简历上写的东西一定要搞熟,面试不会只问问经验的没有区分度. 我以前面 Android 的时候就把会的东西从底层到源码全看一遍,来不及自己看的就到网上看看别人写的概要. 面 Java 的时候我就会把 JVM 内存管理\线程调度啥的都搞一遍,面 Go 的时候我还是照样把 GC 算法,内存申请等等看一遍,我用的任何算法我都会研究一遍,常用的算法比如你说的 LRU 必须手写,另外 Redis 源码不是很多的,一般公司都会期望你是读过源码的. 做到这些在经验层面几乎不会有问题,然后就是算法了,比较硬核和临场发挥的关系也很大自认一上白板就紧张...
    CasualYours
        61
    CasualYours   2019-01-21 14:03:15 +08:00
    这些都是常见的面试题,你要是用过 redis,这些也都是要清楚的。多看看面试攻略,提前作作准备。
    20015jjw
        62
    20015jjw   2019-01-21 14:04:53 +08:00 via Android
    这些题目有意义么...
    GoodRainChen
        63
    GoodRainChen   2019-01-21 14:14:34 +08:00
    我觉得很常见啊,不都是抓一个点问下去,看看你对原理的掌握。有些可能就是公司要自己造轮子的,或者公开的轮子有 bug,得去修复或者定位问题。
    世界上哪有不出错的程序,假设一个可能损失几百万的 BUG,难道你判断“这是 Redis 的问题”,或者“ XX 轮子就是这么干的”,你以为就可以不用改了?
    我面试小公司来的同事,就感觉这帮人喜欢不求甚解,问个东西,就只知道用,原理也不想,如何改进也不想,拧螺丝也有可能拧出问题啊,总不能就放着不管吧?
    cyhulk
        64
    cyhulk   2019-01-21 14:15:10 +08:00
    这些东西都在 redis 官方文档上,也应该撸一遍的
    NicholasYX
        65
    NicholasYX   2019-01-21 14:18:41 +08:00
    面试造火箭,入职拧螺丝
    Asice
        66
    Asice   2019-01-21 14:21:15 +08:00
    工资给够管他造核弹还是拧螺丝
    BBCCBB
        67
    BBCCBB   2019-01-21 14:22:52 +08:00
    我也想知道主从同步不及时,挂掉的情况下分布式锁怎么处理, 除了 redblock 这个
    hahasong
        68
    hahasong   2019-01-21 14:24:18 +08:00
    就是官方手册上的,没意义。能谷歌查到的常识文档,问来干嘛
    puritania
        69
    puritania   2019-01-21 14:25:14 +08:00
    分布式锁 redis 做了主从,如果设置锁之后,主机在传输到从机的时候挂掉了,从机还没有加锁信息,如何处理?

    这个确实不知道怎么处理。。。
    ala2008
        70
    ala2008   2019-01-21 14:34:28 +08:00
    看来我要好好准备了
    sununiq
        71
    sununiq   2019-01-21 14:37:02 +08:00 via Android
    主从那个无解吧,redis 本身保证的是 ap,要求一致性只能上 zk
    lalala121
        72
    lalala121   2019-01-21 14:40:25 +08:00   ❤️ 1
    我几年前去猫眼面试,一个年轻人面我,上来就问 redis,我感觉他是刚看完《 redis 设计与实现》,基本就是按照目录来问的,问了将近半个小时,然后让我回家等消息,只问 redis,我是 phper
    skysword
        73
    skysword   2019-01-21 14:48:06 +08:00 via Android
    很正常,无论什么领域,针对每一次回答,不断深入问下去,一般不超过六次就能把人问住,无论被问的人有多牛,屡试不爽,因为一般几次之后就会深入到非常理论的领域,绝大部分是未知的领域
    arthas2234
        74
    arthas2234   2019-01-21 14:48:29 +08:00
    写简历也是门学问啊,不要就写一份简历然后海投
    一般都是先筛选公司,然后根据每个公司的招聘要求,写出不同的简历
    约到面试以后针对性的复习,写太多了真的容易出错
    个人精力真的很有限,你实际开发中使用到的技术那么多,不可能面面俱到的
    tlriavsihd
        75
    tlriavsihd   2019-01-21 14:51:33 +08:00
    猜测你面的头条吧…其余的面试题能分享一下吗…
    sgissb1
        76
    sgissb1   2019-01-21 14:54:38 +08:00
    别太当真,你拿出工程经验来,随便问他们两个有点价值的问题一样可以反杀。
    ducklyl
        77
    ducklyl   2019-01-21 14:56:30 +08:00
    面试造火箭,入职拧镙丝。现在不都这样吗?好像你知道这些高大上的东西,逼格就不够。
    openbsd
        78
    openbsd   2019-01-21 15:09:35 +08:00
    这不是运维的活 ?
    9684xtpa
        79
    9684xtpa   2019-01-21 15:13:21 +08:00   ❤️ 2
    @javaWeber #41 所以你应该把 redlock 的原理了解清楚,你就能完美回答分布式锁了,本身的 SETNX 需要基础 LUA 脚本实现原子性,但是如果涉及到集群的情况下,这种方式不是完美的,里面会有很多的问题,所以问及到 redis 集群情况下,分布式锁,就得谈到 redlock,俩者都了解清楚了,你就能回答清楚了

    送你两篇文章
    https://mp.weixin.qq.com/s/JTsJCDuasgIJ0j95K8Ay8w
    https://mp.weixin.qq.com/s/4CUe7OpM6y1kQRK8TOC_qQ
    geekyoung
        80
    geekyoung   2019-01-21 15:17:06 +08:00
    就当多了一次学习和了解的机会了 加油楼主 别灰心!
    hexoxssaa
        81
    hexoxssaa   2019-01-21 15:18:28 +08:00
    @ntop 先膜拜大牛……顺便问一句:那做运维是不是还要将 linux 源码过一遍?
    lincanbin
        82
    lincanbin   2019-01-21 15:22:17 +08:00
    进去后说不定会发现代码就是屎山。
    9684xtpa
        83
    9684xtpa   2019-01-21 15:22:39 +08:00
    @RoyL #4 你错了,正常的业务开发可能会用不上,但是会的越多,处理复杂问题以及解决问题的能力越强,而不是一个很普通的会写一些简单代码的人能替代的,比如一些中间件的性能甚至 BUG,你让一个小白去解决,还是让一个了解其中原理的人去解决。另外很多东西现在网上都有相关的文章,甚至很多的技术书籍都有提到,这也是体现一个人学习能力的表现。

    其实面试的时候,除了体现你的业务解决能力,很多时候是想看到你能给这个团队带来多少东西,是否可以独立负责技术项目,是否可以应对复杂需求,不是招个人进来都是写内部的管理后台的。
    nieyujiang
        84
    nieyujiang   2019-01-21 15:24:28 +08:00 via iPhone
    面试造核弹,入职搞核弹发射按钮 手动狗头😂
    tabris17
        85
    tabris17   2019-01-21 15:30:49 +08:00
    当面怼他啊,redis 无法实现真正的分布式锁

    http://zhangtielei.com/posts/blog-redlock-reasoning.html
    frantic
        86
    frantic   2019-01-21 15:31:49 +08:00
    上次面试 以前在阿里 p10 的大佬最终面,问了我好多关于数据结构的问题,包括画出各个链表结构,我都不会,但聊的很开心,结果给了我一些职业上的建议,当晚就发 offer 了
    passerbytiny
        87
    passerbytiny   2019-01-21 15:55:00 +08:00
    被抓壮丁去面试人几次后,算是有点面试官的经验。可以给楼主解答一下,不一定对。

    技术把关的重点是这三个:实际工作经验年限或者简历可信度、擅长点、学习或总结能力。面试技巧是这样的:多问,问到底。回答了多少、回答对了多少,回答到什么层次,都不是重点,重点就是验出前面说的那三个。

    你不表达“我不会”,那就会一直往底上问,这一点看不出来啥问题。“面试官说我只会用,不懂底层原理。”具体看面试官怎么说的。如果是这样——你会用,不过底层原理还不太懂,那么只是一个一般事实陈述,在最终评价中最多是不优秀,基本不影响过关。如果是这样——你这啥都回,就是底层原理一点都不懂,那么这是再变相得说你不懂装懂,基本属于婉拒了。是前者还是后者,需要楼主自己体会,光凭你现在的描述,猜不准。
    shellbye
        88
    shellbye   2019-01-21 15:55:48 +08:00
    瑟瑟发抖
    ldh756034624
        89
    ldh756034624   2019-01-21 16:17:09 +08:00
    然后进去 curd........
    poplar50
        90
    poplar50   2019-01-21 16:20:07 +08:00 via Android
    今年秋招 手写了好几次 lru
    mortonnex
        91
    mortonnex   2019-01-21 16:34:48 +08:00
    @poplar50 求透露还考了什么算法..
    chippai
        92
    chippai   2019-01-21 16:43:44 +08:00   ❤️ 1
    @puritania 可以参考 Redlock 算法
    lolizeppelin
        93
    lolizeppelin   2019-01-21 16:47:25 +08:00   ❤️ 1
    分布式 一定有
    1 仲裁能力
    2 >=3 的参与仲裁成员
    3 快速的同步
    4 仲裁投票
    5、6、7....等等等等

    讲到底还是要懂 Paxos 那套原理

    一 redis 搞分布式锁,意思意思就行了.....
    yuankui
        94
    yuankui   2019-01-21 17:02:33 +08:00   ❤️ 5
    我觉得现在的面试题,都问的是:茴香豆有几种写法,而没有人关心茴香豆做法。
    道理说的一套一套的,实际干起来,就啥都不会
    matrix1010
        95
    matrix1010   2019-01-21 17:09:49 +08:00 via Android
    @poplar50 现在要求越来越高了, lru 在 leetcode 可是 hard, 不过要求 O(1)
    loser
        96
    loser   2019-01-21 17:10:22 +08:00
    去年初创业失败重新出去找工作面试运维,结果问了很多我都答不上的问题,毕竟我也脱离运维有一两年,最后确实也没过,然后想了几天再次拉上朋友重新创业,这回不干技术干运营,目前公司已经实现持续盈利,有时候真的可能转个弯换条路也行。
    ikaros
        97
    ikaros   2019-01-21 17:27:53 +08:00
    为啥揪着 redis 问,而且如果不是专职 redis 运维谁会把 redis 搞得那么熟啊
    poplar50
        98
    poplar50   2019-01-21 17:31:01 +08:00 via Android
    @mortonnex 就常用算法 问 top k 的比较多
    https://todebug.com/BFPRT/
    poplar50
        99
    poplar50   2019-01-21 17:32:13 +08:00 via Android
    @matrix1010 头条尤其喜欢这个 还有滴滴也问到了
    atonku
        100
    atonku   2019-01-21 17:34:22 +08:00
    面试造火箭,入职拧螺丝
    1  2  
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1108 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 20:14 · PVG 04:14 · LAX 13:14 · JFK 16:14
    ♥ Do have faith in what you're doing.