考手写代码是否真的有意义?

2016-05-31 01:06:32 +08:00
 yuhuan66666
听朋友说有点面试要求手写代码,请问这样的真的有意义吗?
10589 次点击
所在节点    Java
61 条回复
mengzhuo
2016-05-31 13:09:48 +08:00
手写确实蛋疼
面试时碰到过手写质数筛、 lru 、 floodfill
wizardoz
2016-05-31 13:16:09 +08:00
就好比说足球队招人考踮球有意义吗?比赛的时候踮球能踮得分?
但是对一比较初级的球队来说(比如少年队),这个还是是很有意义的,原因不用说了吧。
对于比较高端的招人,比如 C 罗和梅西的转会,就不会考查他们踮球。但是并不代表他们不会。
msg7086
2016-05-31 13:16:37 +08:00
考手写代码的大多是大公司。
人家年薪 100K 放在那,一个星期几十个人投简历,一个月光现场面试就有十几人,你怎么筛选人啊?
给你个 IDE 一个 Google 一个爆栈网让你写代码,十几个人都能写出来,让你从里面挑 2 个你怎么挑?
SourceMan
2016-05-31 13:18:45 +08:00
楼上的不要自己不行就认为此举没有意义
wshcdr
2016-05-31 14:11:49 +08:00
对公司而言,手写代码是成本最小的筛选方式
ilikekindle
2016-05-31 14:26:00 +08:00
也许将来会有人来提问:“程序员手敲代码是否有意义?”
iamjs
2016-05-31 16:30:33 +08:00
有。。。前端 面试 简单 css 测试
有 1/10 的人 margin border padding 写错。。。
5/10 的人 radius 写错, moz ms webkit 写错
jarlyyn
2016-05-31 16:32:46 +08:00
非常有意义。

当然,如果是考拼写就没意义了。
Cloudee
2016-05-31 19:00:42 +08:00
就我面过的手写代码的面试而言,逻辑没问题的情况下,少量的拼错是没问题的,甚至不太清楚的方法还能问面试官,面试官当时拿电脑查了 javadoc 给我。但是写的递归出不来,边界条件下运行出错估计就要扣分了
pH
2016-05-31 19:02:03 +08:00
@mengzhuo floodffill ?是啥。 LRU 是让你写一个实现的数据结构出来么?
youKnowDai
2016-05-31 20:15:09 +08:00
mengzhuo
2016-05-31 23:11:18 +08:00
@pH 自己 Google 去
lru 还要求无错 某头条的面试题
对了 还有 n 叉树 dfs 找所有父节点 某雷的面试题
蛤蛤蛤
nomemo
2016-05-31 23:17:56 +08:00
你可以不会写,但有人会写就可以了
然后招会写的
maomaomao001
2016-05-31 23:19:19 +08:00
@odirus 可是,纯文本环境也和纸上写没啥区别啊~~
没有只能 IDE 的时代~~无法想象能写大应用
手写的话,算法,数据结构还行~~~ 大一点写在纸上太恶心了~~~
msg7086
2016-05-31 23:45:20 +08:00
@maomaomao001 请搞清楚我们讨论的是面试,不是让你 20 分钟写出一个操作系统。
我说个某位在 Google 的朋友给我 Mock interview 时候的题目好了。

给一个包含若干英文单词 / 句子的字符串。
比如 "Hello world boy"。
逆序单词,但保持单词内的字母顺序不变。
比如 "boy world Hello"。

需要用到 IDE 吗?
如果 Google 的面试题都不需要用到 IDE ,那别的公司我觉得应该也不需要用到了。
janxin
2016-05-31 23:59:41 +08:00
一般我都是要求先说实现原理,然后自己实现一下,当然也不会要求能编译通过。一个是基础到底是不是扎实,尤其是算法数据结构这些基础;另外一点是看从思路到代码的能力是不是过关。

SGOP 这种我都是直接 pass 了
matthewz
2016-06-01 00:02:43 +08:00
这都是 Google 之类的公司先搞出来的

但问题是, 国外的 FLAG 题目很多都是不需要特别的算法知识, 比如贪心是纯粹拼智商.我反正真的一次需要高级数据结构的题目都没碰到过, 基本都是拼实现的题目, 动规, 递归.

而国内各大公司出题简直丧心病狂, 听说 KMP 红黑都有, 根本不考虑候选人未必学过某些知识就出题. 百度之前考过三门问题简直神经的可以. 说白了就是中国人多, 爱咋出咋出都行, 反正也都是天天加班干苦工.
incompatible
2016-06-01 00:35:41 +08:00
曾经面试一个小公司,手写 jdbc 写到面试官潸然落泪,说是面了这么多终于遇到一个靠谱的。
之后我面试别人时也会加上这道题。

Java 那么多 ORM 框架,刨根到底无非就是对 jdbc 的封装。所以面试时看对方会不会 jdbc ,基本就能看出来他刨根问底的 欲望有多强。
mikegreen7892003
2016-06-01 00:59:53 +08:00
手写代码可以看看 coding 的基本功,思路是否清晰,做事是否认真,等等。

coding 基本功:
对代码的基本用法是否熟悉。比如 Python:

def foo(one_default_dict=None):
if one_default_dict is None:
one_default_dict = {}
balabala

def foo(one_default_dict=None):
if one_default_dict:
one_default_dict = {}
balabala

def foo(one_default_dict=None):
one_default_dict = one_default_dict or {}
balabala

我一般就会让面试的人手写一个默认值会是 dict 的例子,上面几种写法都说得过去。然后可以问问为什么这么写。经常写代码并且有思考的人,很容易说出所以然来。反之亦然。


思路是否清晰:
不同人写代码有不同风格。对于三五行的代码,有些人喜欢想好再写,有些人喜欢写好再改,都是 okay 的。
而思路清晰的人,在这么短的代码里,能够比较容易看出自己代码的逻辑错误,所以基本不应该写错。


做事情是否认真:
程序员嘛,最重要的考核标准之一当然是写代码是否认真。而当场手写代码是最容易看出来的方式。


顺便说,有些人抱怨自己有 9 分能力,却只能面试出 6 分,但别人有 3 分能力,却能面试出 9 分。
而手写代码这回事,一般不会被高估。实际上会给大家一个更公平的面试环境。
是骡是马,拉出来溜溜呗。都是程序员,手写代码谁怕谁呀~

至于有些人认为 IDE , Google, StackOverflow 能够解决问题即可。
我想说的是,对于有一年或者以上工作经验的人来说,手写三五行代码只是非常基础的能力。如果这点都做不到的话,很难让人相信能把大的模块做好。
当然,最坑的是,这样的人挖的坑,谁来填,谁来填,谁来填!(因为他们往往看不出自己抄的代码到底哪里有问题。)

当然,我这些观点都是作为面试官的角度来看。大部分公司都希望招到能干活能解决问题的程序员。考察手写代码是能够在最短时间内看出很多东西的方式吧。也许有所偏颇。
顺便说,我就没见过学得会手写代码的人学不会用 IDE , Google, StackOverflow 解决问题。嘿嘿嘿~
maomaomao001
2016-06-01 10:31:59 +08:00
@msg7086 这个 手写 IDE 写完全一样啊。所以,用纸的(相比于不用 IDE ) 的 尤特点在哪里???

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

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

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

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

© 2021 V2EX