From “make good software"
软件开发中一个经常发生的常见错误是太关注于技术、架构、中间件或者其他技术细节。
我们忘记了任务是产生一个出色的应用程序,而不是我们用了最强劲 的工具。
下面是我列出的一些反模式。
反模式1:基于知道的技术数量来选择人
在选择人才方面一个最常见的情况是我们让技术来驱动我们的决策,这是非常不保靠的。
我们不能只关心候选者知道多少技术,而不去他们有什么好的编码设 计技能,其实后者是更重要的。
反模式2:选择技术不是基于有用与否
我们都准备差不多了,项目就要开始,我们做的第一件事是罗列出觉得适用于这个项目的技术、框架。
这就像是列一个要去超级市场时用的购物单子。我认为 一开始越简单越好,只在必要的时候,确定新技术能够增加生产力的情况下,再加入新的技术、框架。
反模式3:过度使用新技术(炫技)
”你拿着锤子,什么东西看上去都像是钉子”。设想一下决定使用“Spring”作为依赖注入架构。
接下来你会想,Spring可以创建应用中所有的 对象,然后配置文件相应的就增加了上千行代码。
反模式4:用技术细节掩盖设计上的瑕疵
当我们讨论这个反模式,性能问题立刻浮现出来。
当应用程序性能非常糟糕的时候抱怨或者关注于相应的技术细节是很常见的,但是我的经验是,性能问题常 常产生于设计层面。
反模式5:一直倾向使用新技术而不是平常方法
一些开发人员一旦发现他们能够用到某种新技术,立刻就对简单常用的方式弃如敝履,通常情况下这不是什么好现象。
值得记住的是技术、架构、中间件都可 能是项目中的负担,它们需要维护、学习、支持、配置等等。
反模式6:即使没必要也拔高扩展性的优先级
我听到的一个很常见的使用酷炫的新技术的理由是他们有良好的扩展性以及其他平常方法做不到的可配置能力。
听上去很酷是不是,其实大多数情况下对于项 目来说这都不是必须的,使用它们只能增加项目工程完成的风险。
反模式7:MDT-领导层驱动技术
这个反模式常常是这样的:你的领导读了一篇杂志或文章,谈论到某个高超的技术,他感到很兴奋。
隔天到了公司以后他决定说:“我发现了针对我们所有问 题的解决方案,从现在起我们都要开始使用xxx!”
1)我需要管理一个很“性感”的项目来提升我的职业经验。
2)它要听上去不错,而且在我得到提拔之前不能失败。
3)“反恐纳米干细胞”,这个怎么样?O-O-OKAY.
还是我那个例子,事实上后来我读代码的时候才发现那个如此重要的DLL仅有的两
个作用就是维护一个哈希表保存识别信息,然后需要的时候存成一个XML文件,用
MSXML写并不费劲。最要命的是,后来的检查表明开发组花在编写和发布那些包
装代码上的代码量甚至超过了那个DLL的代码量本身,别提后来无数的bug报告和
相关的修改。其实只要这个问题最初发布之前查一查代码量就可以注意到,但可惜
老话说得好,只缘身在此山中。
所以我建议再加一项反模式,作为 3 的一个反例:
模块完成后无原则地高估重构的代价。
2010/4/1 archer <arch...@gmail.com>:
2010/4/2 Kenny Yuan <yuank...@gmail.com>:
完了完了,如此说来俺看来也要没饭吃了。这里也有大堆我不知道的。。。
2010/4/2 Kenny Yuan <yuank...@gmail.com>:
> 前几周我恰巧也面了10个人,很是悲哀:没有一个人能说得上来算法思想(分治/回溯/贪心/动态规划等),没有一个人听说过amortized
> analysis;快速排序只有2个人能答出来;只有两个人在回答性能调优的时候提到了profiling方法;还有两个人竟然说Hash没学过,所以不会说......(这些人里面有名校的研究生,也有大公司工作十多年的,简历上面全部都很辉煌)
>
2010/4/2 Kenny Yuan <yuank...@gmail.com>:
--
2010/4/2 Kenny Yuan <yuank...@gmail.com>:
--
Tinyfool的开发日记 http://www.tinydust.net/dev/
代码中国网 http://www.codechina.org
myTwitter: http://twitter.com/tinyfool
--
To unsubscribe, reply using "remove me" as the subject.
要是Kenny Yuan来面试我的话,我估计会当场哭的......
2010/4/2 Kenny Yuan <yuank...@gmail.com>:
> 呵呵,说到设计模式,要是让我能自己决定的话,设计模式我都懒得问了。凡是敢声称自己是面向对象专家的,我就直接问OCP,看他理解如何,让他当场推导LSP/DIP等等。如果这些都理解了,设计模式也就是一个惯用手法和名词而已了
>
> 在 2010年4月2日 下午4:59,LeeoNix <leeo...@gmail.com>写道:
>>
>> 呵呵,
>>
>> 其实倒不是反对什么先进技术的了解和学习。
>>
>> 任何先进技术的使用都是建立在很基础的逻辑编码上,
>>
>> 没有很基础的算法分析和数据结构应用的基础,使用先进技术,那代码质量可想而知的差啊。
>>
>> 所以我面试的时候特别注重各种"小"算法的提问,可以说是代码编写习惯方面的。
>>
>> 其实LZ的文章指出的其实是现在想追求"高薪"的前提下,对高级技术的好奇和追捧,无奈啊。
>>
>> 比如设计模式,热了那么久,刚开始人人嘴里都开始谈模式,设计模式的门槛还没入呢。
>>
>> 我写程序这么久了,最近才突然感觉到设计模式的优势所在,之前看到设计模式,知道好,但是根本不知道好在哪里。
>>
>> 好在哪里,是需要知识和经验的积累才有的。
>>
>>
>> 在 2010年4月2日 下午4:51,Kenny Yuan <yuank...@gmail.com>写道:
>>>
>>> 呵呵,握手!
>>>
>>> "负面"的说太多了,改说点"正面"的:有一个人能说得上来快排,能分析O(N*N)的情况,还能改进算法,仔细一问,原来是看过programming
>>> pearl的,呵呵......
>>>
>>> 在 2010年4月2日 下午4:40,LeeoNix <leeo...@gmail.com>写道:
>>>>
>>>> 呵呵,同感啊。
>>>>
>>>> 上周还让两个研究生答题呢,但后面都不过。只是录用了一个本科生。
>>>>
>>>> 不过有一个做事挺认真的,是什么华东软件研究所的。但是实际开发经验看上去很少,就一个反转字符串的简单题目,都把指针的用法用错了......
>>>>
>>>> 在 2010年4月2日 下午4:37,Kenny Yuan <yuank...@gmail.com>写道:
>>>>>
>>>>> 前几周我恰巧也面了10个人,很是悲哀:没有一个人能说得上来算法思想(分治/回溯/贪心/动态规划等),没有一个人听说过amortized
>>>>> analysis;快速排序只有2个人能答出来;只有两个人在回答性能调优的时候提到了profiling方法;还有两个人竟然说Hash没学过,所以不会说......(这些人里面有名校的研究生,也有大公司工作十多年的,简历上面全部都很辉煌)
>>>>>>>> >> 究竟哪个服务进程应该收到对应的消息......
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >> 最后的解决方案:第二个版本他们废掉了那个.NET 写的DLL,用C++重新实现了一遍,
>>>>>>>> >> 于是进程间通信变成了进程内调用,全局服务也取消了,一切都完美了......
--
To unsubscribe, reply using "remove me" as the subject.
要是Kenny Yuan来面试我的话,我估计会当场哭的......
2010/4/2 Kenny Yuan <yuank...@gmail.com>:
> 呵呵,说到设计模式,要是让我能自己决定的话,设计模式我都懒得问了。凡是敢声称自己是面向对象专家的,我就直接问OCP,看他理解如何,让他当场推导LSP/DIP等等。如果这些都理解了,设计模式也就是一个惯用手法和名词而已了
>
> 在 2010年4月2日 下午4:59,LeeoNix <leeo...@gmail.com>写道:
>>
>> 呵呵,
>>
>> 其实倒不是反对什么先进技术的了解和学习。
>>
>> 任何先进技术的使用都是建立在很基础的逻辑编码上,
>>
>> 没有很基础的算法分析和数据结构应用的基础,使用先进技术,那代码质量可想而知的差啊。
>>
>> 所以我面试的时候特别注重各种"小"算法的提问,可以说是代码编写习惯方面的。
>>
>> 其实LZ的文章指出的其实是现在想追求"高薪"的前提下,对高级技术的好奇和追捧,无奈啊。
>>
>> 比如设计模式,热了那么久,刚开始人人嘴里都开始谈模式,设计模式的门槛还没入呢。
>>
>> 我写程序这么久了,最近才突然感觉到设计模式的优势所在,之前看到设计模式,知道好,但是根本不知道好在哪里。
>>
>> 好在哪里,是需要知识和经验的积累才有的。
>>
>>
>> 在 2010年4月2日 下午4:51,Kenny Yuan <yuank...@gmail.com>写道:
>>>
>>> 呵呵,握手!
>>>
>>> "负面"的说太多了,改说点"正面"的:有一个人能说得上来快排,能分析O(N*N)的情况,还能改进算法,仔细一问,原来是看过programming
>>> pearl的,呵呵......
>>>
>>> 在 2010年4月2日 下午4:40,LeeoNix <leeo...@gmail.com>写道:
>>>>
>>>> 呵呵,同感啊。
>>>>
>>>> 上周还让两个研究生答题呢,但后面都不过。只是录用了一个本科生。
>>>>
>>>> 不过有一个做事挺认真的,是什么华东软件研究所的。但是实际开发经验看上去很少,就一个反转字符串的简单题目,都把指针的用法用错了......
>>>>
>>>> 在 2010年4月2日 下午4:37,Kenny Yuan <yuank...@gmail.com>写道:
>>>>>
>>>>> 前几周我恰巧也面了10个人,很是悲哀:没有一个人能说得上来算法思想(分治/回溯/贪心/动态规划等),没有一个人听说过amortized
>>>>> analysis;快速排序只有2个人能答出来;只有两个人在回答性能调优的时候提到了profiling方法;还有两个人竟然说Hash没学过,所以不会说......(这些人里面有名校的研究生,也有大公司工作十多年的,简历上面全部都很辉煌)
>>>>>>>> >> 究竟哪个服务进程应该收到对应的消息......
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >>
>>>>>>>> >> 最后的解决方案:第二个版本他们废掉了那个.NET 写的DLL,用C++重新实现了一遍,
>>>>>>>> >> 于是进程间通信变成了进程内调用,全局服务也取消了,一切都完美了......
--
To unsubscribe, reply using "remove me" as the subject.
2010/4/2 Kenny Yuan <yuank...@gmail.com>:
前几周我恰巧也面了10个人,很是悲哀:没有一个人能说得上来算法思想(分治/回溯/贪心/动态规划等),没有一个人听说过amortized analysis;快速排序只有2个人能答出来;只有两个人在回答性能调优的时候提到了profiling方法;还有两个人竟然说Hash没学过,所以不会说……(这些人里面有名校的研究生,也有大公司工作十多年的,简历上面全部都很辉煌)
出的什么题目,说来听听。有时候一些面试官总是把一些细枝末节的东西当做基础问题来问。记得一次一个考官居然跟被面试者兴高采烈的交流起VI编辑器的基本用法。。。
>> 究竟哪个服务进程应该收到对应的消息……
>>
>>
>>
>> 最后的解决方案:第二个版本他们废掉了那个.NET 写的DLL,用C++重新实现了一遍,
>> 于是进程间通信变成了进程内调用,全局服务也取消了,一切都完美了……
>>
>>
>> --
>> 《采莲》·江南
>>
>> 为卿采莲兮涉水,为卿夺旗兮长战。为卿遥望兮辞宫阙,为卿白发兮缓缓歌。
>>
>> 另抄自蒜头的评论:http://www.douban.com/review/1573456/:
>>
>> 且祭一束紫琳秋,为一段落花流水的传说
>> 且饮一杯青花酒,为一场几多擦肩的错过
>> 且焚一卷旖旎念,为一腔抛付虚无的惜怜
>> 且歌一曲罢箜篌,为一刻良辰春宵的寂寞
>
>
--
《采莲》·江南
为卿采莲兮涉水,为卿夺旗兮长战。为卿遥望兮辞宫阙,为卿白发兮缓缓歌。
另抄自蒜头的评论:http://www.douban.com/review/1573456/:
且祭一束紫琳秋,为一段落花流水的传说
且饮一杯青花酒,为一场几多擦肩的错过
且焚一卷旖旎念,为一腔抛付虚无的惜怜
且歌一曲罢箜篌,为一刻良辰春宵的寂寞
--
Kenny Yuan
-->CS, MMA, Psychology, Automobile...
http://twitter.com/kenny_yuan
http://csbabel.wordpress.com/
http://blog.csdn.net/yuankaining/
http://itunes.apple.com/hk/app/id362540105?mt=8
这个游戏不难,而且水平要是不如我,我当然不要了。
2010/4/2 Mikster.Z <china...@gmail.com>:
呵呵,说到设计模式,要是让我能自己决定的话,设计模式我都懒得问了。凡是敢声称自己是面向对象专家的,我就直接问OCP,看他理解如何,让他当场推导LSP/DIP等等。如果这些都理解了,设计模式也就是一个惯用手法和名词而已了
在 2010年4月2日 下午4:59,LeeoNix <leeo...@gmail.com>写道:
呵呵,
其实倒不是反对什么先进技术的了解和学习。
任何先进技术的使用都是建立在很基础的逻辑编码上,
没有很基础的算法分析和数据结构应用的基础,使用先进技术,那代码质量可想而知的差啊。
所以我面试的时候特别注重各种“小”算法的提问,可以说是代码编写习惯方面的。
其实LZ的文章指出的其实是现在想追求“高薪”的前提下,对高级技术的好奇和追捧,无奈啊。
比如设计模式,热了那么久,刚开始人人嘴里都开始谈模式,设计模式的门槛还没入呢。
我写程序这么久了,最近才突然感觉到设计模式的优势所在,之前看到设计模式,知道好,但是根本不知道好在哪里。
好在哪里,是需要知识和经验的积累才有的。
在 2010年4月2日 下午4:51,Kenny Yuan <yuank...@gmail.com>写道:
呵呵,握手!
“负面”的说太多了,改说点“正面”的:有一个人能说得上来快排,能分析O(N*N)的情况,还能改进算法,仔细一问,原来是看过programming pearl的,呵呵……
在 2010年4月2日 下午4:40,LeeoNix <leeo...@gmail.com>写道:
呵呵,同感啊。
上周还让两个研究生答题呢,但后面都不过。只是录用了一个本科生。
不过有一个做事挺认真的,是什么华东软件研究所的。但是实际开发经验看上去很少,就一个反转字符串的简单题目,都把指针的用法用错了……
在 2010年4月2日 下午4:37,Kenny Yuan <yuank...@gmail.com>写道:
前几周我恰巧也面了10个人,很是悲哀:没有一个人能说得上来算法思想(分治/回溯/贪心/动态规划等),没有一个人听说过amortized analysis;快速排序只有2个人能答出来;只有两个人在回答性能调优的时候提到了profiling方法;还有两个人竟然说Hash没学过,所以不会说……(这些人里面有名校的研究生,也有大公司工作十多年的,简历上面全部都很辉煌)
出的什么题目,说来听听。有时候一些面试官总是把一些细枝末节的东西当做基础问题来问。记得一次一个考官居然跟被面试者兴高采烈的交流起VI编辑器的基本用法。。。
>> 究竟哪个服务进程应该收到对应的消息……
>>
>>
>>
>> 最后的解决方案:第二个版本他们废掉了那个.NET 写的DLL,用C++重新实现了一遍,
>> 于是进程间通信变成了进程内调用,全局服务也取消了,一切都完美了……
我还是觉得你出的题目适合压力测试,或者笔试。但是招人面试不是为了一味的打压他,鄙视他,在其中找到某种快感。
事实上很多做技术的做久了往往都会有这样的倾向。不知算不算是一种性格的扭曲。正常的面试,是让应试者有充分的发挥余地,给一个引导让他充分展示自己的擅长点。这样你才能权衡他能过来干什么。指东打西的玩文字游戏,只是一时的炫耀和骄傲,跟你所说的谦虚背道而驰,害人害己害公司。
是不难。但一天能写出来的熟手,为什么要去你那儿应聘呢?单干得了。
个人认为只用人、不培养人的公司不是好公司。招人很多时候需要找有潜力的人,而不是样样强的(那种人的要求也高)。要求员工比老板强,或者要求员工比老板差,都是有问题的。
--
Wu Yongwei
URL: http://wyw.dcweb.cn/
2010/4/2 Tinyfool <tiny...@gmail.com>:
> 既然要求比老板强也不对,差也不对,那么你说怎么要求?
>
> 发自我的 iPhone
>
> 在 2010-4-2,下午9:13,Yongwei Wu <wuyo...@gmail.com> 写到:
>
>> 2010/4/2 Tinyfool <tiny...@gmail.com>:
>>>
>>> 面试题:
>>> 这是我用一天写出来的游戏,未来我要是开iPhone的公司,面试题就会是这个,一天之内写出来一个基本上一致的游戏。
>>>
>>> http://itunes.apple.com/hk/app/id362540105?mt=8
>>>
>>>
>>> 这个游戏不难,而且水平要是不如我,我当然不要了。
>>
>> 是不难。但一天能写出来的熟手,为什么要去你那儿应聘呢?单干得了。
>>
>>
>> 个人认为只用人、不培养人的公司不是好公司。招人很多时候需要找有潜力的人,而不是样样强的(那种人的要求也高)。要求员工比老板强,或者要求员工比老板差,都是有问题的。
既然要求比老板强也不对,差也不对,那么你说怎么要求?
发自我的 iPhone
在 2010-4-2,下午9:13,Yongwei Wu <wuyo...@gmail.com> 写到:
http://itunes.apple.com/hk/app/id362540105?mt=8
这个游戏不难,而且水平要是不如我,我当然不要了。
是不难。但一天能写出来的熟手,为什么要去你那儿应聘呢?单干得了。
个人认为只用人、不培养人的公司不是好公司。招人很多时候需要找有潜力的人,而不是样样强的(那种人的要求也高)。要求员工比老板强,或者要求员工比老板差,都是有问题的。
呵呵,其实我也不是非得要求这些都背得有多熟——但是反过来说,连说都说不上来的,也太对不起自己的专业了吧?比如那些坚持认为二分是排序方法的,我就带着他的思路去归谬,顺便考察一下逻辑(还有人死不认帐呢!)
在 2010年4月2日 下午5:07,sagasw <sag...@gmail.com>写道:
我曾经去过一家公司笔试,被鄙视了,全是非常细节的手册上的东西,
而且我也没搞过java或者dotnet,全是猜的。
算法思想我也说不上来,amortized analysis也不会,
快排知道,还知道冒泡,profiling没问题,写过博客。
Hash没问题,
不过我知道这些也算是对得起我的工资了。
------------------------------------
C++, Lua, living in Dalian
http://sunxiunan.com/
http://twitter.com/sagasw
------------------------------------
2010/4/2 Kenny Yuan <yuank...@gmail.com>
2010/4/3 Mikster.Z <china...@gmail.com>:
2010/4/3 朱晋玄 <zhuji...@gmail.com>:
----------------------------------------------------------------------------------
Yours Sincerely
Kun
www.kunli.info
http://twitter.com/cnbuff
2010/4/2 Tinyfool <tiny...@gmail.com>:
现在还没开,市场上会怎么估价我不知道啊,我又没有进过专门的iphone开发的公司。
2010/4/3 windstorm <likunar...@gmail.com>:
我的看法可能是太客观了些,不过毫无恶意:)
我只是想以旁观者的身份提醒你以己之长攻彼之短不是适合所有的场合。
大公司里提倡的一个重要的素质叫团队合作,一种管理手段叫资源整合。
如果你是要一个单兵作战的coding大牛,的确不适合从大公司找,反之亦然。
如果说你要人从无到有20分钟干出来。。。
你真的是想招人么?
2010/4/2 Tinyfool <tiny...@gmail.com>:
> 那你快学,我面试人也挺猛的,直接让人在windows上面写个iphone游戏给我,20分钟内
不才28,算起来也算是年纪偏大了。工作原因算法用得不多,和调试器、
crash dump打了四年交道,问我算法估计一无所知,惭愧。
2010/4/2 Kenny Yuan <yuank...@gmail.com>:
> 请允许我推断一下,你应该年龄偏大,被国产垃圾教材毒害的一代,对吧?
>
> 现在那些优秀的年轻人真真了不得,入门就用CLRS,还有读paper的好习惯,许多人还看TAOCP ……
> Internet真是个好东西啊!比起他们来,我上学的时候简直就是瞎子……
>
>
> 在 2010年4月2日 下午4:39,Fuzhou Chen <cppo...@gmail.com>写道:
>>
>> 完了完了,如此说来俺看来也要没饭吃了。这里也有大堆我不知道的。。。
>>
>> 2010/4/2 Kenny Yuan <yuank...@gmail.com>:
>> > 前几周我恰巧也面了10个人,很是悲哀:没有一个人能说得上来算法思想(分治/回溯/贪心/动态规划等),没有一个人听说过amortized
>> >
>> > analysis;快速排序只有2个人能答出来;只有两个人在回答性能调优的时候提到了profiling方法;还有两个人竟然说Hash没学过,所以不会说......(这些人里面有名校的研究生,也有大公司工作十多年的,简历上面全部都很辉煌)
>> >
>>
>
>
>
> --
> Kenny Yuan
> -->CS, MMA, Psychology, Automobile...
> http://twitter.com/kenny_yuan
> http://csbabel.wordpress.com/
> http://blog.csdn.net/yuankaining/
>
>
--
《采莲》·江南
为卿采莲兮涉水,为卿夺旗兮长战。为卿遥望兮辞宫阙,为卿白发兮缓缓歌。
另抄自蒜头的评论:http://www.douban.com/review/1573456/:
且祭一束紫琳秋,为一段落花流水的传说
且饮一杯青花酒,为一场几多擦肩的错过
且焚一卷旖旎念,为一腔抛付虚无的惜怜
且歌一曲罢箜篌,为一刻良辰春宵的寂寞
--
----------------------------------------------------------------------------------
Yours Sincerely
Kun
www.kunli.info
http://twitter.com/cnbuff
2010/4/4 alsor zhou <alsor...@gmail.com>:
能读spec能调优就OK的不限于写驱动的,做网络协议的也
属于这一类,算法牛很好但不是最重要的,最重要的是能
做人肉spec词典,能随口答上来至少三个不同的实现在同一
个标准下的不兼容之处。
2010/4/4 windstorm <likunar...@gmail.com>:
Jeffrey Zhao
Blog: http://blog.zhaojie.me/
Twitter: @jeffz_cn
--------------------------------------------------
From: "Fuzhou Chen" <cppo...@gmail.com>
Sent: Monday, April 05, 2010 1:55 AM
To: <pon...@googlegroups.com>
Subject: Re: [TL] [share] 你在项目中用了很多技术么?软件开发中7种反模式
a) 写驱动的在硬件圈子里被认为是程序员
b) 对网络协议的实现过程,算法好并不是最重要的
c) 网络协议的实现过程中需要对多个软件的兼容性有广泛的了解。
2010/4/4 Jeffrey Zhao <je...@live.com>:
----------------------------------------------------------------------------------
Yours Sincerely
Kun
www.kunli.info
http://twitter.com/cnbuff
2010/4/4 Fuzhou Chen <cppo...@gmail.com>:
只是有感而发,估计也不是普遍现象。
2010/4/4 windstorm <likunar...@gmail.com>:
On Apr 1, 10:10 am, Kenny Yuan <yuankain...@gmail.com> wrote:
> 说到anti pattern,我最喜欢这几条:
>
> * 引擎室里的船长(Captain in the engine room):团队带头人把时间和精力全花在技术问题上,没有人开船
> * 死亡征途(Death march):除了CEO,每个人都知道这个项目会完蛋。但是真相却被隐瞒下来,直到大限来临
> * 海鸥管理(Seagull management):飞进来,弄得鸡飞狗跳、一片儿狼藉,然后就拍拍屁股走人
> * 大泥球(Big ball of mud):系统的结构不清晰
>
> --
> Kenny Yuan
> -->CS, MMA, Psychology, Automobile...http://twitter.com/kenny_yuanhttp://csbabel.wordpress.com/http://blog.csdn.net/yuankaining/
>
> Anti-pattern.txt
> 18KViewDownload
--
写verilog的写驱动太正常不过了,不叫改行。比如当初玩Xilinx的硬核软核,想移植系统干个什么事都得写一些简单的驱动。往深里面做的话更需要了。
但这确实是硬件工程师,有人会说也有c或者汇编的嵌入式编程,那也是偏硬件的编程,在这里,没人care你的算法功力或者软件模式,纯粹就是考验心智和时间的硬件调试甚至入门级hacking。在国内实习过几个研究所,好像大家都是这么称谓的。
----------------------------------------------------------------------------------
Yours Sincerely
Kun
www.kunli.info
http://twitter.com/cnbuff
2010/4/6 alsor zhou <alsor...@gmail.com>:
前几周我恰巧也面了10个人,很是悲哀:没有一个人能说得上来算法思想(分治/回溯/贪心/动态规划等),没有一个人听说过amortized analysis;快速排序只有2个人能答出来;只有两个人在回答性能调优的时候提到了profiling方法;还有两个人竟然说Hash没学过,所以不会说……(这些人里面有名校的研究生,也有大公司工作十多年的,简历上面全部都很辉煌)
出的什么题目,说来听听。有时候一些面试官总是把一些细枝末节的东西当做基础问题来问。记得一次一个考官居然跟被面试者兴高采烈的交流起VI编辑器的基本用法。。。
>> 究竟哪个服务进程应该收到对应的消息……
>>
>>
>>
>> 最后的解决方案:第二个版本他们废掉了那个.NET 写的DLL,用C++重新实现了一遍,
>> 于是进程间通信变成了进程内调用,全局服务也取消了,一切都完美了……
>>
>>
>> --
>> 《采莲》·江南
>>
>> 为卿采莲兮涉水,为卿夺旗兮长战。为卿遥望兮辞宫阙,为卿白发兮缓缓歌。
>>
>> 另抄自蒜头的评论:http://www.douban.com/review/1573456/:
>>
>> 且祭一束紫琳秋,为一段落花流水的传说
>> 且饮一杯青花酒,为一场几多擦肩的错过
>> 且焚一卷旖旎念,为一腔抛付虚无的惜怜
>> 且歌一曲罢箜篌,为一刻良辰春宵的寂寞
>
>
--
《采莲》·江南
为卿采莲兮涉水,为卿夺旗兮长战。为卿遥望兮辞宫阙,为卿白发兮缓缓歌。
另抄自蒜头的评论:http://www.douban.com/review/1573456/:
且祭一束紫琳秋,为一段落花流水的传说
且饮一杯青花酒,为一场几多擦肩的错过
且焚一卷旖旎念,为一腔抛付虚无的惜怜
且歌一曲罢箜篌,为一刻良辰春宵的寂寞
所以我在《程序员》今年第一期的卷首语里强调常识的重要:http://blog.csdn.net/liujiangCE/archive/2009/12/24/5070769.aspx在 2010年4月2日 下午4:37,Kenny Yuan <yuank...@gmail.com>写道:
前几周我恰巧也面了10个人,很是悲哀:没有一个人能说得上来算法思想(分治/回溯/贪心/动态规划等),没有一个人听说过amortized analysis;快速排序只有2个人能答出来;只有两个人在回答性能调优的时候提到了profiling方法;还有两个人竟然说Hash没学过,所以不会说……(这些人里面有名校的研究生,也有大公司工作十多年的,简历上面全部都很辉煌)
在 2010年4月2日 下午3:47,jinhu wang <wangji...@gmail.com>写道:
出的什么题目,说来听听。有时候一些面试官总是把一些细枝末节的东西当做基础问题来问。记得一次一个考官居然跟被面试者兴高采烈的交流起VI编辑器的基本用法。。。在 2010年4月2日 下午3:43,LeeoNix <leeo...@gmail.com>写道:
呵呵,最近面试的几个新人,问一些基础问题能答上来的却很少,都在说懂某某技术,如何如何熟悉某些库。
说老实话,现在对于“算法”的学习的人,真的少了很多。
其实LZ的文章重点强调的是编程思想和基础的重要。
以上为个人理解,呵呵。:)
--
To unsubscribe, reply using "remove me" as the subject.
我面试到最后一定要给足够的压力,看这个人的反应。
一个面试,如果不面试到这个人的极限,我觉得是不成功的。
>
> 正常的面试,是让应试者有充分的发挥余地,给一个引导让他充分展示自己的擅长点。这样你才能权衡他能过来干什么。
> 指东打西的玩文字游戏,只是一时的炫耀和骄傲,跟你所说的谦虚背道而驰,害人害己害公司。
或许每个公司的职位要求差异很大吧。
个人展示很重要,但追问到足够细节也很重要。
> 在 2010年4月2日 下午6:20,Kenny Yuan <yuank...@gmail.com>写道:
>>
>> 哥…… 设计模式的确不是什么高深的东西,但我也的确不是高手……
>>
>> P.S. OO方面的东西,我推荐一下Robert C Martin的文章和Bertrand Meyer的书,网上都有下载
>>
>> 在 2010年4月2日 下午6:08,jinhu wang <wangji...@gmail.com>写道:
>>>
>>> 3个名词认识第一个,OCP是我在华为的时候的一个数据业务平台的名字。。。
>>> 设计模式原来在高手那里是这么的浅显。。。自卑ing
>>>
>>> 在 2010年4月2日 下午5:06,Kenny Yuan <yuank...@gmail.com>写道:
>>>>
>>>>
>>>> 呵呵,说到设计模式,要是让我能自己决定的话,设计模式我都懒得问了。凡是敢声称自己是面向对象专家的,我就直接问OCP,看他理解如何,让他当场推导LSP/DIP等等。如果这些都理解了,设计模式也就是一个惯用手法和名词而已了
>>>>
>>>> 在 2010年4月2日 下午4:59,LeeoNix <leeo...@gmail.com>写道:
>>>>>
>>>>> 呵呵,
>>>>>
>>>>> 其实倒不是反对什么先进技术的了解和学习。
>>>>>
>>>>> 任何先进技术的使用都是建立在很基础的逻辑编码上,
>>>>>
>>>>> 没有很基础的算法分析和数据结构应用的基础,使用先进技术,那代码质量可想而知的差啊。
>>>>>
>>>>> 所以我面试的时候特别注重各种“小”算法的提问,可以说是代码编写习惯方面的。
>>>>>
>>>>> 其实LZ的文章指出的其实是现在想追求“高薪”的前提下,对高级技术的好奇和追捧,无奈啊。
>>>>>
>>>>> 比如设计模式,热了那么久,刚开始人人嘴里都开始谈模式,设计模式的门槛还没入呢。
>>>>>
>>>>> 我写程序这么久了,最近才突然感觉到设计模式的优势所在,之前看到设计模式,知道好,但是根本不知道好在哪里。
>>>>>
>>>>> 好在哪里,是需要知识和经验的积累才有的。
>>>>>
>>>>>
>>>>> 在 2010年4月2日 下午4:51,Kenny Yuan <yuank...@gmail.com>写道:
>>>>>>
>>>>>> 呵呵,握手!
>>>>>>
>>>>>>
>>>>>> “负面”的说太多了,改说点“正面”的:有一个人能说得上来快排,能分析O(N*N)的情况,还能改进算法,仔细一问,原来是看过programming
>>>>>> pearl的,呵呵……
>>>>>>
>>>>>> 在 2010年4月2日 下午4:40,LeeoNix <leeo...@gmail.com>写道:
>>>>>>>
>>>>>>> 呵呵,同感啊。
>>>>>>>
>>>>>>> 上周还让两个研究生答题呢,但后面都不过。只是录用了一个本科生。
>>>>>>>
>>>>>>> 不过有一个做事挺认真的,是什么华东软件研究所的。但是实际开发经验看上去很少,就一个反转字符串的简单题目,都把指针的用法用错了……
>>>>>>>
>>>>>>> 在 2010年4月2日 下午4:37,Kenny Yuan <yuank...@gmail.com>写道:
>>>>>>>>
>>>>>>>> 前几周我恰巧也面了10个人,很是悲哀:没有一个人能说得上来算法思想(分治/回溯/贪心/动态规划等),没有一个人听说过amortized
>>>>>>>> analysis;快速排序只有2个人能答出来;只有两个人在回答性能调优的时候提到了profiling方法;还有两个人竟然说Hash没学过,所以不会说……(这些人里面有名校的研究生,也有大公司工作十多年的,简历上面全部都很辉煌)
>>>>>>>>
>>>>>>>> 在 2010年4月2日 下午3:47,jinhu wang <wangji...@gmail.com>写道:
>>>>>>>>>
>>>>>>>>> 出的什么题目,说来听听。
>>>>>>>>> 有时候一些面试官总是把一些细枝末节的东西当做基础问题来问。记得一次一个考官居然跟被面试者兴高采烈的交流起VI编辑器的基本用法。。。
>>>>>>>>>
>>>>>>>>> 在 2010年4月2日 下午3:43,LeeoNix <leeo...@gmail.com>写道:
>>>>>>>>>>
>>>>>>>>>> 呵呵,最近面试的几个新人,问一些基础问题能答上来的却很少,都在说懂某某技术,如何如何熟悉某些库。
>>>>>>>>>> 说老实话,现在对于“算法”的学习的人,真的少了很多。
>>>>>>>>>> 其实LZ的文章重点强调的是编程思想和基础的重要。
>>>>>>>>>> 以上为个人理解,呵呵。:)
>>>>>>>>>>
--
Cheers,
Oliver Yang
Twitter: http://twitter.com/yangoliver
Blog: http://blog.csdn.net/yayong
--------------------------------------------------------------------
An OpenSolaris Developer