为什么面试官喜欢问某一门语言(比如 go 或者 Python )的内存回收机制?

2022 年 4 月 27 日
 a523

我不明白的,如果不了解内存的回收机制,对写代码有什么影响吗?

我已经写 python 8 年了,也不清楚 python 的 GC 具体细节, 但是还没有碰到内存泄露的问题。 是不是有 GC 机制的语言,不会发生内存泄露?

或者面试官仅仅只是依此来判断某个人对某门语言花了多少心思?

18296 次点击
所在节点    Python
164 条回复
macha
2022 年 4 月 29 日
可能是想看看技术深度
liuxingdeyu
2022 年 4 月 29 日
一个是八股,一部分是想看看有没有踩过坑吧,很多东西是踩了坑才会发现的,像我现在主要用 python ,我也是在遇到爆内存才仔细去看了源码,结果坑居然在 mutilprocessing 这个库。。。
Suddoo
2022 年 4 月 29 日
@monetto 所以,这些公司,没什么前途的……

你可以去问问那些还在用 vb ,delphi 的公司,是继续浪费人力物力,维护那堆垃圾,维护到公司倒闭,还是干脆推倒重来……亦或是,一堆老人占着位置,怕自己被取代后找不到工作?

本来那些调优策略就是针对早期 jdk 的历史遗留问题,现在人家修复了,你非要在有缺陷的版本上调,能调出啥?

我发现有很多老程序员,把自己过时的经验拿出来考新人,时代变了,那些被扫进历史垃圾堆的东西,以后再也用不到了
Suddoo
2022 年 4 月 29 日
@sardina 下次人家骂你的时候,希望你表现得像个绅士一样,好吗?
daimubai
2022 年 4 月 29 日
一个认为要写好的代码
一个认为要写出能干活有效率的代码,并且你的好并不是好
daimubai
2022 年 4 月 29 日
我关注的点是我打工的收入确实都交给房东了...
letking
2022 年 4 月 29 日
问算法题不行,问数据结构不行,问 GC 也不行。
那到底怎么区分候选人的水平、学习能力?
你会说这些东西工作都用不上,都是写 CURD ,但我告诉你能答对这些问题的人即使写 CRUD 代码也比你写得好,我当然想要能答对的人,而不是自己不会也不学,只会上网吐槽面试净问些用不到的人。
1000copy
2022 年 4 月 29 日
看着某些人嘴硬,实际上只是喊喊口号,然后被人家指出自己先犯贱攻击被人回击被人揍,软塌塌的垮下来,感觉愉快。
1000copy
2022 年 4 月 29 日
@Suddoo 赞。你的行为完全是正当防卫。以德报怨何以报德。
lmshl
2022 年 4 月 29 日
@letking
算法 != leetcode
数据结构 != rbtree
GC != 背指针着色,背 CMS 分代调参

归根结底候选人懂这些属于加分项,不懂并不扣分,而现在带厂面试官的喜好却是难以琢磨的,背错一题就可以结束面试,面评:“基础不牢”。

既然真的注重水平,为何不让候选人提交能证明自己能力的东西,比如 GitHub PR 或者自己编写的工具函数?
既然真的注重学习能力,为何不扔给候选人几个数学公式,比如斐波那契矩阵快速幂,给他一天时间让他在代码中复现出来?

实际工作中需要的是以周-月为单位,开发通用稳定系统。而不是以分钟为单位,写一个一次性专用算法垃圾。

“能答对这些问题的人即使写 CRUD 代码也比你写得好”事实上并不成立
gowk
2022 年 4 月 29 日
How to Freaking Find Great Developers By Having Them Read Code
https://freakingrectangle.com/2022/04/15/how-to-freaking-hire-great-developers/
通过让应聘者阅读代码来考察 ta 的能力,我觉得这种方式特别好
xianyv
2022 年 4 月 29 日
自己面的岗位又用不到 GC,为了用不到的东西还要花时间去学一下,我感觉没啥必要.有这时间去学点自己感兴趣的东西不香吗
1000copy
2022 年 4 月 29 日
v2ex 不容易看到对话。于是我写了一个爬虫,抓出两人的对话,谁是谁非,大家自行判断。

