Golang Go语言面试现在这么难吗?

发布于 1周前 作者 nodeper 来自 Go语言

下午面了一个杭州的电话面试,我没有 go 工作经验,只有 go 项目经验,面试前已经讲过了,面试官问我,top,ls 的实现原理?我以为这就完了,又接着问我 sp 寄存器,x86 和 arm64 为什么有区别,寄存器怎么实现的?这人说什么话之前都会说一个,那我问你一个简单的问题把,最后他问了个面向对象是什么,我就说面向对象把事物对象化,对象有自己的属性和行为,也就是方法。他说,我看你是完全不懂啊,你不适合,就挂电话退微信群了。


Golang Go语言面试现在这么难吗?
101 回复

Go 早就卷了,之前面试容易是没有什么面经。不建议后来的人转 Go 。

更多关于Golang Go语言面试现在这么难吗?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


这就没有一个问题和 Go 语言有关啊

我也是这样想的,我当时还说了面向接口和为什么选择 go,因为 go 实现了鸭子类型,然后又背课文似的说了下鸭子类型。

问一堆废话,不如问问 sql

我觉得,应该问一下和 go 相关的。

这面试官的优越感好强……

就只是单纯找个理由打发你吧…

单纯的是面试官傻逼,恶心你罢了。
拉黑就完事了,继续面。

我认为也像是,因为我他刚开始不让我介绍我的项目。我刚开始想给他看看我的博客和 gh 直接被他回绝了。

这你不喷他玩下?

没机会喷,挂电话退群一气呵成

#1 楼主说个例子 , 你就把原因找到了

爆一下公司

七云网络,HR 还是蛮热情的,我能感觉出来。

这哪家公司。。。

面试嘛,跟相亲一样,多的是自己条件不咋的还看不上别人的公司

这…看起来似乎是个完全不会 Go 的 C++程序员面的你欸

人事说面试官之前是写 C++的

没啥自信了,不敢面试了。。

那就对了,我认识的做 C++的大部分都脾气很大,不知道谁惯的

还能这样吗- -

这没啥,别被吓到了,写 Go 写好几年的人毕竟少,基本都是别的语言转过来的,带着各种生态习惯转变不过来,再说一个只会写 C++的也不可能问你 runtime 或者 GC 一类的东西吧?

准备准备其他家呗,机会多的是

这只是单纯的面试官傻逼而已

node.js 还好不是很卷

纯冤种面试官

问下 你们有定制的 runtime 吗?

这种公司不去也罢

我问个傻问题,top 和 ls 的原理应该咋答……这问的是不是就是 Linux 实现那一套?我倒是知道 top 和 ls 的作用,但是你要说原理我还真不知道该怎么说。
寄存器有什么性质和怎么用感觉比较常见,但是寄存器怎么实现的我突然有点懵,这是要问电路怎么设计的吗?

“我看你是完全不懂啊”???怎么这台词这么熟悉

top 考的应该是 jiffies ,ls 应该考的是 inode 吧

七云这个我知道,做 sd-wan 的好像是。
名字上感觉是在山寨七牛云

听话,让我康康!

这问得太偏了

我这儿面 golang 主要是做 2-3 道代码实现的题。不过有 golang 经验的候选人好少,基本上 java 经验来的最多

这种公司不知道规模有多大。。。我个人是不会倾向去这种公司的。 可以问我问题,不能恶心我。我跟这公司又无冤无仇的。

之前不还普天同庆 Go 终于有八股文了

太偏了……而且很没有礼貌,面试的应该没经过培训。

x86 和 arm64 的 sp 寄存器有啥区别?
应该问的是 Go 的 stack pointer 而不是架构的吧,但是 Go 的 stack pointer 实现是一致的啊,除了 vm 的初始区域不同。
面试者答不上来应该引导性的问上一层,比如一个函数上传入指针和传入对象有什么区别?答出来的话,再问 stack 的实现。

這家公司是寫 assembly 的?


如果真是挂电话一气呵成的话,再加上一直强调“简单的问题”,我感觉有很大概率是“优越感”的原因

好奇问下,问下,如果面试最后问下面试者,最近有什么学习计划或者最近在学什么,是不是比较友好。。

基操,感觉每一段面试中总会遇见几个这样子的极品,不要当回事就好了。

问的问题到时不难,但是面 go 问这个,只能说这个面试官脑子有坑

大学找实习的时候也遇到过这种面试官,两个人面,其中一个优越感贼强,另一个面完了还送我去坐地铁,对比明显。

后来鼓起勇气通过 HR 问面试评价,结果面试官回复里又把我奚落了一顿,说我什么都不懂,从此这家公司一生黑。

估计是有组合语言(Plan 9)的需求,需要对 syscall 有了解,但是这么搞真的招的到人?

LZ 是不是被误解了?这看着就不像是面 Go ,可能就是面下他们组要做的东西,这么看其实面试内容挺正常的,只是 LZ 没有这方面工作经验。

