现在 GO 语言面试这么难吗?

2022 年 3 月 22 日
 dokimaster

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

17210 次点击
所在节点    Go 编程语言
140 条回复
Cloutain
2022 年 3 月 23 日
@bearice 我查了下 ,原来 SRAM 就是用来作为 CPU 寄存器和缓存的呢,那这个问题就变成了 SRAM 怎么造出来的了
mengzhuo
2022 年 3 月 23 日
@cocong 还得有锁存器( Latch ),具体油管里搜从 0 构建自己的 CPU ,讲得非常好
mengzhuo
2022 年 3 月 23 日
@nonikka 是引导面试者,看看平时有没有研究而已,面试是找闪光点,不是贬低对方
powerman
2022 年 3 月 23 日
@tqyq88 strace 应该有一个功能 我忘记了 go 的协程上下文切换有用到 因为用户态没有调度权限 需要一些特定的 API 来切换上下文跟抢断
yogogo
2022 年 3 月 23 日
现在想想 PHP 真不卷,也就问问 MySQL 和 Redis
20151024
2022 年 3 月 23 日
习惯就好,iOS 面试造航母了解一下
demo06
2022 年 3 月 23 日
@20151024 现在 Android 面试也造航母
darknoll
2022 年 3 月 23 日
这是故意玩你呢
darknoll
2022 年 3 月 23 日
压根就不想招人,故意玩人
madmen
2022 年 3 月 23 日
你被问的问题我一个都不会,:dog 我一样用 Go 写公司的运维服务。
bearice
2022 年 3 月 23 日
@Cloutain FlipFlop 》 MOSFET 》 G 级和 B 级电场造成耗尽层电子运动,从而导通 S 级和 D 级,再问下去就是麦克斯韦方程组了。
goforwardv2
2022 年 3 月 23 日
为什么就会有这样的面试官,总想体现一下自己的"优越感"! 真正牛逼的面试官不是应该挖掘面试者适合本公司的技能吗
fanyingmao
2022 年 3 月 23 日
感觉这不是招人干活问的问题,都和 go 不相关了。
Felldeadbird
2022 年 3 月 23 日
面试官问题吧。没对上,下一个公司继续面呗。
iOCZ
2022 年 3 月 23 日
arm 大量使用寄存器,x86 喜欢入栈出栈
ccong
2022 年 3 月 23 日
https://gocn.vip/topics/kwDJn8IlRY 这个有兴趣吗,最近缺人
nicebird
2022 年 3 月 23 日
- 和 go 关系不大的感觉
- top\ls 实现原理?这个还从来没见过问的,问这个目的是什么呢?考察什么能力? linux 实现吗?
- 寄存器 这个操作系统的知识,问问倒是正常
- 最后面向对象的优越感有点强,应该多引导下吧
DamonLin
2022 年 3 月 23 日
这就是故意的,别放在心上
JamesMackerel
2022 年 3 月 23 日
我来说一下我的理解吧。如果不对的话还请指正一下。

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 程序员来做什么事吧。
sdot96
2022 年 3 月 23 日
赞同这个老哥

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/842175

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX