boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 新鲜A家电面……请问设计题怎么算回答得好?
相关主题
onsite scheduling没给面试官名单,要名单不好呢?
G家面试scheduling会给面试官的名字嘛?
GM面经
问个priority inversion 的题目, wiki跟书上不一样
面试前可以把烙印面试官换掉么?
面试前interview schedule定下来以后可以问recruiter面试官的名字吗
生活真是难啊
问一道system design的题
狗家Onsite不能提前知道面试官吗?
【设计模式】要达到啥水平?
相关话题的讨论汇总
话题: design话题: shuttle话题: pattern话题: 设计话题: scheduling
进入JobHunting版参与讨论
1 (共1页)
t********e
发帖数: 344
1
刚面的,觉得面官是一个senior的人,寒暄了5分钟就让design an airport shuttle
scheduling system。
我先问了一些需求,他就挤牙膏一样问一点答一点,或者说you can decide by
yourself first, we will then check it later。好吧,我就摸着石头过河,写了几
个classes和function signatures。
然后他要我walk through the scheduling process,之间也是好多的unclear
requirement, 我就不停的问+修改design。最后时间用完,就道别了……
请问大牛们,这样的设计题interviewer希望看到怎样的答案呢?主要是考察什么呢?
l***i
发帖数: 1309
2
我每次看到别人说设计题就想quit
a********x
发帖数: 1502
3
看head first design pattern

【在 t********e 的大作中提到】
: 刚面的,觉得面官是一个senior的人,寒暄了5分钟就让design an airport shuttle
: scheduling system。
: 我先问了一些需求,他就挤牙膏一样问一点答一点,或者说you can decide by
: yourself first, we will then check it later。好吧,我就摸着石头过河,写了几
: 个classes和function signatures。
: 然后他要我walk through the scheduling process,之间也是好多的unclear
: requirement, 我就不停的问+修改design。最后时间用完,就道别了……
: 请问大牛们,这样的设计题interviewer希望看到怎样的答案呢?主要是考察什么呢?

d**********x
发帖数: 4083
4
design pattern is design pattern...

shuttle
了几
呢?

【在 a********x 的大作中提到】
: 看head first design pattern
s***y
发帖数: 203
5
就一道设计题啊?
t********e
发帖数: 344
6
嗯 是的 一小时 就这一道题 ……

【在 s***y 的大作中提到】
: 就一道设计题啊?
t********e
发帖数: 344
7
why?

【在 l***i 的大作中提到】
: 我每次看到别人说设计题就想quit
l****o
发帖数: 315
8
我觉得如果不是很熟练design pattern.临场突然要我说用什么pattern最合适.我肯定
不行.
我答题就按三步:
1.确定会有哪些class.
2.这些class之间的关系.
3.每个class里会有哪些方法.
这样一是自己理清思路,二是然面试官知道你怎么想,他才可以帮你改进.
d**********x
发帖数: 4083
9
re.
而且design pattern不是design。。

【在 l****o 的大作中提到】
: 我觉得如果不是很熟练design pattern.临场突然要我说用什么pattern最合适.我肯定
: 不行.
: 我答题就按三步:
: 1.确定会有哪些class.
: 2.这些class之间的关系.
: 3.每个class里会有哪些方法.
: 这样一是自己理清思路,二是然面试官知道你怎么想,他才可以帮你改进.

A**u
发帖数: 2458
10
先分析,
找共同点,找变化,
再看什么设计模式好用,
再设计
一上来就些类,写函数,是不对的

【在 t********e 的大作中提到】
: 刚面的,觉得面官是一个senior的人,寒暄了5分钟就让design an airport shuttle
: scheduling system。
: 我先问了一些需求,他就挤牙膏一样问一点答一点,或者说you can decide by
: yourself first, we will then check it later。好吧,我就摸着石头过河,写了几
: 个classes和function signatures。
: 然后他要我walk through the scheduling process,之间也是好多的unclear
: requirement, 我就不停的问+修改design。最后时间用完,就道别了……
: 请问大牛们,这样的设计题interviewer希望看到怎样的答案呢?主要是考察什么呢?

