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

记一次怪怪的面试经历

  •  
  •   imxiaoi · 2023-05-31 09:01:02 +08:00 · 10265 次点击
    这是一个创建于 540 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我是去面试 c++,从一开始面试官就趾高气昂的

    问题 1:

    面试官: 给一个 char 赋值 500 会不会报错

    我的回答: 具体会不会报错取决于编译器实现,有可能会有警告

    面试官: 肯定会报错,不信去试,因为 char 的取值范围是-127-128 (然后就被鄙视了按说不应该是 -128-127 么,我并没有反驳

    问题 2:

    tcp 粘包问题,这个问题我都没听说过,算是我孤落寡闻吧,不过我搜了一下,这不是最基础的 tcp 通信原理问题么,定义好应用层的就没问题啊。

    问题三

    面试官:你们用什么 linux

    我的回答:debian

    面试官: 哦,我们不用那个,我们用 ubuntu (也不知道是我发音不准,面试官不知道这个,我作为一个 arch/debian 9 年用户 再一次被鄙视

    最后面试官说我是初级程序员水平,虽然可能我水平本身不是很高,但单凭这种问题就能判断么,我是不是可以怀疑面试官的水平了?

    77 条回复    2023-06-26 17:34:25 +08:00
    privatetan
        1
    privatetan  
       2023-05-31 09:05:29 +08:00   ❤️ 16
    有请粘包警察👮入场
    evill
        2
    evill  
       2023-05-31 09:05:36 +08:00   ❤️ 15
    不用怀疑,专门问 liunx 的问题却不知道 debian ,可想而知面试官的水平
    hidemyself
        3
    hidemyself  
       2023-05-31 09:05:55 +08:00   ❤️ 4
    👮‍👮‍👮‍粘包警察来咯。
    TCP 粘包已在本站有过大量讨论
    zhq566
        4
    zhq566  
       2023-05-31 09:06:32 +08:00
    我也认为面试官水平差点意思。
    dlsflh
        5
    dlsflh  
       2023-05-31 09:07:52 +08:00
    多大的公司啊,怎么听你描述就是个小作坊的水平?
    gps949
        6
    gps949  
       2023-05-31 09:10:49 +08:00
    啥岗位问这些问题? linux 网络驱动开发?
    用 ubuntu 的有啥理由鄙视 debian ?如果是用 CentOS 系或者 SUSE 系的鄙视 debian 系的倒还能接受,毕竟不是一个体系的。
    话说回来,个人觉得面试问啥技术问题其实并没啥意义,不同于笔试面试即使是问技术,说到底其实还是个看眼缘的事情,面试觉得被鄙视了无所谓,只能说面试官跟你聊不来而已。
    timeromantic
        7
    timeromantic  
       2023-05-31 09:12:12 +08:00   ❤️ 115
    我是粘包警察

    根据粘包修正法第 25 章第一条:

    首先“粘包”是不存在的,“粘包”这一个词主要是面向低水平或者没有受过比较系统的网络编程学习的读者。
    因为 TCP 是没有包这个概念的,都是流。
    那么既然没有包这个概念了,那么“粘包”如何谈起?显然包这概念就出现在应用层了( TCP/IP 五层网络模型)。“粘包”本质上就是如何从流里面提取信息出错。导致好像两个信息好像粘连在一起一样。
    实际上这是一个解析错误,本质是对二进制数据解析出错。根本不是 TCP 的问题,是应用层的信息解析器写得太烂了。出现解析错误,无法正确处理从 socket 里面读取的数据。
    wu67
        8
    wu67  
       2023-05-31 09:12:50 +08:00   ❤️ 2
    一直都很奇怪这些技术面试官为什么有这样的优越感.
    面试要是成了, 那大家是同事, 要是没成, 也还是同行, 有必要这样恶心人么, 只会让别人觉得这是个奇葩
    LandCruiser
        9
    LandCruiser  
       2023-05-31 09:13:20 +08:00
    问这种问题就意味着人家只是想招初级的
    luzemin
        10
    luzemin  
       2023-05-31 09:14:01 +08:00   ❤️ 1
    说到 TCP 粘包,我就忍不住要说了,不过,在我说之前,我先把话筒交给楼下🐶
    mango88
        11
    mango88  
       2023-05-31 09:14:19 +08:00
    看描述,不去也罢
    BeforeTooLate
        12
    BeforeTooLate  
       2023-05-31 09:16:02 +08:00
    题外话:debian 大家怎么念的 蝶变?迪斑? 达便安?
    oamu
        13
    oamu  
       2023-05-31 09:18:45 +08:00
    @BeforeTooLate 迪币恩,有和我一样的么😂
    imxiaoi
        14
    imxiaoi  
    OP
       2023-05-31 09:22:37 +08:00
    @BeforeTooLate 我念 "的儿便"
    Donahue
        15
    Donahue  
       2023-05-31 09:22:54 +08:00   ❤️ 1
    越菜的人越觉得自己很牛逼
    rooftop64
        16
    rooftop64  
       2023-05-31 09:23:53 +08:00   ❤️ 3
    面试就像相亲,不合适就算了,对方的态度别往心里去
    对方说你这样不足那样不对,也不一定都是事实
    dcsite
        17
    dcsite  
       2023-05-31 09:24:09 +08:00   ❤️ 1
    @wu67

    你对人性想象的太美好了。如果人人都像你这种思维,那世界上就不会有强奸犯、杀人犯和儿童性侵了~ 有些人就是可以从这些小事中寻找快感。
    codehz
        18
    codehz  
       2023-05-31 09:27:05 +08:00 via iPhone
    虽然 char 确实没规定最大多少吧,但考虑一般情况,预定-128-127 问题不大,非要考虑特殊,那也就考虑 0-255 的平台(
    至于那些 char 不是 8bit 的平台,除非是极其特殊环境,不然正常情况就不应该在考虑范围内

    不过报错是另一个问题,c/c++的一大坑点就是整数转换溢出不是错误,也不要求诊断(
    Phil1024
        19
    Phil1024  
       2023-05-31 09:27:38 +08:00
    为了压价
    shyrock
        20
    shyrock  
       2023-05-31 09:32:08 +08:00   ❤️ 2
    debian->大便
    Rexxar
        21
    Rexxar  
       2023-05-31 09:33:25 +08:00
    念大鞭
    z1645444
        22
    z1645444  
       2023-05-31 09:35:08 +08:00
    感觉进去以后或者开价了,都是不会怎么满意的 XD
    darksword21
        23
    darksword21  
       2023-05-31 09:44:46 +08:00
    ubuntu 还有资格鄙视别人?
    cosmain
        24
    cosmain  
       2023-05-31 09:48:00 +08:00
    虽然不管粘包在 v 站是不是政治正确,但是“作为一个 arch/debian 9 年用户”,没听说过真说不过去,专而不广吧,适合去大厂,不适合到人人多面手的小作坊。
    selca
        25
    selca  
       2023-05-31 09:53:46 +08:00
    @privatetan #1 tcp 的包设计本身就是粘着的,tcp 有粘包!!
    darkengine
        26
    darkengine  
       2023-05-31 09:54:30 +08:00
    粘包辅警来咯,我前端解决过粘包问题 /doge
    wangpugod2003
        27
    wangpugod2003  
       2023-05-31 09:55:38 +08:00
    碰到问题 3:“你们用什么 linux”
    这种低端问题,建议你直接走人。
    oceanquake
        28
    oceanquake  
       2023-05-31 09:57:17 +08:00
    你作为一个 arch/debian 9 年用户,被用 ubuntu 的趾高气扬面试官鄙视了。 这不怼回去?这不让他明白明白谁才是初级程序员?
    Vraw5
        29
    Vraw5  
       2023-05-31 09:57:30 +08:00
    也有请 debian 警察👮入场
    tyrone2333
        30
    tyrone2333  
       2023-05-31 09:58:24 +08:00
    哈哈哈今日乐子又有了
    zhengkk
        31
    zhengkk  
       2023-05-31 10:05:57 +08:00
    @BeforeTooLate #12 大便
    vipdog73
        32
    vipdog73  
       2023-05-31 10:09:22 +08:00
    你要说 centos 他会不会也不知道?
    hhjswf
        33
    hhjswf  
       2023-05-31 10:12:41 +08:00 via Android
    “哦,我们不用那个,我们用 Ubuntu”
    怎么从这句话理解成自己被鄙视了?
    mxT52CRuqR6o5
        34
    mxT52CRuqR6o5  
       2023-05-31 10:20:25 +08:00 via Android
    这面试官不是差点意思,而是差很多意思
    感觉这种公司技术岗并不需要啥技术,人际关系处理好了日子就能过的舒服
    yolee599
        35
    yolee599  
       2023-05-31 10:22:54 +08:00
    1. 面试官可能没写过代码吧。
    2. TCP 是流协议,不存在“粘包”,是应用层协议设计得太烂或者应用层解析器写得太烂了。
    3. 面试官估计只用过 Ubuntu ,你问 CentOS 估计他也不知道。
    xrzxrzxrz
        36
    xrzxrzxrz  
       2023-05-31 10:31:00 +08:00
    画风逐渐奇怪 被你们笑死
    ArleneCheung
        37
    ArleneCheung  
       2023-05-31 10:31:14 +08:00
    我是搞嵌入式的,本科毕业目前就工作一年。

    Ubuntu 是本科学习的时候用的最基础的系统,毕竟开源资料多。

    后来去某大厂实习,开始用 Centos 了,那段时间自己搭了个服务器弄了一下 mongodb 集群,开发的时候知道了 debian 。

    现在我从事单片机裸板开发,我寻思,你们这个面试官第三个问题就没必要问啊其实......这 Linux 不应该触类旁通嘛?(个人见解,手动狗头)
    glfpes
        38
    glfpes  
       2023-05-31 10:32:14 +08:00
    @timeromantic 点赞了,我一直都对这些中文互联网名次头皮发麻。
    lincanbin
        39
    lincanbin  
       2023-05-31 10:34:43 +08:00
    粘包是个伪命题,本质是对 TCP 理解不到位,导致了错误的使用。
    有点类似于用手指直接去按饮水机的热水出水口的压板开关,结果被烫到,以为这是一个 bug ,实际上应该用水杯去按这个压板开关。
    hokori
        40
    hokori  
       2023-05-31 10:35:34 +08:00   ❤️ 1
    ubuntu 不就是 debian 发行版吗,面试官真的用 ubuntu ?
    那他就是个小作坊水平,不去也罢
    yuruizhe
        41
    yuruizhe  
       2023-05-31 11:27:51 +08:00
    @evill 我记得这俩发行版是一个派系的啊。。。
    justlikemaki
        42
    justlikemaki  
       2023-05-31 11:31:14 +08:00
    这种面试官都能来面试别人,这公司不去也罢
    tanhui2333
        43
    tanhui2333  
       2023-05-31 11:34:25 +08:00
    本质是八股文面试大行其道
    lloovve
        44
    lloovve  
       2023-05-31 11:40:57 +08:00 via iPhone
    好,那么来了,如何使用 tcp 流,实现数据通讯,从流中解析出想要的数据,这个本质和解决粘包是同一个方法
    gefranks
        45
    gefranks  
       2023-05-31 11:41:04 +08:00
    我一直想问粘包到底是个什么概念
    xmt328
        46
    xmt328  
       2023-05-31 11:41:40 +08:00
    @dcsite 这个不是人性,这个是智商,去政府部门上过班就知道,虽然等级明确,但是绝对不会存在浮于表面的优越感
    id80108900
        47
    id80108900  
       2023-05-31 11:43:24 +08:00
    面试就面试,非他妈要加个『官』字!
    以后记得录音录像,凡事留一手。
    missdeer
        48
    missdeer  
       2023-05-31 11:43:43 +08:00   ❤️ 1
    我曾经有几年经常在面试时反鄙视面试官,吵起来的也有,惯的他
    leonshaw
        49
    leonshaw  
       2023-05-31 11:49:27 +08:00   ❤️ 1
    为什么 SCTP 没有流行起来?
    为什么有无连接、是否可靠、面向流还是包这些几乎正交的特性要耦合起来形成 TCP 和 UDP 两种主流协议?
    cyningxu
        50
    cyningxu  
       2023-05-31 11:54:43 +08:00
    TCP 是流,包是应用层的概念,所以 TCP 和粘包我理解都不能在一起谈论,这理应是一个应用层如何正确读取流里面的分段数据的问题。
    ovtfkw
        51
    ovtfkw  
       2023-05-31 11:54:47 +08:00 via iPhone
    黏包到底是啥 谁能解释
    Chieh
        52
    Chieh  
       2023-05-31 12:11:54 +08:00
    就计算机来说,如果查不到一个东西的英文解释,那多半是不存在的
    chitanda
        53
    chitanda  
       2023-05-31 12:12:25 +08:00
    @wu67 天天被领导 pua ,好不容易来了个可以欺负的
    bfdh
        54
    bfdh  
       2023-05-31 12:22:00 +08:00
    也不知道 tcp“粘包”这个概念是谁提出来的,自己理解不到位,还生造一个概念出来。
    liudaolunhuibl
        55
    liudaolunhuibl  
       2023-05-31 12:29:48 +08:00
    粘包应该是国内面试公众号们拍脑袋发明的,类似的还有 java 的“双亲委派”
    blackvv666
        56
    blackvv666  
       2023-05-31 12:40:08 +08:00
    小孩子才分对错。
    成年人只看结果。
    zomco
        57
    zomco  
       2023-05-31 12:55:35 +08:00
    TCP 粘包 是筛选面试官的好问题
    Knuth
        58
    Knuth  
       2023-05-31 13:10:47 +08:00 via iPhone
    @timeromantic continue 那应用层该如何正确解决这个问题呢
    bk201
        59
    bk201  
       2023-05-31 13:19:58 +08:00
    如果你确定不去或者去不了,不回怼一下对方吗?
    sunamask
        60
    sunamask  
       2023-05-31 13:24:15 +08:00
    @shyrock 还真是!从没往这个方向想过……
    hzzhzzdogee
        61
    hzzhzzdogee  
       2023-05-31 14:24:02 +08:00
    debian: deh·bee·uhn
    hhjswf
        62
    hhjswf  
       2023-05-31 14:58:25 +08:00
    @ovtfkw 就是 tcp 发一段字节流 ABC EF ,没处理好的有可能收到的是 ABCE F
    qrobot
        63
    qrobot  
       2023-05-31 15:37:41 +08:00
    @Knuth content-length
    qrobot
        64
    qrobot  
       2023-05-31 15:41:24 +08:00
    @hhjswf
    @Knuth

    固定字节大小或者定义 4 字节的 content-length, tcp "粘包" 往往就是 java/C# 这种对 TCP 协议不了解的人出的新手问题.
    ggabc
        65
    ggabc  
       2023-05-31 16:05:15 +08:00
    可能你的工作会顶替这位面试官。所以怎么表现已经不重要了
    hxysnail
        66
    hxysnail  
       2023-05-31 16:40:44 +08:00
    @BeforeTooLate #12 以前我们都叫它大便,现在不知道,换了公司用得少了
    LANB0
        67
    LANB0  
       2023-05-31 17:26:27 +08:00
    @selca 不加狗头?
    xycost233
        68
    xycost233  
       2023-05-31 17:31:20 +08:00
    都已经 3202 年了==怎么还有人问粘包问题啊==建议面试官回去复习一下 TCPIP 协议栈
    FakerLeung
        69
    FakerLeung  
       2023-05-31 17:56:44 +08:00
    @BeforeTooLate 虽然我知道它读“低比恩”,但不妨碍我叫它“大便💩系统”
    documentzhangx66
        70
    documentzhangx66  
       2023-05-31 18:38:01 +08:00   ❤️ 2
    正确回答:

    1.不应该给 char 赋值 500 。char 的取值范围为 xxxx ,强行给 char 赋值 500 并且在没有参数校验的场景下,程序容易产生意料之外的行为。

    2.所谓的 tcp 粘包,是很多年前,一帮非科班的半吊子程序员,没学过网络通信原理,他们试图以 udp 方式进行 tcp 通信,以及使用单线程 tcp 的方式进行多线程甚至多核并发 tcp 通信,才产生了这个问题。目前阶段,请使用诸如 gRPC 这类专业框架,来解决这个问题。

    3. Debian + CentOS 。
    面试官说自己用 Ubuntu ,你回复说 Ubuntu 有很多小 bug ,比如多年前的某个版本,连 ping 命令都有问题。当热 Debian 也存在自己的问题,比如有些多行脚本不能直接粘贴到 ssh 执行,会出现断行的情况。
    zpf124
        71
    zpf124  
       2023-05-31 19:18:02 +08:00
    @BeforeTooLate 迪唉便 -> 带便 -> 大便
    fengye0509
        72
    fengye0509  
       2023-05-31 20:32:06 +08:00   ❤️ 1
    面试是双向选择,就这种面试官以后可能是你的领导,你自己看着办吧
    nexo
        73
    nexo  
       2023-05-31 22:50:33 +08:00
    感觉你们是互相被性格排除了 面试面的红脸了属于 😂
    Liyuu
        74
    Liyuu  
       2023-06-01 06:12:18 +08:00
    会溢出但是不会报错,他是不是没整明白啥是报错
    jzphx
        75
    jzphx  
       2023-06-01 08:12:37 +08:00
    只有 Debian 鄙视 Ubuntu 的,反向操作还是第一次。可能他压根没听说过吧
    mutalisk
        76
    mutalisk  
       2023-06-02 12:18:36 +08:00
    这面试官幼儿园水平啊
    istomyang
        77
    istomyang  
       2023-06-26 17:34:25 +08:00
    我:我用 Arch /doge
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2332 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 16:11 · PVG 00:11 · LAX 08:11 · JFK 11:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.