我的一道面试题:设计一款计算器
开发一个能够实现“+”、“-”、“x”、“/”、开方、平方等常用功能的计算器:
1. 请给出该计算器的UI设计图;
2. 请给出该计算器程序中类的结构和类间关系(包括类的继承、调用等关系)
这是单位这两年招聘笔试题的最后一道。不出所料,做过这套卷子的近百名学生里,在第一问上,千篇一律的给出了如下答案:
当然,如果真的是画成这样,肯定也能让我颇感欣慰。可惜准确说来,大多数人给出的答案是下面这样:
我认为是题目缺乏必要的引导,于是又在第一问的句末加了一句话:“请尽量突破传统计算器UI样式”(注意,是用粗体标明的)。结果出现了这样的答案:
然并卵。于是后来,我干脆把这道题目变成一个开放性的面试题目,或者在群面中把这个问题拿出来,让大家来讨论。
事实上,问题的答案是次要的,我并不期望在诸多的答案中捡到一颗金子,我期望的是了解面试者应对这种问题的思路,从而了解他是否是:
一个热爱生活的人?
所谓“用户思维”,最直观感性的切入点,就是把自己当做用户,去思考:我在使用传统计算器的过程中,有没有遇到什么槽点。产品经理本身也是用户,一个热爱生活的人,总能成为自己的用户,发掘原始需求。
有一个槽点相信说出来,大家都有共鸣,但很多面试者却没有提出。传统计算器一大痛点就在于中间结果的记录,尤其是多步计算存在优先级关系的时候。有些计算器支持列式计算,先不说在传统的狭长形显示屏上显示硕长的算式有多么丑陋,就说输入括号时,盯着得左右匹配,还要不时的前后移动光标,就足够人眼花缭乱了。这绝对是一种乔布斯所说的把复杂问题复杂化的半截子解决方案,毫无优雅可言。当然简单的计算器,比如本文第一幅图,可以使用“MC”、“MR”、“MS”、“M+”这四个键。不过我承认自己的笨拙,宁愿继续用脑子死记中间结果,也不想弄清楚那四个键是什么玩意。
看看这款在iPad上使用的全能计算器iHandy Calculator是怎么设计的吧。
首先它采用了带封套的传统经典款计算器设计。翻开之后像个记事本。注意中间还真设计了笔插,上面的调色板图标是用来更换软件肤色的。显而易见,左半边是用来手写草稿和记录历史结果的。设计的如此拟物和直观,没有必要再多解释了。
一个喜欢尝鲜的人?
寻找已有同类产品是另一个再自然不过的切入点,不就是竞品分析嘛。当然,笔试是闭卷的,不能现查,只能靠平日的积累了。实际上,我的手机上倒是装着一款计算器——MyScript Calculator。其作为App Store精华级软件,一直在效率类排行榜的前列。当然,也有Android版。
这是一款为触屏而生的手写计算器,从上面官方图片的例子就可以看出,它相比传统计算器,针对复杂公式,可堪完胜。
如果有面试者提到了这款软件,多多少少能说明他是一个会注意到各种新奇玩意的人。毕竟在所有系统都自带计算器的情况下,肯去关注第三方的计算器,要是还下载体验了一下,说他喜欢尝鲜也不是没有道理。
一个思路清晰的人?
一下子就能想到一个点子,那叫灵感。没有灵感怎么办?就要靠思路做系统性的推导。最怕脑子一片空白,只顾着羞涩的同学。
系统性的切入点在哪?就是用户和场景。这个计算器,谁,在什么情况下用。弄不清楚用户和场景,压根就不应该动手。之所以系统自带计算器不会玩出什么花样,那是因为它面对的是普遍需求和普适场景。如果要做细分领域的计算器,借助思维导图对用户和场景分分类,就很容易产生一些想法。
场景也包括用户设备,是电脑还是平板还是手机?如果支持语音和拍照,是否能玩出别的花样?最起码语音可以解决部分残疾人的简单计算需求。不过语音是线性的,这就意味着它仅适合于连续加减乘除这种同样线性的简单运算。拍照是手写计算的补充。用老罗常说的“胡萝卜粗的手指”在5寸的触屏上写写画画其实很笨拙。如果在纸上写好算式,直接拍照求解,会更优雅。代价是复杂的识别算法,以及要有纸笔。
还有哪些好的想法?
请留言。
PS:拍照计算不一定要拍算式。比如拍一下那种画勾的菜单,就能算出你点了多少钱……