====glfpes====
@Suddoo 你这种心态,恐怕找不到什么好工作。
这个世界永远都是连续的。天天以非 1 即 0 的理想环境来考虑问题,那什么事也办不成。
早点从中学理科课堂中毕业吧。


====Suddoo====
@glfpes 别扯淡了,就因为你会背 gc 八股文,就能找到“好工作”,你做的工作又对社会产生了什么价值,解决了老板的什么问题?

并不是所有面试官都很傻逼,喜欢问 gc 八股文,有些老板只想招一个能干活的人过来干活就行,而不是满口底层原理、框架内核,结果一个接口写了一个星期……每个人都这样,公司都给整倒闭了


====glfpes====
@Suddoo 在你这种找工作都费劲的低端码畜眼里,GC 的作用=面试八股文,那我觉得对你来说的确研究 GC 无法提升什么生产力。


====Suddoo====
@glfpes 你想多了,我工作随便找,并不是所有人都像你,因为没有项目经历,为了找份工作,背了成千上万的八股文,还不一定能拿到 offer ,整天 gc gc ,到头来也只是一个 api caller 而已、这就是你眼里的“高端”工作?

看你整天把 gc 放在嘴边,也没见你发明什么 gc 算法,zgc 、graalVM 也没见你贡献一行代码

就背了几个八股文,就懂 gc 了?你确定你背八股文的速度跟得上人家源码更新的速度?

就你这背八股文的时间,人家中学生都写一堆作品了。时代变了,资产阶级垄断知识的时代一去不复返了


====glfpes====
@Suddoo
确实,你这连 GC 的重要性都拿捏不明白的人,的确可以随便找工作,不过恐怕半年工作还没我一个月多


====Suddoo====
@glfpes 但是你并没有写出任何 gc 算法啊,你只是在背书啊,你本质上只是一个 crud boy ,知道回字有 8 种写法还产生了一种莫名其妙的优越感

抱歉,你的工资可能没我高,你打工的收入也可能全部交给房东了,而我不需要给房东打工

工作也没有高低贵贱,你从事的工作也没有什么值得炫耀的,你只不过是流水线上一颗螺丝钉,虽然你会回字的八种写法,但是,老板还是随时可以把你裁了,你并没有掌握什么核心科技,会写八种回字并没有什么卵用

都特么上班了,还抱着学生思维,公司招人是来干活的,不是来考试的,并不是谁会背书谁会考试,谁的工资就高


====glfpes====
@Suddoo 学生思维的是你吧?你写什么 fancy 的代码没人 care ,真正有价值的是解决了业务问题。

我就是房东谢谢,你感兴趣可以翻我回复历史

工作当然有高地贵贱,只有学生觉得人人平等。只有学生才 care 什么狗屎核心科技。


====Suddoo====
@glfpes 你背个八股文,解决了什么狗屁业务?

你是不是房东关我屌事,但是你觉得全世界就你一个人工资高就很傻逼了,谁给你的自信,是因为你会背 gc 八股文吗?

你不 care 核心科技,那你装什么孙子呢!都是用别人的工具,别人的语言,别人的框架,背个 gc 八股文有个几把用!


====glfpes====
@Suddoo 毫无逻辑可言。你是怎么写代码的?
懂 gc 是用 gc 的前提,你 TM 连 gc 都不懂,遇到业务上可能出现的性能问题不是两眼一抹黑,抓瞎?

你 TM 自己先提什么房东不房东的,老子 follow 你结果你先破防了?那有没有一种可能性,你破防是因为你其实自己是租房的?

我告诉你用别人的框架不是问题,但像你这种用都用不明白的才有问题。