相关主题
问个priority inversion 的题目, wiki跟书上不一样
面试前可以把烙印面试官换掉么?
面试前interview schedule定下来以后可以问recruiter面试官的名字吗
生活真是难啊
进入JobHunting版参与讨论
d**********x
发帖数: 4083
11
我更喜欢从 well-structured 代码开始 refactor to patterns。
一开始就用设计模式往上扣的话,可能会跑偏了。。

【在 A**u 的大作中提到】
: 先分析,
: 找共同点,找变化,
: 再看什么设计模式好用,
: 再设计
: 一上来就些类,写函数,是不对的

g**e
发帖数: 6127
12
NYC office? 这不是我给我老板的题嘛

【在 t********e 的大作中提到】
: 刚面的,觉得面官是一个senior的人,寒暄了5分钟就让design an airport shuttle
: scheduling system。
: 我先问了一些需求,他就挤牙膏一样问一点答一点,或者说you can decide by
: yourself first, we will then check it later。好吧,我就摸着石头过河,写了几
: 个classes和function signatures。
: 然后他要我walk through the scheduling process,之间也是好多的unclear
: requirement, 我就不停的问+修改design。最后时间用完,就道别了……
: 请问大牛们,这样的设计题interviewer希望看到怎样的答案呢?主要是考察什么呢?

l****o
发帖数: 315
13
幕后终极BOSS现身了...

【在 g**e 的大作中提到】
: NYC office? 这不是我给我老板的题嘛
p*****2
发帖数: 21240
14
我觉得这种题恶心的是根本就不熟悉这种系统。面试官也不先给讲讲。
g**e
发帖数: 6127
15
其实就是个优化consumer/producer系统的问题,我在隔壁版提到过类似的题,换了个
问法。现实中应用广泛

【在 p*****2 的大作中提到】
: 我觉得这种题恶心的是根本就不熟悉这种系统。面试官也不先给讲讲。
p*****2
发帖数: 21240
16

所以像我这样用C的去你家就只能跪了。我根本就没用过design pattern。

【在 g**e 的大作中提到】
: 其实就是个优化consumer/producer系统的问题,我在隔壁版提到过类似的题,换了个
: 问法。现实中应用广泛

g**e
发帖数: 6127
17
这是设计题,不是design pattern.
设计题一大误区就是上来就搞class/interface class diagram
design跟design pattern完全不是一回事

了个

【在 p*****2 的大作中提到】
:
: 所以像我这样用C的去你家就只能跪了。我根本就没用过design pattern。

p*****2
发帖数: 21240
18

consumer/producer我从来没用过怎么整?

【在 g**e 的大作中提到】
: 这是设计题,不是design pattern.
: 设计题一大误区就是上来就搞class/interface class diagram
: design跟design pattern完全不是一回事
:
: 了个

c***n
发帖数: 28
19
这个scheduling system 的 goal 是什么? shuttle不是每隔一段时间有一班吗?能
不能具体描述一下你的解释?

【在 p*****2 的大作中提到】
:
: consumer/producer我从来没用过怎么整?

p*****2
发帖数: 21240
20

我就是这个意思。我根本就不熟悉这个系统,面试管得先把需求解释清楚吧。

【在 c***n 的大作中提到】
: 这个scheduling system 的 goal 是什么? shuttle不是每隔一段时间有一班吗?能
: 不能具体描述一下你的解释?

相关主题
问一道system design的题
狗家Onsite不能提前知道面试官吗?
【设计模式】要达到啥水平?
F悲剧了,上面经
进入JobHunting版参与讨论
b***m
发帖数: 5987
21
难道上来就写class和interface不行?
t********e
发帖数: 344
22
不是 seattle的

【在 g**e 的大作中提到】
: NYC office? 这不是我给我老板的题嘛
t********e
发帖数: 344
23
嗯,我和面试官说了好几次: could you please specify the requirements more
clearly?
人家就是说you can go ahead with your understanding, we will check it later
汗啊~

【在 p*****2 的大作中提到】
:
: 我就是这个意思。我根本就不熟悉这个系统,面试管得先把需求解释清楚吧。

t********e
发帖数: 344
24
同问~
我看150里OO design部分就是让写classes啊

【在 b***m 的大作中提到】
: 难道上来就写class和interface不行?
d**********x
发帖数: 4083
25
好吧。你能问出这个问题说明你对软件开发流程还不是特别了解
理想世界里我们都以为需求是可以先定下来,然后程序员坐在那坑吃坑吃开发,然后软
件就出来了
实际上。。。

【在 t********e 的大作中提到】
: 嗯,我和面试官说了好几次: could you please specify the requirements more
: clearly?
: 人家就是说you can go ahead with your understanding, we will check it later
: 汗啊~

l*********8
发帖数: 4642
26
co-ask

【在 t********e 的大作中提到】
: 同问~
: 我看150里OO design部分就是让写classes啊

e***s
发帖数: 799
27
这个贴要跟进,请大牛解释一下这样的设计题如何下手啊~~~
p*****2
发帖数: 21240
28

感觉这种题只有A家出的来。我自己觉得莫名其妙。
我的分析是这样
我印象中我只有一次做机场的shuttle。好像是gate变动了,变到另外一个terminal了
。然后就座shuttle转过去了。除此之外,我啥也不知道。如果不告诉我需求,我砸
design呀?

【在 e***s 的大作中提到】
: 这个贴要跟进,请大牛解释一下这样的设计题如何下手啊~~~
p*****2
发帖数: 21240
29

这话说的。

【在 d**********x 的大作中提到】
: 好吧。你能问出这个问题说明你对软件开发流程还不是特别了解
: 理想世界里我们都以为需求是可以先定下来,然后程序员坐在那坑吃坑吃开发,然后软
: 件就出来了
: 实际上。。。

t********e
发帖数: 344
30
那面试官指望我怎样?
communication不也是面试的重点之一么……

【在 d**********x 的大作中提到】
: 好吧。你能问出这个问题说明你对软件开发流程还不是特别了解
: 理想世界里我们都以为需求是可以先定下来,然后程序员坐在那坑吃坑吃开发,然后软
: 件就出来了
: 实际上。。。

相关主题
问一道经典亚麻电面OOD题
MS 面试 schedule的问题
大公司, 没有Phone Interview, 真接让Schedule for testing
why companies like scheduling interviews in Dec???
进入JobHunting版参与讨论
l***i
发帖数: 1309
31
软件开发也不是只有A一家在做把。开发的时候花上一个月搞requirement也不稀奇。面
世一共就30min干政事的时间,要搞这种题。。。

【在 d**********x 的大作中提到】
: 好吧。你能问出这个问题说明你对软件开发流程还不是特别了解
: 理想世界里我们都以为需求是可以先定下来,然后程序员坐在那坑吃坑吃开发,然后软
: 件就出来了
: 实际上。。。

d**********x
发帖数: 4083
32
对的
先声明不代表公司意见。
上次A到我学校去招人做presentation,说他们首先是用最快的速度做一个prototype,
然后再iterate开发,因为没有prototype,需求都是扯淡,客户也不知道要什么,开发
者也不知道在扯什么。
当然这可能和公司风格或者是组的风格有关系。

后软

【在 t********e 的大作中提到】
: 那面试官指望我怎样?
: communication不也是面试的重点之一么……

d**********x
发帖数: 4083
33
这是个哲学问题
requirement是不是就等于提问回答写文档,见仁见智。

【在 l***i 的大作中提到】
: 软件开发也不是只有A一家在做把。开发的时候花上一个月搞requirement也不稀奇。面
: 世一共就30min干政事的时间,要搞这种题。。。

p*****2
发帖数: 21240
34

连requirement都没有搞什么prototype?

【在 d**********x 的大作中提到】
: 对的
: 先声明不代表公司意见。
: 上次A到我学校去招人做presentation,说他们首先是用最快的速度做一个prototype,
: 然后再iterate开发,因为没有prototype,需求都是扯淡,客户也不知道要什么,开发
: 者也不知道在扯什么。
: 当然这可能和公司风格或者是组的风格有关系。
:
: 后软

d**********x
发帖数: 4083
35
有最基本的啊,想要在最开始的时候弄清所有需求是不现实的
有点能看见的东西,才有讨论的基础。因为客户常常也不知道自己究竟想要什么东西。

prototype,
开发

【在 p*****2 的大作中提到】
:
: 连requirement都没有搞什么prototype?

p*****2
发帖数: 21240
36

那你说吧。airport的人找你要做一个shuttle scheduling 的系统。你问问需求,他们
就说你先设计吧,然后我们再讨论。这个make sense吗?如果要是一个自己熟悉的领域
,当然可以自己先发挥一下。

【在 d**********x 的大作中提到】
: 有最基本的啊,想要在最开始的时候弄清所有需求是不现实的
: 有点能看见的东西,才有讨论的基础。因为客户常常也不知道自己究竟想要什么东西。
:
: prototype,
: 开发

d**********x
发帖数: 4083
37
"我先问了一些需求,他就挤牙膏一样问一点答一点,或者说you can decide by
yourself first, we will then check it later。好吧,我就摸着石头过河,写了几
个classes和function signatures。"
你觉得你说的和lz描述的一样吗?抬杠就没意思了。

【在 p*****2 的大作中提到】
:
: 那你说吧。airport的人找你要做一个shuttle scheduling 的系统。你问问需求,他们
: 就说你先设计吧,然后我们再讨论。这个make sense吗?如果要是一个自己熟悉的领域
: ,当然可以自己先发挥一下。

p*****2
发帖数: 21240
38

嗯。实际情况我也不清楚。

【在 d**********x 的大作中提到】
: "我先问了一些需求,他就挤牙膏一样问一点答一点,或者说you can decide by
: yourself first, we will then check it later。好吧,我就摸着石头过河,写了几
: 个classes和function signatures。"
: 你觉得你说的和lz描述的一样吗?抬杠就没意思了。

F**p
发帖数: 1046
39
if you don't know what is an airport shuttle scheduler, you need to ask the
basic function of it. Without knowing the object, how can you do the design?
l*****s
发帖数: 279
40
I think the key is to find out the details of the requirements. Some points
to consider:
1. Assume there are N points to stop and Define routes (1 or multiple)
2. Define service time frame
3. Key goal: Maximize occupancy level for the fleet/Minimize # of shuttles
running at any given time
4. Constraint: Upper bound latency (for given time frames)
相关主题
code challenge 求助
给大家推荐点学习资料
On-site interview 之前的一点小变故
碰到这种Google recruiter怎么办
进入JobHunting版参与讨论
b***m
发帖数: 5987
41
Hotel reservation system他们也偶尔考考,大家也可以讨论一下。
h*u
发帖数: 122
42
mark
p*****2
发帖数: 21240
43

先说说你的思路吧。

【在 b***m 的大作中提到】
: Hotel reservation system他们也偶尔考考,大家也可以讨论一下。
b***m
发帖数: 5987
44

我就抛砖引玉瞎说两句吧。首先声明我不是什么大牛,也不是正经科班毕业,只不过在
实践中自学了一些东西而已。
碰到这种题,我一般首先假设各种条件和情况,如果跟考官心里想的情况有差别,他会
指出的。具体的条件和情况是什么其实不重要,也不是考题的本质,合理就可以了。假
设的东西先从简单的开始,然后总结出大体需要的数据,以及如何对数据进行抽象,有
哪些可能的容器(class),有哪些可能的接口(interface)。在此基础上,开始自顶
向下地写大概的class框架,以及其中的核心数据结构和成员,再根据数据罗列接口的
名字,最后再丰富和完善接口的参数。在写这些具体的class和interface时,尽量考虑
以数据结构为驱动的导向思想,也就是说,在情况和条件变化的时候,无需对class和
interface做任何修改。
不知道大家一般都怎么做这类题?