这是找做系统底层的程序员,和 go 没关系。lz 不是你的问题,他们问的问题也没太大问题,面试官态度不太耐心是真的。面试就是来发现大家是不是适合一起工作的,其实是好事

这几个问题值 35k+

兄弟,你说的是指针传递跟值传递、引用传递的区别吗?

不是挺好的嘛,跟这共事不恶心自己吗

KPI 式面试。

说实话用了 Linux 很多年还真不知道 top ,ls 实现原理。好奇查了一下 strace ,似乎很容易找到答案。知识库又丰富了,为什么要问这种很容易找到答案的问题。

x86 和 arm64 为什么有区别,寄存器怎么实现的

这是 c 和 asm 的面试题把

是不是岁数挺大的

不会是错拿了题库来问的吧,还有一句杰哥名言,好搞笑噢

寄存器怎么实现的?如果是真实 CPU 的寄存器,谁能来解答下寄存器怎么造出来的。

top,ls 原理听起来 NB, 实际上也就是用操作系统 api 做 crud, 无非是不熟悉而已.

无它 ,唯 SRAM 尔

寄存器问题,这是数字电子技术的问题,貌似很多大学没有教,我也是刚兴趣自学过,貌似是用两个异或门交叉连接实现的,具体的其实往深了讲和编程差不多,不都是在电脑上写写画画,像用来实现门电路的二极管,都不会要你去研究,那是科学家的事情。

面经真的是毒瘤。。。

这是故意给你扮黑白脸吧

正常学习曲线,这面试官正好在”我感觉啥都知道“的阶段。

我查了下 ,原来 SRAM 就是用来作为 CPU 寄存器和缓存的呢,那这个问题就变成了 SRAM 怎么造出来的了

还得有锁存器( Latch ),具体油管里搜从 0 构建自己的 CPU ,讲得非常好

是引导面试者,看看平时有没有研究而已,面试是找闪光点,不是贬低对方

strace 应该有一个功能 我忘记了 go 的协程上下文切换有用到 因为用户态没有调度权限 需要一些特定的 API 来切换上下文跟抢断

现在想想 PHP 真不卷,也就问问 MySQL 和 Redis

习惯就好,iOS 面试造航母了解一下

现在 Android 面试也造航母

这是故意玩你呢

压根就不想招人,故意玩人

你被问的问题我一个都不会,:dog 我一样用 Go 写公司的运维服务。

FlipFlop 》 MOSFET 》 G 级和 B 级电场造成耗尽层电子运动,从而导通 S 级和 D 级,再问下去就是麦克斯韦方程组了。

为什么就会有这样的面试官,总想体现一下自己的"优越感"! 真正牛逼的面试官不是应该挖掘面试者适合本公司的技能吗

感觉这不是招人干活问的问题,都和 go 不相关了。

面试官问题吧。没对上,下一个公司继续面呗。

arm 大量使用寄存器,x86 喜欢入栈出栈

  • 和 go 关系不大的感觉
    - top\ls 实现原理?这个还从来没见过问的,问这个目的是什么呢?考察什么能力? linux 实现吗?
    - 寄存器 这个操作系统的知识,问问倒是正常
    - 最后面向对象的优越感有点强,应该多引导下吧

这就是故意的,别放在心上

我来说一下我的理解吧。如果不对的话还请指正一下。

1. top 实现原理:遇到问 top 和 free 还有 ps 之类的实现原理基本上就是要答去读取 /proc 里的文件,但是具体读什么文件我不知道,得去 google 查

2. ls 的实现原理:我还真一下子没想明白,我还猜是不是去调 syscall ,然后会不会跟 fs 有关系,后来一查发现人家 posix 里面都有接口,直接调就完事了,另外顺便还学到了 posix, syscall, libc 之间的关系,感谢楼主

3. sp 寄存器是一个 x86 里的寄存器,用来存当前程序的栈的栈顶的地址

4. x86 和 arm 有什么区别:根据我浅薄的理解,好像就是寄存器不太一样,x86 是 rsp rbp rax 之类的,而 arm 是 r1-r 十几,并且他们的指令集不一样,还有他们的内存模型不一样(具体哪里不一样我忘了,好像 arm 不保证内存的读取操作的顺序,就是 happens before 的那套东西不太一样)

5. 寄存器怎么实现的……这个不懂

6. 面向对象是什么:八股文,封装,继承,多态,然后把这三个具体的解释再背一遍

鸭子类型以前听说过,看楼主在这说的我又去查了一下发现以前都理解错了,感谢楼主让我又学到了。

如果说这个人是搞 cpp 的,问这种问题倒还算正常。因为 c/cpp 可以算是 cpu 和操作系统就是他们的 runtime 。一个程序员对他写的程序的 runtime 有一些了解这个要求其实也还算合理。不过拿来问 go 程序员是不是合理,可能还是要看他招这个 go 程序员来做什么事吧。

赞同这个老哥

不如 lz 把 JD 贴以下, 如果招过去做 go 语言层面的性能优化之类的开发, 问得倒也合理

