作者sorryla (Mr.东)
看板Soft_Job
标题Re: [请益] Leetcode刷一轮到能面试的程度要多久?
时间Sat Dec 22 07:35:34 2018
一个刚结束面试地狱的人来分享一下个人心得,不过可能不适用於台湾职场...
很多人都以为面试跟考试一样,给你一个题目,写出正确答案就拿满分,
然後拼命地刷累积题数,深怕考试考到自己没看过的题目就挂掉。
但其实面试结果的评量并不是只有一个面向,并不是说你写对就过,写错就没过,
而是分成好几个讯号来做评分:
1. 沟通能力:
我很喜欢敝公司人资找我去面试前说的一句话,他说「不要把面试官当考官,
而是把他当同事。」,面试其实就是让面试官来评量看看你适不适合当他的同事。
当有一个新的问题出现时,你要怎麽和你的组员一起解决那个问题?你是不是可以跟
同事保持专业的讨论,包容新的想法,不让个人情绪影响工作?
所以当白板题出来时,第一件事情不是写code,而是先跟面试官讨论想法,确定问题
是否是你理解的那样,然後提出你想到的解法,分析优缺点,是否有corner case,
最後双方都同意了之後才需要开始写code。
2. 系统性地解决问题的能力:
工程师最有价值的地方其实是找出解决问题的方法,而且可以系统化地运用工具去解决。
考演算法白板题最大的好处就在於这些题目通常scope不大,45分钟或1小时通常就可以
提出一些解法。演算法本身就是一种工具,他们的存在就是为了解决一些常见的问题。
系统设计的题目也是要看你如何解决问题,只是题目更加开放性,通常不可能在短时间
内就提出完美的作法(现实生活中也不会有完美的做法),但可以提出一个大方向,
并对其中几个部分有更深度的了解。
3. 化抽象为具体的能力:
身为一个码农,要能把code写出来是非常重要的事情,当你提出了做法的时候,你还需要
把你的想法转化成实际的程式码才行,如果你讲得一口好演算法却写不出来,就很容易被
当作只会说说的人。另外,概念和实作总会有一点差距,例如程式语言的限制,机器资源
的限制等等,这些都是在面试写code中很好的观察与讨论的点。
4. 产出具有Industrial standard结果的能力
这个对刚毕业的人比较比较无法体会。虽然每一家公司都有自己的标准,但还是一些共同
的基准可以当参考。如果你是个软体工程师,从你写的code里面多少可以看出来是否达到
低标。最简单的就是变数命名是否有意义,程式码是否足够精简,没有不必要的code等等
,现场考写code的话可以让面试官更快的得知这个讯息。
综合来说,面试考现场写code算是一个对公司来说CP值很高的作法,能获得的讯号多,花
的时间又相对少,找进来的人又大多符合预期,所以很多公司还是会采取这样的方式。至
於台湾的公司是不是只学半套就不知道了...
回到原文问的问题,刷leetcode的重点绝对不是刷了几遍刷了几题,而是你是否因为刷题
而改进你的“录取我吧”的信号(第2和第3点)。比起题数,更应该注意的是你是否因为
这题而让你对工具(演算法)的使用更加熟练,进而拿它来解决新问题。虽然目前题目数
已经增加到900题,但绝大多数题目都还是用常见的工具去处理,例如BFS, DFS, sort,
hash, binary search等等。如何能够将这些东西用在提出解法,并且熟练的实作出来,
才是写leetcode更重要的意义。之前一亩三分地有个题霸各种刷好刷满,面试几乎全都
秒写最佳解,却一个offer都还没拿到。反而有许多写2.300题的人拿了不少offer。
不能否认的确有些人靠着刷题背答案再加上运气好遇到只出题库的面试官而拿到offer,
但是不该把这些特例当作常态。没有一个面试的系统是完美的,其中有很多trade off,
但是只要录取进来的能有80%是符合预期的就已经很不错了,剩下的就是利用淘汰机制
来处理掉面试系统过滤不掉的人。
至於有些人说考这些不如考工作上会用到的东西,我个人认为这是很困难的事情,因为
不同公司、不同部门、甚至不同人用的工具就有可能差很多,而且没有两个职缺需要的
东西是一模一样的。即使是同样的framework来说,面试官可能随手考一个他最近刚用到
的function但你可能从来没看过,这样一来就无法评断一个人解决问题的能力,而只能
知道这个人有没有用过某种特定的东西而已,这种结果对於找正确的人进来也不会有太大
的帮助。
最後还是声明一下,以上是个人在北美面试的经验,台湾职场可能不适用QQ
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 104.132.51.89
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1545435337.A.B03.html
1F:推 poc7667: 好文 收藏了 12/22 07:49
2F:推 gofigure: 从上面一串推文就知道 还是一堆死读书的思维 不懂沟通 12/22 07:54
3F:推 Y78: 好文推推 12/22 08:11
4F:推 andy188: 推 12/22 08:17
5F:推 cjamhe01385: 推~当同事来谈那句很不错 12/22 08:19
6F:推 gofigure: 其实这边把奥义讲出来了 心态对了 offer跟着来 12/22 08:25
7F:推 pg30123: 推 12/22 08:50
8F:推 Gaitz: 好文 给推 12/22 08:51
9F:推 es8603: 推 12/22 08:57
10F:推 yamakazi: 还要刷两三百题才拿得到offer 这边会说刷三百题浪费时间 12/22 09:19
11F:→ yamakazi: 真的要刷三百题 full time也要1~3个月 这边只会说工作用 12/22 09:21
12F:→ yamakazi: 不到浪费时间 对写code没帮助 12/22 09:21
14F:→ yamakazi: 狂 照着做很难 所以我觉得刷三百题起码要半年 12/22 09:26
15F:→ yamakazi: 整天说刷题浪费时间的不可能叫他去刷半年三百题 12/22 09:26
16F:→ yamakazi: 这边的风向是 面试只能问过去工作经验 聊聊天就拿offer 12/22 09:31
17F:→ yamakazi: 面试前刷三十题easy就堪用 考超过这些范围的公司就是自 12/22 09:32
18F:→ yamakazi: 以为是+浪费考生时间 12/22 09:32
19F:→ yamakazi: "我资深工程师耶 居然问我BST怎麽实作 API call一下就好 12/22 09:34
20F:→ yamakazi: 原理google找一下就有的东西 问我这个浪费时间" 12/22 09:34
21F:→ yamakazi: "现实工作中有谁会真的自己实作BST 工作又用不到" 这样 12/22 09:35
22F:推 GX90160SS: 因为是两个世界的人啊,楼上写韧体、驱动、演算法的, 12/22 09:45
23F:→ GX90160SS: 考这些本来就很正常,App、Web前端应用的真的很少用到 12/22 09:45
24F:→ GX90160SS: 啦 12/22 09:45
25F:推 GX90160SS: 後者更加注重对框架的熟悉程度、程式码撰写风格、可维 12/22 09:48
26F:→ GX90160SS: 护性和设计模式,这些都用不到演算法 12/22 09:48
27F:推 acer1832a: 推第三点,个人觉得这一点很重要。十年前还是大学生时 12/22 09:50
28F:→ acer1832a: 有的人资料结构考试都80、90以上。刚好那时数独刚流行 12/22 09:51
29F:→ acer1832a: 老师出作业,叫大家写程式来解数独(低难易度题目) 12/22 09:54
30F:→ yamakazi: 所以我说这篇刷三百题还是太多 现在风向是刷超过三十题 12/22 10:02
31F:→ yamakazi: 就是浪费时间 12/22 10:02
32F:→ acer1832a: 结果大概只有五个人写得出来,其它人都写不出来用抄的 12/22 10:04
33F:推 SmallpTsai: 推这篇, 建议m起来 12/22 10:04
34F:→ acer1832a: 用抄的还被助教抓包XD 12/22 10:04
35F:推 DCTmaybe: 实用推~ 12/22 10:22
36F:推 rr8r8r8r8tw: 前端被考BST的路过 12/22 10:32
37F:推 freepenguin: 推~ 12/22 10:45
38F:推 coronach: 前端跟app人多 带出来风向当然是不刷题啊XD 12/22 11:26
39F:推 lance8537: 推大神 然後某楼干嘛那麽激愤 被嘴喔 12/22 11:41
40F:推 TheOneisNEO: 跟中学生问说算这麽多数学干嘛 不是都计算机就好了? 12/22 11:46
41F:→ TheOneisNEO: 有几分神似. 其实就是有地方用的到. 不想做且确定不 12/22 11:47
42F:→ TheOneisNEO: 会用到 自然不碰也还行 12/22 11:48
43F:推 fake01: 推 12/22 12:06
44F:推 oscarchichun: 好文 12/22 12:27
45F:推 yyhsiu: 推这篇。其实很多乡民就是喜欢自身经验套到所有人,阿不就 12/22 12:33
46F:→ yyhsiu: 有些公司/职位这样考有其意义,有些确实不恰当 12/22 12:33
47F:推 Ekmund: 适性问题...唉 12/22 12:45
48F:→ angusyu: 某人崩溃什麽,要刷就去刷,祝你刷到一飞冲天 12/22 12:48
49F:推 bitcch: 这篇正解 12/22 13:16
50F:推 THEWORLDS: 这篇算可以 可惜没写到主要是会考量你的思维方式 12/22 13:39
51F:→ THEWORLDS: 刷题说真的对我们这懂顶尖人士来说真的不难 12/22 13:39
52F:→ THEWORLDS: 可是差别就在於当下思维的方式 有时候第一时间出来的 12/22 13:39
53F:→ THEWORLDS: 思维可能会影响整个公司的运作或是让这服务多百E盈余 12/22 13:40
54F:→ THEWORLDS: 不过老话一句 如果没有想要到顶尖的公司去上班或是当个 12/22 13:40
55F:→ THEWORLDS: 4.5万低阶码农的话 就直接pass这种刷题文章吧 12/22 13:41
56F:推 Parazicecum: 这篇说的没错啊 刷题重要的本来就不是死背吧 12/22 14:21
57F:推 bnd0327: 推推 12/22 14:23
58F:推 LERICAL: 推 12/22 14:26
59F:推 bewitchsky: 推 12/22 15:04
60F:推 jj0321: <<北美职场>> ...QQ 12/22 15:27
61F:推 t64141: 可以M起来+1 12/22 16:13
62F:推 plover: 生命会找到出路,碰到要刷题的面试躲也躲不过,不如摸摸鼻 12/22 17:58
63F:→ plover: 子想办法克服。 12/22 17:58
64F:推 fayhong: 完全同意! 12/22 18:54
65F:推 sean2449: 推 12/22 19:10
66F:推 molopo: 推 12/22 19:37
67F:推 starburs: 好文推推 12/22 20:20
68F:推 david0424: 推 12/22 20:24
69F:推 Mtcat: 12/22 23:42
70F:推 kyo22222: 推 12/22 23:53
71F:推 newyellow: 好!! 12/23 01:34
72F:推 cha122977: 本篇正解 别用考试那套来面 12/23 08:51
73F:推 chocopie: 好文 12/23 10:46
74F:推 siriusu: 这篇中肯 很多人都以为刷题重点式题目本身而言 12/23 11:22
75F:推 oneword416: 推 12/23 12:46
76F:推 hohamita: 推推 12/23 14:55
77F:推 y800122155: 推荐这篇文章 12/23 15:52
78F:推 loadingN: 太正向了 12/23 17:08
79F:推 stupid0319: 台湾有台湾的玩法 12/23 17:11
80F:推 lsc36: 推 12/23 19:54
81F:推 sphoenix: 推 12/23 22:35
82F:推 jack7923love: App不刷题? 我遇过算法融入框架叫你coding的 12/23 23:06
83F:推 SJYJ: 推 12/24 00:57
84F:推 zebraseven: GOOD 12/24 01:15
85F:推 eric525498: 推 12/24 14:04
86F:推 edwardhw: push!! 12/25 13:05
87F:推 giantwinter: 推 12/26 00:01
88F:推 shiangenlu: Push收藏 12/27 08:32
89F:→ lukelove: 刷题就是for面试 01/12 16:52