另外,你这种铁 FW 压根不可能跟我共事,只是你这种水货太 TM 多,严重拉低了程序员的口碑。


====Suddoo====
@glfpes 你用个几把 gc 啊,你懂个几把 gc 啊,gc 跟租房有几把关系啊,你脑子有毛病吧,傻逼!脑残!


====Suddoo====
@glfpes 是你个傻逼说自己工资高,可能你工资也就几千块、还跑出来装逼

还业务问题,业务问题你调个几把 gc 啊,先把你代码写写好,再去看是不是 JVM 的问题,别特么代码写得一坨屎,然后瞎几把调 gc ,每个人都像你这个样,公司都给你调倒闭了


====glfpes====
@Suddoo 呵呵,真的是破了大防了,我到底哪里戳到了你的痛点啊?
@Livid 辛苦站长把这种没事就人身攻击的用户降级下吧。


====glfpes====
@glfpes 其实,我只是给了他客观的评价。
或许你觉得他不是那么低端,那也无所谓,那是你的判断。
我也不会在网上客气,想什么就说什么。但是我是不会随便骂人傻逼的,这是最基本的素质。


====Suddoo====
本质上还是人太多了,本来编程是一件很简单的事
@glfpes 你搞清楚,是谁先人身攻击的? 你标榜自己高端程序员,别人都是低端码畜,自己工资高,别人工资都不如你,自己是房东,几百套房收租,自己的团队容不下不会背 gc 八股文的人...... 这些跟我有半毛钱关系吗?

你想装逼,可以,但是你特么扯上我干嘛,我的团队还容不下,八股文到背如流,结果一个接口写一星期,里面还一堆低级错误,拖团队进度,影响联调,影响上线的人呢

我们这边只需要能干活的人,不需要会吹牛逼的人


====glfpes====
@Suddoo 你们需要的就是低端程序员,还不让人说了。。。
凡是招过人的都知道,大神难求,水货太多。
spicecch
2022 年 4 月 29 日
@1000copy 138 楼不算吗
1000copy
2022 年 4 月 29 日
@spicecch 只看对话。自己说但是内容中没有提到对方的,不抓取。

因此确实不全面。

#138 就是自己嘀咕,没想让对方知道。
glfpes
2022 年 4 月 29 日
@1000copy 其实我只是不想浪费时间,因为没有意义。

要知道,wfh 也是要干活的。

你可以得到“被人回击被人揍,软塌塌的垮下来”,真的是阿 Q 本 Q 了。
a523
2022 年 4 月 30 日
@blless 感谢这位朋友举的这个例子, 我因为在初学 python 的时候就知道这种写法有问题(入门书籍里面有提到), 所以绝对不会在生产中这样写的。话说, 这个内存泄露的例子跟 GC 的实现方式没关系吧? 应该是需要了解 python 的默认函数机制。只在定义函数的时候,声明一次。
tihiro
2022 年 5 月 2 日
@glfpes 可以细说一下吗
dayudayupao
2022 年 5 月 4 日
不管遇见什么人,微笑待人,你回头想想,无非他就是平日里屎装的多了没地方倒,刚好倒你身上了
letking
2022 年 5 月 5 日
@lmshl
你的三个!=是在和谁说?难道我说过==吗?
最后一句话,你有你的经验,我有我的经验,我的经验告诉我是成立的,一个答不上来算法题或数据结构的人,在我面试过的样本中没有一个是好的程序员。
我面试就是会问算法题,其中包括 leetcode 的算法题;也会问数据结构,包括树或者哈希表,候选人能答上来什么我问什么。
在我看来有太多人只会吐槽面试在问工作用不到的东西,但是这些东西就是能区别人的不同水平来,不管是学习能力、好奇心、还是技术积累,能答对的人一定在这三方面比答不出的人好,所以我不会要一个答不出问题只会吐槽的人。

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

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

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

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

© 2021 V2EX