阮一峰老师又被人怼了,这次是关于 JavaScript 的快速排序实现

2018-05-11 13:43:34 +08:00
 cairnechen
起因是 ideawu 发微博吐槽几乎所有的前端面试者的快排实现都是阮一峰的错误版本。

v 友们怎么看这个问题?

完整分析见 https://juejin.im/post/5af4902a6fb9a07abf728c40
37150 次点击
所在节点    JavaScript
194 条回复
murmur
2018-05-11 20:23:06 +08:00
@DOLLOR 虽然有黑的嫌疑,但是的我自己都感觉前端处在程序员最低端
要么天天造轮子 要么天天换轮子
java 一个 spring 基本统治半壁江山那是帝国级别的啊
前端还在玩三权分立配在野党涉政
要么解决同行的坑 尤其是库克掌权的苹果各种 bug 满天飞
murmur
2018-05-11 20:26:28 +08:00
@h1367500190 一个标签要不要关闭又不是什么值得自豪的是 无非是他习惯了 xml 写法还是接受了很 geek 的写法
ryd994
2018-05-11 21:11:39 +08:00
@zhicheng “记住的应该是 a^2 + b^2 = c^2 而不是 a^2 + b^2 = c^2 的证明过程。”
你可以看看大厂有哪个不考算法的
结论可以直接用
证明过程可以网上查

但是不靠记忆,自己推演出证明过程,这才是真能力
不然遇到个稍微改版的问题,还背书生搬硬套,立马看出水平来了
congeec
2018-05-11 21:17:29 +08:00
太可怕了,我要努力早日脱离前端
zhicheng
2018-05-11 21:23:43 +08:00
@ryd994 我并没有说大厂不考算法,我说的是考快排这种东西并不能起到考察候选人的作用。