第一个 top 我也是这样回的,他不是很满意,也没告诉我答案,他又接着问 ls 怎么实现的,然后我就照着 top 的思路回他了,寄存器的哪里我接触的不多只知道一些皮毛,一些差异,我当时说的是指令集的不同,以及 arm 架构少一个 sp 寄存器,然后他就问我为什么少一个寄存器,我就明确告诉他我不知道了,我没有接触过这么深入的原理,他就接着问我寄存器的原理,我也没有回答上,最终他问我了面向对象,这时候我心想着,终于来了个好回答的,我就说面向对象思想是把一切事物对象化,对象具有自己的属性和行为,也就是方法,然后我又主动跟他说了下我对于面向接口的理解,以及为什么我更喜欢面向接口,而不是面向对象,我是用鸭子类型来告诉他为什么我更喜欢面向接口的,此时他就跟说,也就是说你是完全不会面向对象啊?这时候我听到我都懵了,我就说我认为你说的不对,我是会的,我还没说完,他就说,我看你,是完全不懂啊,你不合适,他就挂微信电话,退掉了群聊。

以下节选自 JD 内容:2.具有 golang 开发经验,有 qt-qml 经验更佳;熟悉 Linux 操作系统,3 、掌握常用命令和工具的使用操作; 4 、熟练掌据至少一门数据库,如 MySql 、ORACLE 、SQL Server ,熟悉 SQL 语法; 5 、熟悉数据库系统及事务系统的原理;

是的,HR 跟我介绍的时候也是说是做 sd-wan 的。

我觉得也有可能是这样,面试里面是有 sql 的内容的,我感觉可能会 sql 问题多一点的,但根本没有问我一条与 sql 相关的。

我不知道为什么他会说我面向对象说的不对,这个我无法理解,可能是真的就不想招我。

面试的有阴影了,不敢电话面试了,等后续到上海,现场面试把。

感觉不出来年龄,应该也不是很大。

这样想确实挺好.

让 hr 帮我转问了。

面试官和你不在一个频道上面,你回答的内容不是面试官期待的角度

觉得面试官没有什么问题,他追问的 sp 寄存器、寄存器实现原理是基于你自己回答的“x86 和 ARM 的区别是少 sp 寄存器”继续往深问

到后面估计面试官是彻底失去耐心了,然后草草结束了事

这一条,我觉得有可能是这样.

我觉得他一开始就没有耐心.我开始自我介绍的时候就能感觉出来。

关于这一点我无法认同,因为后面哪个面向对象回答的很详细了,无论是面向对象的三要素,什么是多态,什么是继承,什么是封装,以及我也聊了面向接口和鸭子类型,但得到的答复确实,“也就是说,你完全不会面向对象是把,我看你是完全不懂”.

我的#96 是对于#91 的回复,#95 是对于#93,#94 是对于#92 。

这一点是出现沟通问题了,你的回答和面试官的预期答案没有匹配上,面试官没有引导好你往哪方面答,你可能也没注意问清楚面试官想要听哪方面的答案。造成面试官觉得你全场答非所问,虽然你确实尽力在回答了。

「你扪心自问,如果你不去搜索,你能回答上吗」

好家伙。。。。这公司平时开发的时候禁止搜索工具?

对于#98,在今天我强烈向 HR 要求,让面试官回答我,关于我昨天的几个问题的答案,以及最后,他为什么说我面向对象的回答是完全不懂,完全不会的情况下,面试官一个也没有回答,而是说我全场答非所问,如果你认为我全场答非所问,为什么今天也无法回复我你的答案呢?至少你告诉我,我昨天回答的面向对象错在了哪里,对吗?而不是一味的在贬低我答非所问。

关于Golang(Go语言)面试的难度,确实存在一定的感知差异,但这主要源于几个关键因素:

  1. 技术深度与广度:Go语言以其简洁、高效和并发处理能力著称,面试官往往期望候选人不仅掌握基础语法,还能深入理解其内存管理、并发模型(如goroutines、channels)以及标准库的使用。此外,对常见设计模式、算法和数据结构的熟悉度也是考察重点。

  2. 生态系统与框架:随着Go语言在云计算、微服务、DevOps等领域的广泛应用,对特定框架(如Gin、Echo用于Web开发,Beego用于企业级应用)和工具链(如Docker、Kubernetes用于容器化部署)的掌握也成为面试中的加分项。

  3. 行业趋势与需求:Go语言社区活跃,新技术、新特性不断涌现,面试内容自然也会紧跟时代步伐,考察候选人的学习能力和对新技术的敏感度。

  4. 竞争压力:随着Go语言知名度的提升,求职者众多,企业为筛选出最合适的候选人,自然会提高面试门槛。

因此,觉得Go语言面试难并不奇怪。建议通过系统学习、实践项目、参与开源项目等方式,不断提升自己的专业技能和实战经验,同时关注行业动态,保持对新技术的敏锐度。这样,面试时就能更加自信,更好地展现自己的实力。

回到顶部