【在 p*****2 的大作中提到】
:
: 先说说你的思路吧。

p*****2
发帖数: 21240
45

大牛不要谦虚了。具体到Hotel reservation system, 你是怎么用你的方法来分析的?

【在 b***m 的大作中提到】
:
: 我就抛砖引玉瞎说两句吧。首先声明我不是什么大牛,也不是正经科班毕业,只不过在
: 实践中自学了一些东西而已。
: 碰到这种题,我一般首先假设各种条件和情况,如果跟考官心里想的情况有差别,他会
: 指出的。具体的条件和情况是什么其实不重要,也不是考题的本质,合理就可以了。假
: 设的东西先从简单的开始,然后总结出大体需要的数据,以及如何对数据进行抽象,有
: 哪些可能的容器(class),有哪些可能的接口(interface)。在此基础上,开始自顶
: 向下地写大概的class框架,以及其中的核心数据结构和成员,再根据数据罗列接口的
: 名字,最后再丰富和完善接口的参数。在写这些具体的class和interface时,尽量考虑
: 以数据结构为驱动的导向思想,也就是说,在情况和条件变化的时候,无需对class和

b***m
发帖数: 5987
46

的?
真不是谦虚,离大牛还差得远。我的特点跟印度人有些像,比较能侃,但是科班基础不
够牢。
我们可以列出这个system需要的信息:酒店的数量(连锁?),酒店的地址(或者编号
),是否有会员以及级别,reservation的来源(网络?电话?),房间数,房间类型
(Queen?King?Suite?),客人数(以及姓名等资料),每个房间停留的天数,是否
有特别要求(晚来?早走?宠物?婴儿床?朝向?残疾人方便?抽烟?),付款方式(
现金?信用卡?积分?)……这些信息列出来基本就差不多了。
在这些信息基础上,抽象出数据类型和数据库表的定义(包括索引字段等等),然后大
概可以归纳出如下容器(class):Hotel,Client,Room,Membership……他们之间大
部分是包含的关系,然后在定义出各个interface:Reserve,Extend,Payment,
Modify……
大概就是这么个意思吧。瞎写一通,见笑了。

【在 p*****2 的大作中提到】
:
: 大牛不要谦虚了。具体到Hotel reservation system, 你是怎么用你的方法来分析的?

p*****2
发帖数: 21240
47

看来你对开房还挺熟悉呀。我可想不了这么多。这个大概要写多久呀?

【在 b***m 的大作中提到】
:
: 的?
: 真不是谦虚,离大牛还差得远。我的特点跟印度人有些像,比较能侃,但是科班基础不
: 够牢。
: 我们可以列出这个system需要的信息:酒店的数量(连锁?),酒店的地址(或者编号
: ),是否有会员以及级别,reservation的来源(网络?电话?),房间数,房间类型
: (Queen?King?Suite?),客人数(以及姓名等资料),每个房间停留的天数,是否
: 有特别要求(晚来?早走?宠物?婴儿床?朝向?残疾人方便?抽烟?),付款方式(
: 现金?信用卡?积分?)……这些信息列出来基本就差不多了。
: 在这些信息基础上,抽象出数据类型和数据库表的定义(包括索引字段等等),然后大

t********e
发帖数: 344
48
谢谢大牛……
这些需要很多人生阅历吧……

【在 b***m 的大作中提到】
:
: 的?
: 真不是谦虚,离大牛还差得远。我的特点跟印度人有些像,比较能侃,但是科班基础不
: 够牢。
: 我们可以列出这个system需要的信息:酒店的数量(连锁?),酒店的地址(或者编号
: ),是否有会员以及级别,reservation的来源(网络?电话?),房间数,房间类型
: (Queen?King?Suite?),客人数(以及姓名等资料),每个房间停留的天数,是否
: 有特别要求(晚来?早走?宠物?婴儿床?朝向?残疾人方便?抽烟?),付款方式(
: 现金?信用卡?积分?)……这些信息列出来基本就差不多了。
: 在这些信息基础上,抽象出数据类型和数据库表的定义(包括索引字段等等),然后大

