作者yauhh (哟)
看板Soft_Job
标题Re: [讨论] 大家对新人程式的要求?
时间Sun Sep 21 13:04:13 2008
有点担心一般的面试官出程式题会渐渐带往偏差的方向,
使面试者试久了,就学到一种投其所好的思维,
将来思考任何程式都以快为准则,却没有思考写程式的其他有趣的地方,
例如Knuth称程式设计之艺术的那些方面.
有句话说:资讯安全的程度,就像链条一样,强度等同於最弱的那一环.
比拟这点,程式的效率,差不多可以说是
「跟全部程式中效率最差的那一段程式码一样差」,
要说你写的程式很快,必须保证效率最差的环节也是最快的,才能算数.
并不是养出随手就写出最快的程式码就算是可录取.
如果有高人是这个样子,顶多称为程式界的激进份子兼为优秀的第一线程式工.
这种人或许在第一线写程式很猛,思考流程稍微可以,但创意就不见得可以.
把程式的写法要求到极端是很恐怖的,例如:
for (i=10; i>0; i--) s += i;
本来C/C++提供的好功能让你随便写for回圈都可以,但是一旦为了快,
从 1 加到 10 非这麽写不可. 激进的面试官只喜欢看到这个答案.
但是,进行工作的时候,若是老想着每一个环节都要最快,
就是pre-mature optimization的毛病了.
而许多大工具和大架构的效能调校,通常不是把局部程式码修得很快.
因此,我个人当面试者也是反看面试官的态度,
如果他只关心程式叙述层级的问题,差不多就知道是要找个工人而已.
这种工作我也不想要.
我很幸运找到了稍微高层一点的职位,让我能够有一些思考问题解决的空间.
很好奇,有没有人找程式工作,在专长栏不特别指出会哪些语言和工具?
有人敢写专长是problem solving或architecture performance tuning吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.231.69.71
※ 编辑: yauhh 来自: 61.231.69.71 (09/21 13:05)
1F:推 psliurt:我程度不是很好,但是 文中的那个程式是无穷回圈吗? 09/21 13:30
2F:推 ericinttu:i-- 吧. 另外不会是无穷回圈, 会回到0的 09/21 13:34
3F:推 iincho:看你职位, 你应徵高阶一点的位子就有机会...:p 09/21 13:34
4F:→ ericinttu:s也要给初始值才行 09/21 13:34
5F:→ ericinttu:对不起 班门弄斧了 orz 09/21 13:35
※ 编辑: yauhh 来自: 61.231.69.71 (09/21 13:38)
6F:推 iman00b:更极端的应该是 for (register int i... (敲昏拖走) 09/21 16:21
7F:推 SILee:"register int i"这样的写法compiler不见得会理你XD 09/21 17:00
8F:推 kerickuo:呃... 这个不是用 int n=10; (1+n)*n>>1 就解决了吗? 09/21 17:21
而且我文章重点不在於有没有创意,
而是在於你面试一个人是要给他足够的发挥空间,看他能表现的限度,
或者是以一种限制再限制的"超高效程式"思维去吓唬面试者,
对他们示威说:如果你程度不到这样的位置,就不要投履历来我这边.
但我真的要再三强调,我绝对没有攻击他人缺创意的意思.
那些意思如果是你自己加的,不要把它塞到我这边.
※ 编辑: yauhh 来自: 218.160.213.114 (09/21 19:55)
※ 编辑: yauhh 来自: 218.160.213.114 (09/21 20:02)
9F:推 leicheong:可以用assembly language写inline function吗? :p 09/21 20:03
10F:推 leicheong:另外problem solving那些... 我会觉得很难形容吧. 09/21 20:07
11F:→ leicheong:要知道programming本身就是problem solving, 要把这列出 09/21 20:07
12F:→ leicheong:来恐怕这能力的强度需求不会是一般的高... 真的提问时 09/21 20:08
13F:→ leicheong:解问题解得不够漂亮恐怕考官的印象分会直线下降呢... :P 09/21 20:10
14F:→ leicheong:至少我在当interviewer时就会这样想... 09/21 20:11
15F:→ yauhh:因为前面有人说,没有人在介绍自己专长是使用扳手的... 09/21 20:16
16F:→ yauhh:所以我在想,那一大堆人都写专长是C/C++,如果不要这麽写的话, 09/21 20:17
17F:→ yauhh:是不是应该写一些不会太不实际的专长,资料库调校就是一例 09/21 20:18
18F:→ yauhh:另外,考题的质量上,以乘法为例,有一些程式写法会用加法巧妙 09/21 20:28
19F:→ yauhh:替代;但是实际工作的处理上,不会随时都在想这个优化方式 09/21 20:29
20F:→ yauhh:这样,是不是说,把考题换成高层次一点的题目比较有意义? 09/21 20:30
21F:→ TKyo:如果 "1 加到 10" 是固定要做的, 直接定义结果常数就好 09/22 18:11
22F:→ TKyo:也不用跑回圈去计算, 前提是它是 "固定" 要做的 09/22 18:11