V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
sagaxu
V2EX  ›  Go 编程语言

面了个 Go 岗位,秒挂

  •  
  •   sagaxu · 2 天前 · 874 次点击

    去之前 HR 跟我确认过,熟悉不熟悉 Go ,我说会用,做项目没问题,但不熟。

    我以为他们家招的是后端开发,就跋山涉水去了。虽然地铁只有 9 站路,但分属 4 条不同线路,我花了一个小时到达地点,登记信息后开始面试。

    对方 CTO 和 HR 坐我对面,一番简介之后开始技术问题。

    1. Go 的并发模型是什么?其实我并不懂他在问什么,讲了一下 Go 的线程协程。后来他提示比如 chan ,让我讲一下,我不知道一个 FIFO 有啥好讲的...。
    2. Go 是静态类型的,如何定义不确定类型的数据?我说用 interface ,可以判断类型解析,读取到 list 或 map 。
    3. 对 interface 有什么理解?这又把我考倒了,我不知道他是不是问 duck typing 。

    然后面试就到此结束了。

    我预期的是问解决问题的方法,数百万 DAU 的后端架构设计,DB 优化,服务治理,配置中心等等...

    而他唯一关心的是我熟悉不熟悉 Go 的语言小知识。

    不同 CTO 的风格相差太大了,几年前被一个斯坦福海归面过,他就问点很简单的操作系统的原理,然后白板上任意语言写一段代码,判断一个数各位数字相加,不停的重复做下去,得到的数字是否会循环。然后问是否所有数都会收敛,并证明之。

    前些年也被国内有名的大佬面过,围绕简历上的项目经历挖掘设计思路,最后纸上画个架构设计。也面过设计个微博消息数据库,并写出 SQL 的。

    非常关心语言基础的,还是头一回碰到。好吧,我承认我确实不太熟悉 Go 语言,离了 Google 写不了代码。面 Go 的职位还是要背点儿八股,不然语言层面的东西回答不了。

    回去之后又看了看他们的线上产品,核心产品首页,服务端响应稳定的 waiting 600ms 以上,这可是日 PV 不超过 100 万的网站。怀疑之前是 wordpress 改的,子功能还有 next.js 实现的,比较大杂烩。

    第 1 条附言  ·  1 天前
    确实都是些基础的问题,问这些无可厚非。令我比较讶异的是,这个 CTO 只在意这些问题,跟我过去的面试经历风格差异很大。我印象中,很多公司招后端的时候,只要精通任意一种主流语言,然后更在意的是算法和架构设计,白板上写代码或者直接 leetcode 现场刷。算法和架构经验,技术品味,这种是不太能速成的东西。

    语言层面的东西,以大部分公司的规模,现学现用也就够了,需要研究 zero copy 和 off heap 甚至 SIMD 优化之流的,也不可能是年流水不过亿,日活不足百万的小厂。

    可能最近一两年招聘市场供求关系剧烈变化,已经不像从前那样招一个基本功好,能个把星期快速上手的 90 分的人。现在是要招一个基本功好,且已经是这方面熟手的 90 分的人,甚至基本功差点儿也没关系,反正小厂一般也用不上那些。
    15 条回复
    MoYi123
        1
    MoYi123  
       2 天前
    不然怎么叫八股文呢?
    SimbaPeng
        2
    SimbaPeng  
       2 天前   ❤️ 1
    招的是一线开发,来了就能干活的那种,不问语言基础问啥
    cybort
        3
    cybort  
       2 天前 via Android
    如果你面的不是某几个知名公司,都不会问你想的这些问题,因为他们自己都不懂。
    iOCZS
        4
    iOCZS  
       2 天前
    讲道理问语言是比较基础的,简单的。问实际中问题,不一定有这种项目经历,而且自由度比较大,很难说谁对谁错。
    NewYear
        5
    NewYear  
       1 天前
    这么和你说吧,换位思考你会发现,面试是从一群人中筛选出最想要的,而不是看到一个合适就马上招聘进来。

    有很多工作,初中生都能干,有经验的话小学毕业都可以。我想说的重点是什么呢?其实小学学历也可以写代码的,也能写中大型程序(了解需求细节,设计架构不会有多难,语言嘛不懂就学)。

    但如果你是面试官,你会很迷茫,因为随随便便来十几个面试者都是有经验的,基础代码大家都懂,CRUD 都很熟悉。
    好了,现在你告诉我,如何从这十几个人中区分每个人的排名,你最想要选的是哪个人?

    当我面临这个问题的时候,我会选择各个方向有一定深度(但工作上会遇到、会学到,但初级选手不会懂)的知识点。也就是看似“花拳绣腿”,但能探知到求职者在各个方面的深度(只能大概并不准确),以及是否主动学习、工作在技术方向是有期待的。
    ............................而不是死气沉沉的老油条和混子。
    哦对了,现代其实不缺人才,缺的是能力又强,工资要求又不高的人才。

    如果总是选错人,HR 部门会很想骂人的,而且可能平日里在背后搞小动作。所以“筛选”其实也是管理者一项很重要的能力。要做好并不容易,毕竟管理岗未必都是全栈选手,不要忘记了,世界也只是个更大的草台班子。
    ryalu
        6
    ryalu  
       1 天前
    说实话,我觉着问的这几个点还是无可厚非的,既然招的是 Go ,那必然是要懂点的基础的,不然进去了就是开始堆屎山(虽然原先就已经是一座屎山了)....... 会写和写好是两码事,没有理论基础去高谈架构这些招进来也没啥用。

    跳槽进公司后看着同事们留下的屎山真的两眼一黑,每天看着他们写的东西真的想跑路了。
    sagaxu
        7
    sagaxu  
    OP
       1 天前
    @ryalu 设计模式和实现模式,跟语言关系不大吧。就你贴的这段代码,你翻译成任何语言的代码片段,都能一眼看出问题吧,精通语法并不能避免写出这种代码。
    ninjashixuan
        8
    ninjashixuan  
       1 天前
    不算八股吧这几个问题,要了解你的熟悉度问这些理论知识无可厚非。最核心的问题无非是 hr 理解会用和 CTO 的有巨大差别。
    ryalu
        9
    ryalu  
       1 天前
    @sagaxu #7 哈哈,这贴出来是我单纯想吐槽他们代码写的烂。而实际代码中比如锁、切片、interface 的使用也是更烂.....

    另外,如果 op 想学 go 我倒是可以给你分享点干货
    https://cupogo.dev/
    https://www.ardanlabs.com/blog/
    https://www.jvt.me/tags/go/
    https://changelog.com/gotime
    https://golangweekly.com/
    https://www.bytesizego.com/blog
    SenseHu
        10
    SenseHu  
       1 天前
    @ryalu 好奇这一片代码他是怎么写的单元测试。
    我现在的理解:能让其他同事快速省事地写出单元测试的代码 就是逻辑清晰好维护的代码,扩展性都另说
    ryalu
        11
    ryalu  
       1 天前
    @SenseHu #10 能写成这样还会有单元测试吗 😂
    sagaxu
        12
    sagaxu  
    OP
       1 天前
    @NewYear
    @ryalu
    @ninjashixuan

    确实都是些基础的问题,问这些无可厚非。令我比较讶异的是,这个 CTO 只在意这些问题,跟我过去的面试经历风格差异很大。很多公司招后端的时候,只要精通任意一种主流语言,然后更在意的是算法和架构设计,白板上写代码或者直接 leetcode 现场刷。

    语言层面的东西,以大部分公司的规模,现学现用也就够了,需要研究 zero copy 和 off heap 甚至 SIMD 优化之流的,也不可能是年流水不过亿,日活不足百万的小厂。

    可能最近一两年招聘市场供求关系剧烈变化,已经不像从前那样招一个基本功好,能个把星期快速上手的 90 分的人,现在是要招一个基本功好,且已经是这方面熟手的 90 分的人,甚至基本功差点儿也没关系,反正小厂一般也用不上那些。
    f0rb
        13
    f0rb  
       1 天前
    这一面一般应该是高级或者资深开发来面的,可能对方公司没这个梯队的人?
    ninjashixuan
        14
    ninjashixuan  
       1 天前
    @sagaxu 小厂确实更看重熟练度和匹配度的。
    LzzzError
        15
    LzzzError  
       23 小时 41 分钟前
    我 java 正在学 go
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2735 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 13:30 · PVG 21:30 · LAX 06:30 · JFK 09:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.