之前校招面试的时候刷过很多题,找到工作后两年没有刷题了,现在全都忘记了。
平时工作压根用不到什么动态规划、回溯算法之类的。就算要用直接 google 一下找个现成的稍微学习一下就行了。
在公司内部晋升也没有人会看中这些。
问问各位大佬,除了头条还有哪些公司社招会考算法题?
1
wszgrcy 2020-04-23 15:43:19 +08:00 via Android
其实我更想知道,大厂面试算法,不同等级的人,算法问题是一样吗,如果不一样,每个级别应该懂到什么层次
|
2
knowckx 2020-04-23 15:47:13 +08:00
腾讯会有算法题,很多外企也会有
|
5
maichael 2020-04-23 17:03:50 +08:00
动态规划、回溯算法可能帮助不大,但是数据结构的题肯定是有用的。
|
6
wysnylc 2020-04-23 17:04:36 +08:00
算法可以提升思维能力,加快思考算力减少思考时间(当然也有可能增加)
|
7
tt67wq 2020-04-23 17:06:29 +08:00 4
如果不是为了打架,健身锻炼对自我提升有什么大的价值吗
|
11
steveliu13 2020-04-23 17:56:33 +08:00 via Android
就标题来说,可以预防老年痴呆🤓
|
12
Meltdown 2020-04-23 19:01:33 +08:00 via Android
防止变傻
|
13
ayavvv OP @steveliu13 那咋不去做奥数题。。。
|
14
secondwtq 2020-04-23 19:11:23 +08:00 4
我觉得还是有的,不过对于我来说主要不在算法方面
很多算法题(特别是 LeetCode 类的(嘛虽然我不觉得 LeetCode 题应该被称为“算法题”))要考虑很多奇奇怪怪的条件,面试有一遍过的要求 我刷了些算法题之后,发现做项目的时候写逻辑代码一遍过的情况越来越多了,不用每次都运行 报错 debug 运行 报错 debug 循环了 |
15
labulaka521 2020-04-23 20:48:38 +08:00 via Android
我觉得可以锻炼自已的逻辑能力
|
16
MeatIndustry 2020-04-23 23:13:47 +08:00
感觉真没有
|
18
ericgui 2020-04-24 00:10:39 +08:00
有用的
|
19
ericgui 2020-04-24 00:11:22 +08:00
就是感觉投入产出比不太合适
不像其他的,你投入时间,立刻就有产出,效果明显,可以用到实际工作中 |
20
xupefei 2020-04-24 00:12:12 +08:00 via iPhone
有用,你写代码时更自信、更容易一次调通。
|
21
aabbcc112233 2020-04-24 00:20:10 +08:00 via Android
没用。
生产力为第一要义。 |
22
aabbcc112233 2020-04-24 00:20:30 +08:00 via Android
大概率没用。
生产力为第一要义。 |
23
EPr2hh6LADQWqRVH 2020-04-24 00:26:02 +08:00 via Android
椭圆曲线方程,最小二乘法,万有引力公式,铜和硝酸反应,孟德尔遗传定律。这些还都记得吗?
当初你是不是也有类似的疑问,这玩意除了考试,有别的用吗? 事实是在某些情况下有用,但对绝大多数人来说没用,就只是用来分配稀缺资源而已。 |
24
imzhazha 2020-04-24 00:35:03 +08:00 via Android 2
没啥价值,提升逻辑思维能力看哲学类的书不更好。
|
25
lithbitren 2020-04-24 00:37:12 +08:00 1
算法属于内功,刷多了平时 bug 少,在逻辑明确的情况下,业务里基本碰不到解决不了的问题,别说 acm,就算是 leetcode 中等题也比绝大多数业务难多了。
|
26
wangyzj 2020-04-24 00:38:21 +08:00
只能说刷题可以掌握一些骚操作吧
算法本身几乎没用 |
27
ConradG 2020-04-24 00:39:44 +08:00
当然有用,防痴呆。
除了面使用,如果做中间件、游戏开发也经常会用到。 |
28
levelworm 2020-04-24 01:17:26 +08:00 via Android
我觉得主要看能否增加 problem solving 的能力。但是光刷题我觉得还是和现实需求比较远,如果自己有个需求然后学习相关的算法会好很多。另外楼上的健身应该改成习武,光健身是不能学会打架的,得习武。。。
|
29
Rxianbei 2020-04-24 01:25:07 +08:00 via Android
我也觉得,打架得去武馆。你们去健身房去错地方了。
|
30
liuminghao233 2020-04-24 01:29:05 +08:00 via iPhone
没用
这些都是套路 很多都是 google 一下马上就知道的 你要是从来都没有见过 那估计要 gg 举个例子 n 叉树后序遍历非递归 做过的话闭着眼睛都能用脚写 要是你没做过可能会懵逼好一阵子 |
31
Perry 2020-04-24 01:58:54 +08:00
这个问题应该只限于刷过很多题的人才能回答
只刷了几十道且不会总结的大概率会觉得没用 |
32
lihongming 2020-04-24 03:05:30 +08:00 via iPhone 4
读书破万卷,下笔如有神。
leetcode 已经刷了 500+了,现在给我个需求,我就大概知道代码怎么写效率最高,需不需要处理边界值。 尤其是边界值问题,很多 bug 就是这么产生的 |
33
cassyfar 2020-04-24 03:32:31 +08:00
没用。除非你是做 quant 的
|
34
Weixiao0725 2020-04-24 05:28:51 +08:00
我觉得更多的是对你写程序思维的一种训练。还是很有用的。Google,微软这些大厂也不傻,要不然他们也不会用这个标准来衡量。前几年不是还流行考智力题么,后来可能觉得不太合适,现在都不考了。说明大家还是发现考算法题是有效的衡量一个优秀程序员的标准。
|
35
Pyjamas 2020-04-24 05:44:29 +08:00 1
> 怎么说呢,我觉得每个程序员的生命中都至少应该有几个月在静心学习 Haskell 。学会 Haskell 就像吃几天素食一样。每天吃素食显然会缺乏全面的营养,但是每天都吃荤的话,你恐怕就永远意识不到身体里的毒素有多严重。
对我来说刷题跟上面的学 Haskell 差不多 |
36
beginor 2020-04-24 07:12:12 +08:00 2
数据结构,算法,设计模式可以说是程序员的三大利器, 有空多刷刷没坏处!
|
37
zackwan95 2020-04-24 07:29:01 +08:00
你从公司的角度出发就能明白了,大公司就是想省力招人罢了。在美国大公司面试官是得接受培训的,考算法题是节省面试官的时间,反正是买方市场。
不然你说考啥。 程序员经验主义的活,干过的谁都会(正常努力上进程度)没干过的只能靠装作自己干过(基本上就是骗)。 那要么就考书本上的科班知识呗,那更是一万年用不上,而且你更不好复习。 我面过最有水平的面试是谷歌社招前端的,pair programming 的方式解决一个问题然后让你随便查,根据你的搜索习惯来判断你的思维方式。这样招聘成本会很高,而且一般的公司估计面试官自己都会露怯。 |
38
falcon05 2020-04-24 07:42:52 +08:00 via iPhone
没多大用处,更多时候写代码的瓶颈在对需求和业务的理解沟通,甚至大部分情况与代码无关,而实现大多是有成熟的可以参考的方案,很少要自己写算法的时候。
|
39
zackwan95 2020-04-24 07:44:34 +08:00
@avastms 人类 99.99%的科技文化发明创造都是没有参加过高考的人做出来的,人类现在用的互联网的东西好歹还有 10-20%是刷过算法题的人写出来的,这样看来刷算法题比高考还有用
|
40
kios 2020-04-24 07:46:16 +08:00
最近我也在刷,但是我的初衷是为了让自己不变得太蠢 = =
|
41
zhusiyu 2020-04-24 08:07:58 +08:00
有些算法,写游戏是真能用到,但也不是每次都用到~
|
42
index90 2020-04-24 08:30:37 +08:00
你所说的算法题是指,直接告诉你算法名然后默写出来呢?还是给你一个真实问题,然后你用某些算法去解决呢?
前者的确没有意义,我也没见过面试考前者的。后者的意义是,你不仅知道算法,还知道怎么把现实问题转化成数学问题的能力。当然现在很多面试题都已经公布在网上,而面试官有可能懒得重新设计题目了,面试者只要刷题就好了。 |
43
Davic1 2020-04-24 08:31:27 +08:00
不论是算法也好,其他理论也好, 都是多年积累下来的经验,思想,记载在书里。学习算法,或者读这类书,就是直接吸取前人的经验,而不必自己在走一遍。
比如,别人告诉你那有辆车可以开,但是自己就是喜欢骑自行车。 |
44
nnqijiu 2020-04-24 09:04:12 +08:00
做算法题就像做数学题,都有套路,现实应用开发完全用不到,除非你做底层优化可能会涉及一点
|
45
fkdog 2020-04-24 09:27:59 +08:00
大部分都是跟风的。
以前搞技术博客,然后一窝蜂的去搞了。 现在刷 leetcode,然后一窝蜂的去刷了。 leetcode 这种,如果你停一段时间不去刷,立马就忘记了。 |
46
vevlins 2020-04-24 09:48:36 +08:00 1
自信。
自信很重要,作为一个虽然科班出身但计算机基础薄弱的工程师,从前端搞后端、学算法、学编译原理都带给我极大的安全感,让我自觉扎实了程序员的基本功,干什么都更有自信(虽然现在还没怎么学....)。 人自信了,干活也快了,跳槽也有自信了,人也有点脾气了。哈哈哈 |
47
CoderGeek 2020-04-24 10:09:56 +08:00
个人感觉不会 死刷题就跟背书一样 应付跳槽涨薪而已
|
48
rnborca 2020-04-24 10:11:38 +08:00
用不上说明你 low 阿,旦且认真思考过需求的最好实现方式,都会用上,只知道实现功能的 low 比当然用不上数据结构和算法。ps:稍微复杂的需求,当然写不了复杂的也说明你 low 。
|
49
tcfenix 2020-04-24 10:20:51 +08:00
你所有听说过的大厂社招都会考算法,国内的国外的都会考,无非是算法在面试中的占比区别
比如国内大厂一般算法会考,基本就是了解你的实际动手能力,其他会问你的项目,然后就是问你对于使用的中间件或者语言的底层了解(A 必问 concurrentHashMap 与 GC),少数会有一些 system design 的题目, 国外的大厂算法比例更高, 比如朋友介绍过微软什么的基本就是算法 亚马逊的面试大部分是算法,然后加上 system design,最后来点价值观考核 算法本质上就跟高考是一个逻辑,优秀的人**容易**在高考中拿高分, 但是并不是**所有**高考高分的人都优秀,也不是说高考没有高分的人就不优秀 算法题好的人优秀的**可能性**大 但是并不是**所有**算法好的人都优秀,也不是算法不好的人就没有优秀的 |
50
bejond 2020-04-24 10:40:12 +08:00 1
@zackwan95 你第一句话我不知道真伪。第二句话结论和条件不相干。是筛选机制是算法主导,所以创造互联网的人大多会算法。第二句话说 80%都是受过高等教育的人写出来的看起来也没毛病,但是这也站不住脚。就像你说现在的发明都是喝水的人造出来的一样。
|
51
bmy 2020-04-24 10:43:00 +08:00
到现在也不会算法,可能这辈子也不会。。。
|
52
clownxiaoqiang 2020-04-24 10:56:10 +08:00
还是筛选人的一种方式,就和争吵了这么多年的应试教育一样,始终没个结果。但是愿意花时间去刷一刷这些比较复杂的东西,从某种程度上说明这个人是愿意为工作岗位付出努力的,以及有一定天赋。
对于工作是否有实质性的帮助,这个见仁见智了。多看些书总归没坏处,但是真正的与公司来说有多大用处,其实不得而知。就像前两年,公司大佬来给我们开会,一个技术总监给大佬提问“我们是技术驱动的公司吗”,人家答“我们是结果驱动的”。 有时间多看看,至少能在我们这个 level 占一定优势,pk 掉一些人。 |
53
deepmindlab 2020-04-24 11:04:14 +08:00
算法还是要彻底领悟,不然刷 1000 道题都没有实质意义
|
54
xcstream 2020-04-24 11:08:46 +08:00
那考什么比较好 没有更好的了
|
55
lithbitren 2020-04-24 11:16:24 +08:00
刷 leetcode 不是为了面试,是娱乐,排位刷进前 100,周赛刷进前 30,不用想别的,卷就完事了。
|
56
purensong 2020-04-24 11:20:02 +08:00
如果不是真的喜欢,又有谁愿意去做舔狗呢?
所以这类问题 "如果不是为了 A,做 B 又有什么用", 统一回复,不做 B 就装 B |
57
lithbitren 2020-04-24 11:20:08 +08:00
不过今天有点气,今天 leetcode 签到题的 Python 高赞解法明明是我发明的,结果因为写得太早被评论区淹没了,一个赞都没有。
|
58
v2Geeker 2020-04-24 11:22:48 +08:00
我刷题现在基本是套路,看上去是哪种类型的题目直接上模板... 没遇到的题型要想好一段时间,解法还不是最优的的。
我工作 5 年了,说实话,刷题收益比不上多研究一下常用中间件大就是了... 总之为了跳槽涨薪,公司好这一口,刷,很值! |
59
Mirage09 2020-04-24 11:27:45 +08:00
面试做题跟算法不一样,需要很多 clarification,还有和面试官的沟通。
|
60
0xZhangKe 2020-04-24 11:43:26 +08:00
可以练练脑子,不然天天写业务代码,都生锈了。
|
61
loryyang 2020-04-24 11:55:27 +08:00
挺有用的
一是锻炼写代码能力,有想法和写得出来不一样,写得出来和写得好又不一样 二是锻炼排查问题,算法题目的差错比较难,因为很多时候你看不到错误的 case ( LeetCode 不算),很多时候靠仔细分析代码,或者写测试,很锻炼人的 三是锻炼思维能力,类似于数学的作用,高中之后的数学对生活毫无作用,但是他锻炼的是人的思维能力。算法能力也一样,锻炼大脑用的。要看懂并掌握一个复杂算法可不是那么容易的 |
62
yukiloh 2020-04-24 12:18:47 +08:00
如果不是真的 XX
又有谁愿意做 OO 呢 |
63
lzlee 2020-04-24 12:26:58 +08:00 4
我觉得做 leetcode, 是有用的
战五渣留个言, 我自己没有怎么刷过 但是周围有精通此道的大神, 他给我留下过或多或少的印象, 基本都是正面的 1. 理解问题很简单清晰, 能够很好的划分 各个故事, 以及故事内的 各个小块 2. 解决问题的时候, 通常都能很快的想到 套路; 3. 就算一开始不是最佳的 套路, 也能在很快 演进出一个相对不错的 套路 4. 他对效率这个东西很敏感 5. 他对边界值很敏感 6. 他对很多东西的原理, 演进路线很清晰, 可惜并不太愿意跟我讲, 也可能是他尝试过只是我没听懂... 也不知道是因为这个导致他刷题厉害, 还是因为刷题厉害, 培养出了他这些东西... 我个人来说, 刷题的结果我不是很重视 我看重的, 是解决问题中付出的努力, 以及在努力中, 领悟的思路, 以及寻找思路的方法 刷题的结果, 只是顺便获得的收益 至于解法记得不记得, 那并不是很重要, 就算我记不得之前吃过多少面包, 但是那些面包已经被我吸收 |
64
fcoolish 2020-04-24 14:06:42 +08:00
感觉能训练下思维能力,实际应用没有用。
|
65
ayavvv OP @rnborca 你这一口一个 low,听着让人不舒服。反正我看我们这边 p8 p9 的大佬也没见他们算法水平有多高。对于业务开发来说设计模式和架构方式这些才是最基本的吧。
|
66
ayavvv OP @lihongming 讲道理啊,现在给我个业务需求,我也大概能知道怎么写效率最高,以及边界值的处理。锻炼思维有太多种方式了
|
68
ls2110609 2020-04-24 14:34:07 +08:00
程序 = 算法 + 数据结构
软件 = 程序 + 软件工程 |
69
heiheidewo 2020-04-24 14:38:48 +08:00
@ayavvv 但是面试没法考察你的业务知识啊,所以还是面算法。实际工作中,还是查各种问题比较费神,算法好点的人思维大概率会比较好吧
|
70
DelayNoMay 2020-04-24 15:02:24 +08:00
算法题不能锻炼人文逻辑思维,只能锻炼数理逻辑思维
|
71
Ssskyl 2020-04-24 15:04:31 +08:00
锻炼优化的习惯
|
73
AngryMagikarp 2020-04-24 15:12:35 +08:00 2
不大,除非是做特定领域业务的。对于大部分程序员,与其看算法,还不如把网络协议、操作系统、数据库、代码组织等知识掌握了。
多少程序员连 HTTP 协议到底怎么回事都不搞清楚,多少程序员连 Network unreachable 这样的提示都看不懂。 大公司用算法面试,就是因为他们是大公司,一切都是“规范化”的,并不是说他们需要懂什么算法的人,只是他们需要有一套统一,但又不太差的筛选标准而已。招进去绝大多数依然和算法没关系。 |
74
gggxxxx 2020-04-24 15:44:27 +08:00
其实没啥用。当然个人兴趣还是不错的。
我心目中的优秀程序员是学习能力强和执行力强的那种。开口就是刷了很多题的那种程序员在我心目中是比较 low 的。有那精力不如自己多写点发挥自己想象力的程序,就跟木匠一样,自己有时间打几套家具出来,比什么都强。 编程开发拼的是思维和眼界以及勤奋,死抠一些小的技术点或者算法,说直白点跟孔乙己有什么区别。 |
75
cs419 2020-04-24 16:22:34 +08:00
对于招聘
公司招个会计,要求会 office , 但要求会装系统合适吗 菊厂招人开发个操作系统,应聘人不懂操作系统原理合适吗 方向不同,价值不同 人家就想爬点漂亮 MM 的图片,用 python 一天搞定了,谁会先花个十天半个月去学算法。 创业公司刚起步,那肯定是 if else 的一坨代码先把产品做出来。 要等你分库分表、异地多活、ddd 啥的,公司先破产了。 百度、淘宝、谷歌、12306 他们的服务要是不对代码进行优化 再牛掰的硬件也扛不住流量的冲击 20%的技能 解决 80%的需求 剩下的 20%需求 需要用另外的 80%技能去解决 |
77
Anarchy 2020-04-24 19:35:41 +08:00
和做数学题一样
|
78
zjyl1994 2020-04-25 00:10:54 +08:00
感觉到处都在考算法,就很难顶
|
80
polebug 2020-04-25 11:29:49 +08:00
刷算法题就像健身 如果只刷几周 根本没用
|