自己能推演出证明过程?只不过是理解了别人的过程,然后方便记忆了尔已。换个说法,如果面试考的不是快排,而是证明年顿三定律,你会不会觉得这个是背下来的?
RqPS6rhmP3Nyn3Tm
2018-05-11 21:27:02 +08:00
快排太慢了。给你们个 O ( 1 )的
For i in list
Switch(fork())
Case 0:
Sleep(I)
print(I)
DOLLOR
2018-05-11 21:27:39 +08:00
@murmur
✖️ 前端 vs java&spring
✔️ 前端(vanilla + vue + react + jquery + angular ……) vs 后端( java&spring + php&thinkphp + node&Express + python&Django + Ruby on Rails + C#&.NET + go&beego ……)

这么一看,轮子多才是常态嘛……
ryd994
2018-05-11 21:32:35 +08:00
@bucky 你可以说他们不是好老师,但你没权利说他们没用。有人擅长创造知识,有人擅长传播知识,技术高没用,你真牛逼。人家的技术不是自己学的

让你多看书这很正常。让你 rtfm 并不是不尊重你,而是因为 rtfm 就是最靠谱的方式。你可以说他们说话不客气,但是这改变不了要 rtfm 的时候就该 rtfm 的事实。

三层小楼,你说请教我造顶楼的技术。对不起,没有,一二层你一定得造,而且得造稳。网上各种教程最大的问题在于,他们一二层只搭脚手架。然后给你看看顶层多好看。

说实话网上的教程当消遣看看得了。本来就不该要求有什么干货。真的干货能写一本书,一篇文章怎么能解释透。
第一靠谱的是源码,其次是官方文档,再其次各种二手翻译文档,最不靠谱的就是各种博客。
ryd994
2018-05-11 21:44:30 +08:00
@zhicheng 你非要觉得我是背过程我也没办法。你这个想法就和那些刷 leet code 还要吹嘘自己刷几遍一样。
没见过的问题,能独立解决,这才是我上面说的能力。

就拿快排做例子,基本的快排背下来不难。那要是要求变一点呢?比如只要找到前 N 个元素。或者要求并行化。

举一反三,再反三。反的过程才是本事。不存在背这回事。或者你要说这也是背的话,那过去未来,所有的知识和研究,那都是背。
zhicheng
2018-05-11 21:49:22 +08:00
@ryd994 什么时候流行不看别人的内容就随便瞎怼了?

你说的能独立解决问题,能举一反三,都和会不会快排没有一毛钱关系。我说的还是,考快排并不能考察这个人的能力。

你要说你能通过快排推导出整个世界,通过快排能计算出股票趋势,那是你的本事,和我说的无关。
lsmgeb89
2018-05-11 21:54:05 +08:00
阮一峰并不是科班出身,写的不好很正常。

没有经过正式算法训练的,这些小地方没有注意很正常。

只是他的博客比较出名,树大招风了。

不过有错误指出来,改正就好了。
nexusone
2018-05-11 21:59:53 +08:00
阮一峰一直在传播知识,谁都会犯错,指出来就可以了,再吵吵你是想说你是有多牛逼嘛
ryd994
2018-05-11 22:02:29 +08:00
@zhicheng 你一边说考快排没用
一边又说,应该背的是证明的结果而不是过程
所以你说考什么吧。
在我看来,问如何使用某某函数,这才是真的“茴字有几种写法”

我想说的是,无论结果还是过程都不应该背。而是应该锻炼思维能力。考基础快排怎么写,证明面试官水平有限。面试怎么不可以考快排了,一步一步接着问下去。如果加上 xx 限制,怎么办?如果在某某机器上实现,该机器的性能有如下特点,怎么办?快排就是个引子。知不知道快排,都可以接着问下去。
zhicheng
2018-05-11 22:04:04 +08:00
@ryd994 you are right.
Esen
2018-05-11 22:26:40 +08:00
阮一峰是经济学博士,非计算机科班出身,别太较真。
bucky
2018-05-11 22:32:10 +08:00
@ryd994 麻烦你看清楚我说的内容再回复我好吗,我说的明明白白,你技术高表达不出来是对别人没用,我没说没用。

首先你要区别什么东西适合做教程,文档是用来查的,根本不适合教程,源码就更别说了,代码是综合知识的产物,你真这么自信能吸收别人的源码?就算你能吸收,我也不认为这效率有多高

一说教程就推荐文档,书籍,甚至源码,绝对是走火入魔,反正你看完书,看完文档,看完源码真正吸收了多少,你不说也没人知道,这个 B 随便装也没人能拆穿你,这种陈词滥调,这种推荐的方式,外行都能搞,和公众号文章写文章区别

当然你可以我们低级,我们水平低,反正我们这类人从小被打击惯了,见怪不怪,都是我们自己错。

爱因斯坦都说了,你把知识无法解释给小学生听,就说明你自己理解的也不到位,人家爱因斯坦也没说你们智商低,给你们说就是对牛弹琴。
grzhan
2018-05-11 22:50:02 +08:00
看了下楼里评论,然后把这事拿出来和周围人讨论了下
感觉阮老师的风评现在两极分化还蛮严重的( x
ryd994
2018-05-11 22:57:35 +08:00
@bucky 读书无用论,我不会我有理,理直气壮,佩服佩服

看完源码吸收多少不好说,提个 pr 还是可以的。外行连书名都不知道,内行至少告诉你个关键字。有个关键字能省 99%的时间。
临时急用,网上抄一段交差,那也就算了。但是出来混,迟早要还的。所谓背技术债。一直不懂,出了 bug 谁来修? stackoverflow 么?

不难发现,越是一天到晚变的语言,喜欢这样速成的越多。因为钻研下去也是白搭,反正很快就要重写的。怎么不努力提高水平,多提几个 pr ?

不妨看看 C 程序员们、底层开发们、计算理论研究者们、算法研究者们,有速成的么?

说前端水,不是因为前端这个领域容易,而是速成的太多,以至于水平深浅都看不出来了。
bucky
2018-05-11 23:04:29 +08:00
@ryd994 额,你这阅读理解能力,竟然能想到读书无用论,不知道你从哪句话里面看到我反对读书了,我只是说有些人真本事没有,真正回答问题一个都不会,就知道推荐书籍,让别人读源码看文档,这种废话谁都能说,都不需要懂技术。

你这阅读理解能力,真怀疑你平时看书能吸收多少,我反对就是你这种人,可能连写一篇博客的能力都没有,就过来批评别人了,你后面说的话在我看来完全是文不对题,恕不奉陪,怕了,怕了
THP301
2018-05-11 23:06:13 +08:00
何必放大别人犯下的一个小错误呢,装得好像大家都是完美的人生那样,4 个字形容下现在的装 X 人士,恶心至极!

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

https://www.v2ex.com/t/454048

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

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

© 2021 V2EX