真油菜,美眉借iPhone4 竟還4顆蘋果 (转载)# Joke - 肚皮舞运动l*n2012-10-22 07:101 楼还是有点没头绪,大概看了看150上的几个题。但是感觉还是没有系统的思路要怎么下手,一步一步走。能不能请大牛指点一二。谢谢
u*w2012-10-22 07:102 楼【 以下文字转载自 Military 讨论区 】发信人: usajjww (jjww), 信区: Military标 题: 真油菜,美眉借iPhone4 竟還4顆蘋果发信站: BBS 未名空间站 (Mon Oct 22 19:21:06 2012, 美东)
y*n2012-10-22 07:103 楼面试题:怎样实现一个BBS系统?对比下面几个回答:回答A:创建一个Web应用,先做一个登录窗口,再做一个发帖子的界面,然后做帖子浏览界面,最后实现一些高级功能,比如:分类、搜索、置顶等等回答B:先明确需求,根据需求进行设计并选择平台和相关工具,然后分模块,定接口,开发,集成。与此同时,测试部门根据文档做出测试计划。开发完成之后进行各种测试。直到测试结果达到预期指标,发布产品。这两个回答都可实现一个BBS系统。A的回答是从写代码入手,反映出A的背景是一个底层程序员。B的回答是从分析和设计入手,反映了B的背景是个高级程序员,他理解软件开发周期。如果如果对方想招一位有丰富经验的程序员,B的胜算会远大于A。有人说,B的回答基本是照搬软件工程。没错,因为软件工程就是研究怎样实现一个软件。再看看,如果题目改成“如何实现一个实时股票分析软件”,B的答案几乎可以一字不改。如果你去绞尽脑汁想怎样得到实时股票数据,用什么算法画价格曲线,那你就入圈套了。你的回答往往反映出你的背景和经验。所以,我建议对于面试的问题,尽量从分析入手,不要从写代码入手。即便是编程题也是如此。多做了一步分析,就反映出你多几分经验。【在 l***n 的大作中提到】: 还是有点没头绪,大概看了看150上的几个题。但是感觉还是没有系统的思路要怎么下: 手,一步一步走。: 能不能请大牛指点一二。谢谢
r*n2012-10-22 07:105 楼我觉得第一步 先找出的对象,面向对象吗,问题任何提到的名字都有可能成为对象。第二步 用几个case,把对象之间的处理过程逻辑画画第三步 分析对象之间的关系,同一类用继承,非我同类用的组合,组合有一对多或者多对一,或者多对多这种情况尽量避免,因为很难写程序,你可以把多对多转换成一对多的关系。第四步 完善第二步【在 l***n 的大作中提到】: 还是有点没头绪,大概看了看150上的几个题。但是感觉还是没有系统的思路要怎么下: 手,一步一步走。: 能不能请大牛指点一二。谢谢
d*x2012-10-22 07:107 楼软件工程is bullshit...【在 y****n 的大作中提到】: 面试题:怎样实现一个BBS系统?: 对比下面几个回答:: 回答A:创建一个Web应用,先做一个登录窗口,再做一个发帖子的界面,然后做帖子浏: 览界面,最后实现一些高级功能,比如:分类、搜索、置顶等等: 回答B:先明确需求,根据需求进行设计并选择平台和相关工具,然后分模块,定接口: ,开发,集成。与此同时,测试部门根据文档做出测试计划。开发完成之后进行各种测: 试。直到测试结果达到预期指标,发布产品。: 这两个回答都可实现一个BBS系统。A的回答是从写代码入手,反映出A的背景是一个底: 层程序员。B的回答是从分析和设计入手,反映了B的背景是个高级程序员,他理解软件: 开发周期。如果如果对方想招一位有丰富经验的程序员,B的胜算会远大于A。
s*n2012-10-22 07:109 楼人家考你架构和OO设计方面的经验。搞这么虚,要死人的。再说了,现在那个公司不是agile,又有那个公司有明确需求了。【在 y****n 的大作中提到】: 面试题:怎样实现一个BBS系统?: 对比下面几个回答:: 回答A:创建一个Web应用,先做一个登录窗口,再做一个发帖子的界面,然后做帖子浏: 览界面,最后实现一些高级功能,比如:分类、搜索、置顶等等: 回答B:先明确需求,根据需求进行设计并选择平台和相关工具,然后分模块,定接口: ,开发,集成。与此同时,测试部门根据文档做出测试计划。开发完成之后进行各种测: 试。直到测试结果达到预期指标,发布产品。: 这两个回答都可实现一个BBS系统。A的回答是从写代码入手,反映出A的背景是一个底: 层程序员。B的回答是从分析和设计入手,反映了B的背景是个高级程序员,他理解软件: 开发周期。如果如果对方想招一位有丰富经验的程序员,B的胜算会远大于A。
d*x2012-10-22 07:1011 楼re.今天中午我还在跟老印侃这个。。。我说这些搞软件工程的人需要rebase到2010年重新开始研究。。试图将软件工程化是好的,但是他们研究的始点是上个世纪八九十年代,用来指导现在的生产问题太大。【在 s*****n 的大作中提到】: 人家考你架构和OO设计方面的经验。搞这么虚,要死人的。: 再说了,现在那个公司不是agile,又有那个公司有明确需求了。
y*n2012-10-22 07:1016 楼软件工程是一种信仰,“软件工程is bullshit”也是一种信仰。我只是在面试中明示或者暗示对方:1. 我参与过大项目,了解项目流程2. 我懂软件工程(未必信仰软件工程)3. 我习惯分析和设计,而不是只会代码【在 d**********x 的大作中提到】: 软件工程is bullshit...
d*x2012-10-22 07:1017 楼这个度很难把握。。上次一个A家的去校园演讲,直接说我们组就是直接prototyping然后iteration,啥啥process都扯淡。。。碰上这种人你要跟他扯RUP不直接死了。。。【在 y****n 的大作中提到】: 软件工程是一种信仰,“软件工程is bullshit”也是一种信仰。: 我只是在面试中明示或者暗示对方:: 1. 我参与过大项目,了解项目流程: 2. 我懂软件工程(未必信仰软件工程): 3. 我习惯分析和设计,而不是只会代码
l*n2012-10-22 07:1018 楼嗯,很有帮助。谢谢。不管OO是不是未来的方向,面试的时候,还是挺容易遇到这样子的问题的。贡献一个onsite问到的题目吧。让设计一个游戏,animal game,可以参看这个链接 http://www.animalgame.com/就是让用户心里想一个动物,现在系统什么都不知道,可能只知道一种动物,tiger,然后它会问是tiger么?如果不是,那这次猜测就fail,系统就问你,请你说出一个你想的的动物和tiger的区别feature。而且告诉它你的动物是什么。这样他就学习到一个新知识。比如你想的是兔子,告诉他feature是long ear。那么重新开始游戏,你重新想一种动物,然后系统开始发问 它会问是long ear么? 你说不是,他会问,是tiger么?不是。那你就再提供新的feature和新的动物信息。类似一个decision tree的结构,让你设计主要的类,方法,以及这些方法的逻辑,伪码ok。【在 r*******n 的大作中提到】: 我觉得: 第一步 先找出的对象,面向对象吗,问题任何提到的名字都有可能成为对象。: 第二步 用几个case,把对象之间的处理过程逻辑画画: 第三步 分析对象之间的关系,同一类用继承,非我同类用的组合,: 组合有一对多或者多对一,或者多对多这种情况尽量避免,因为很难写程序,: 你可以把多对多转换成一对多的关系。: 第四步 完善第二步
p*22012-10-22 07:1019 楼越来越觉得oo像八股文了【在 l***n 的大作中提到】: 还是有点没头绪,大概看了看150上的几个题。但是感觉还是没有系统的思路要怎么下: 手,一步一步走。: 能不能请大牛指点一二。谢谢
y*n2012-10-22 07:1024 楼面试题:怎样实现一个BBS系统?对比下面几个回答:回答A:创建一个Web应用,先做一个登录窗口,再做一个发帖子的界面,然后做帖子浏览界面,最后实现一些高级功能,比如:分类、搜索、置顶等等回答B:先明确需求,根据需求进行设计并选择平台和相关工具,然后分模块,定接口,开发,集成。与此同时,测试部门根据文档做出测试计划。开发完成之后进行各种测试。直到测试结果达到预期指标,发布产品。这两个回答都可实现一个BBS系统。A的回答是从写代码入手,反映出A的背景是一个底层程序员。B的回答是从分析和设计入手,反映了B的背景是个高级程序员,他理解软件开发周期。如果如果对方想招一位有丰富经验的程序员,B的胜算会远大于A。有人说,B的回答基本是照搬软件工程。没错,因为软件工程就是研究怎样实现一个软件。再看看,如果题目改成“如何实现一个实时股票分析软件”,B的答案几乎可以一字不改。如果你去绞尽脑汁想怎样得到实时股票数据,用什么算法画价格曲线,那你就入圈套了。你的回答往往反映出你的背景和经验。所以,我建议对于面试的问题,尽量从分析入手,不要从写代码入手。即便是编程题也是如此。多做了一步分析,就反映出你多几分经验。【在 l***n 的大作中提到】: 还是有点没头绪,大概看了看150上的几个题。但是感觉还是没有系统的思路要怎么下: 手,一步一步走。: 能不能请大牛指点一二。谢谢
r*n2012-10-22 07:1025 楼我觉得第一步 先找出的对象,面向对象吗,问题任何提到的名字都有可能成为对象。第二步 用几个case,把对象之间的处理过程逻辑画画第三步 分析对象之间的关系,同一类用继承,非我同类用的组合,组合有一对多或者多对一,或者多对多这种情况尽量避免,因为很难写程序,你可以把多对多转换成一对多的关系。第四步 完善第二步【在 l***n 的大作中提到】: 还是有点没头绪,大概看了看150上的几个题。但是感觉还是没有系统的思路要怎么下: 手,一步一步走。: 能不能请大牛指点一二。谢谢
d*x2012-10-22 07:1026 楼软件工程is bullshit...【在 y****n 的大作中提到】: 面试题:怎样实现一个BBS系统?: 对比下面几个回答:: 回答A:创建一个Web应用,先做一个登录窗口,再做一个发帖子的界面,然后做帖子浏: 览界面,最后实现一些高级功能,比如:分类、搜索、置顶等等: 回答B:先明确需求,根据需求进行设计并选择平台和相关工具,然后分模块,定接口: ,开发,集成。与此同时,测试部门根据文档做出测试计划。开发完成之后进行各种测: 试。直到测试结果达到预期指标,发布产品。: 这两个回答都可实现一个BBS系统。A的回答是从写代码入手,反映出A的背景是一个底: 层程序员。B的回答是从分析和设计入手,反映了B的背景是个高级程序员,他理解软件: 开发周期。如果如果对方想招一位有丰富经验的程序员,B的胜算会远大于A。
s*n2012-10-22 07:1027 楼人家考你架构和OO设计方面的经验。搞这么虚,要死人的。再说了,现在那个公司不是agile,又有那个公司有明确需求了。【在 y****n 的大作中提到】: 面试题:怎样实现一个BBS系统?: 对比下面几个回答:: 回答A:创建一个Web应用,先做一个登录窗口,再做一个发帖子的界面,然后做帖子浏: 览界面,最后实现一些高级功能,比如:分类、搜索、置顶等等: 回答B:先明确需求,根据需求进行设计并选择平台和相关工具,然后分模块,定接口: ,开发,集成。与此同时,测试部门根据文档做出测试计划。开发完成之后进行各种测: 试。直到测试结果达到预期指标,发布产品。: 这两个回答都可实现一个BBS系统。A的回答是从写代码入手,反映出A的背景是一个底: 层程序员。B的回答是从分析和设计入手,反映了B的背景是个高级程序员,他理解软件: 开发周期。如果如果对方想招一位有丰富经验的程序员,B的胜算会远大于A。
d*x2012-10-22 07:1028 楼re.今天中午我还在跟老印侃这个。。。我说这些搞软件工程的人需要rebase到2010年重新开始研究。。试图将软件工程化是好的,但是他们研究的始点是上个世纪八九十年代,用来指导现在的生产问题太大。【在 s*****n 的大作中提到】: 人家考你架构和OO设计方面的经验。搞这么虚,要死人的。: 再说了,现在那个公司不是agile,又有那个公司有明确需求了。
y*n2012-10-22 07:1032 楼软件工程是一种信仰,“软件工程is bullshit”也是一种信仰。我只是在面试中明示或者暗示对方:1. 我参与过大项目,了解项目流程2. 我懂软件工程(未必信仰软件工程)3. 我习惯分析和设计,而不是只会代码【在 d**********x 的大作中提到】: 软件工程is bullshit...
d*x2012-10-22 07:1033 楼这个度很难把握。。上次一个A家的去校园演讲,直接说我们组就是直接prototyping然后iteration,啥啥process都扯淡。。。碰上这种人你要跟他扯RUP不直接死了。。。【在 y****n 的大作中提到】: 软件工程是一种信仰,“软件工程is bullshit”也是一种信仰。: 我只是在面试中明示或者暗示对方:: 1. 我参与过大项目,了解项目流程: 2. 我懂软件工程(未必信仰软件工程): 3. 我习惯分析和设计,而不是只会代码
l*n2012-10-22 07:1034 楼嗯,很有帮助。谢谢。不管OO是不是未来的方向,面试的时候,还是挺容易遇到这样子的问题的。贡献一个onsite问到的题目吧。让设计一个游戏,animal game,可以参看这个链接 http://www.animalgame.com/就是让用户心里想一个动物,现在系统什么都不知道,可能只知道一种动物,tiger,然后它会问是tiger么?如果不是,那这次猜测就fail,系统就问你,请你说出一个你想的的动物和tiger的区别feature。而且告诉它你的动物是什么。这样他就学习到一个新知识。比如你想的是兔子,告诉他feature是long ear。那么重新开始游戏,你重新想一种动物,然后系统开始发问 它会问是long ear么? 你说不是,他会问,是tiger么?不是。那你就再提供新的feature和新的动物信息。类似一个decision tree的结构,让你设计主要的类,方法,以及这些方法的逻辑,伪码ok。【在 r*******n 的大作中提到】: 我觉得: 第一步 先找出的对象,面向对象吗,问题任何提到的名字都有可能成为对象。: 第二步 用几个case,把对象之间的处理过程逻辑画画: 第三步 分析对象之间的关系,同一类用继承,非我同类用的组合,: 组合有一对多或者多对一,或者多对多这种情况尽量避免,因为很难写程序,: 你可以把多对多转换成一对多的关系。: 第四步 完善第二步
p*22012-10-22 07:1035 楼越来越觉得oo像八股文了【在 l***n 的大作中提到】: 还是有点没头绪,大概看了看150上的几个题。但是感觉还是没有系统的思路要怎么下: 手,一步一步走。: 能不能请大牛指点一二。谢谢
C*y2012-10-22 07:1039 楼个人觉得CC chapter 8 Object-Oriented Design那章讲得很好。那上面的四部曲试手了几个题,还比较有感觉【在 l***n 的大作中提到】: 还是有点没头绪,大概看了看150上的几个题。但是感觉还是没有系统的思路要怎么下: 手,一步一步走。: 能不能请大牛指点一二。谢谢