b***m
发帖数: 5987
49

没写多久吧,大概也许十几分钟。

【在 p*****2 的大作中提到】
:
: 看来你对开房还挺熟悉呀。我可想不了这么多。这个大概要写多久呀?

b***m
发帖数: 5987
50

俺就是出门玩得多,这些年挣的钱都贡献给航空公司、加油站和酒店了。

【在 t********e 的大作中提到】
: 谢谢大牛……
: 这些需要很多人生阅历吧……

相关主题
onsite scheduling没给面试官名单,要名单不好呢?
G家面试scheduling会给面试官的名字嘛?
GM面经
问个priority inversion 的题目, wiki跟书上不一样
进入JobHunting版参与讨论
t********e
发帖数: 344
51
读了一下这个MIT的hand-out,http://courses.csail.mit.edu/iap/interview/Hacking_a_Google_Interview_Handout_3.pdf
我猜interviewer可能还想考察可扩展性……
可以先define an abstract Scheduler class, 然后不同的preference, e.g.,
shortest-route, shortest-waiting-time, etc.可以再implement各自的方法
总之我没有能回答好,可能挂了
t********e
发帖数: 344
52
By the way, 我一直觉得航空公司的系统超级复杂,大牛有兴趣说说设计重点么

【在 b***m 的大作中提到】
:
: 俺就是出门玩得多,这些年挣的钱都贡献给航空公司、加油站和酒店了。

b***m
发帖数: 5987
53

你是说订票系统?

【在 t********e 的大作中提到】
: By the way, 我一直觉得航空公司的系统超级复杂,大牛有兴趣说说设计重点么
t********e
发帖数: 344
54
呃,好吧,就先说说订票

【在 b***m 的大作中提到】
:
: 你是说订票系统?

b***m
发帖数: 5987
55

纯属个人意见:
航空公司订票系统的核心应该是航段信息管理,具体展开说,就是以许多城市为点构成
的有向图,以及连接这许多点的线段(也即航班)。有向图在数据库中可以表现为一条
条与日期有关的记录,而航班的核心应该是舱位管理(每个舱位对应不同的价位,分别
售出多少,根据季节选择超售的比例)。航空公司一般只允许预订未来365天的机票,
大概就是因为这样可以维护一个合理数量的“未来数据库”。在这样的抽象基础上,我
觉得后面的设计相对就清晰和容易一些了。
大家都可以说说自己的看法,我觉得设计题没有必然的正确答案,合理性、易理解性、
可扩展性应该是最重要的。

【在 t********e 的大作中提到】
: 呃,好吧,就先说说订票
t********e
发帖数: 344
56
赞,谢谢

【在 b***m 的大作中提到】
:
: 纯属个人意见:
: 航空公司订票系统的核心应该是航段信息管理,具体展开说,就是以许多城市为点构成
: 的有向图,以及连接这许多点的线段(也即航班)。有向图在数据库中可以表现为一条
: 条与日期有关的记录,而航班的核心应该是舱位管理(每个舱位对应不同的价位,分别
: 售出多少,根据季节选择超售的比例)。航空公司一般只允许预订未来365天的机票,
: 大概就是因为这样可以维护一个合理数量的“未来数据库”。在这样的抽象基础上,我
: 觉得后面的设计相对就清晰和容易一些了。
: 大家都可以说说自己的看法,我觉得设计题没有必然的正确答案,合理性、易理解性、
: 可扩展性应该是最重要的。

1 (共1页)
进入JobHunting版参与讨论
相关主题
【设计模式】要达到啥水平?
F悲剧了,上面经
问一道经典亚麻电面OOD题
MS 面试 schedule的问题
大公司, 没有Phone Interview, 真接让Schedule for testing
why companies like scheduling interviews in Dec???
code challenge 求助
给大家推荐点学习资料
On-site interview 之前的一点小变故
碰到这种Google recruiter怎么办
相关话题的讨论汇总
话题: design话题: shuttle话题: pattern话题: 设计话题: scheduling