随笔 - 14  文章 - 77  trackbacks - 0
<2011年4月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿(5)

随笔分类

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

2011淘宝春季校招已经到了尾声了,五一前,面试都会结束。我参加了广州站的实习生面试。这两天跟不少同学做了交流沟通。这里想谈一下我的感受,以及想给加入淘宝的同学们一些建议。这次没有通过的同学也不要气馁,我们秋季校园招聘见。

这两天见了不少同学,我能感受到同学们的热情,以及对于技术的热爱。也很感谢同学们对于淘宝的关注。下面我先来说说我在广州两天面试下来的感受。

程序设计的基础还需要加强:

被我复试的同学,几乎都被我问到了如何自己去实现一个字符串中查找字串的问题。在第二天,每个同学过来,第一件事情就是在我的笔记本上,把这个代码给我写出来。那么结果如何呢?

几乎所有的同学都知道要完成功能,最简单的做法应该怎么做。但是,只有一位硕士同学,写出来的代码,基本上上是实现了这个功能。其他的要么写不出来,要么是错的。但是,就这么个题目,我没有看到一个让我非常满意的答案。我这里说的满意不是说要你写出KMP的实现,只是希望能够看到功能正确、异常情况考虑清楚、常规的优化要有。

这是一个侧面,反应出来的问题是基本功的问题。有些同学会觉得这个可能不重要,我知道思想,写程序么,我写多了,熟练了就好。我这里想说的是,写程序是基础,如果你说你很热爱技术、很喜欢写程序,而很基础的都写不好,如果你是面试官,你会怎么想呢?也许给你些时间,你真的就能够写出很好的程序了,但是这个貌似是也许。如果你在面试的时候,就已经可以展现出这些,你不是会比别人出色么?反过来,如果别人都可以做到,你不行,你不是很危险么?

那么我出的这个题目需要考虑什么呢:

字符串和要查找的字串是不是null要考虑吧?

如果字符串比要查找的字串短,可以直接返回结果吧?

循环遍历的时候,字符串的起点,应该要保证从起点到结束,比字串长把?

继续说这个字符串查找的例子。有些同学,在我问到有没有优化的办法的时候,提到了KMP,但是我具体怎么实现,记不起来了。OK,我也不能马上写出来KMP的实现。但是我继续问,KMP比这个直接循环比较的原始方式有改进,那么KMP是解决了什么问题?或者说是在什么问题上解决的更好。然后有很多同学就不知道了。给我的感觉是,因为同学记不得KMP的具体实现,所以也不知道去解决了什么问题。我觉得这个逻辑是刚好反过来了。我们应该先去理解KMP解决了什么问题,或者说去看看最初的实现,有什么地方可以改善、可以提高。这个是根本的东西,如果你理解了,即便不知道KMP,你也有机会搞一个KMP出来,即便你不记得KMP的具体实现,那又有什么关系呢?

在回杭州的路上,我想到了一句话,你是用文科的方式学习知识还是理科的方式学习知识。我是这么看的,如果更多的是去记忆,就是文科的方式学习,我们需要的是去理解,是去看到背后的、纸面反面的东西。这个是根本。我听过一个笑话,两个学习文科的同学,互相提问,AB,历史书的X页的Y行上说:哪一年,巴黎人民在什么教堂举行了起义,B记得年份,但是死活想不起来是什么教堂。A告诉B,答案是“一个”教堂。我撅翻。

那我们要搞开发,千万不要用这样的方式,我知道没有同学会这么学习,但是如果你不深入去理解、了解所以然,那么结果上也差不多。

前面说了基础,下面我想说说逻辑思维。

逻辑思维,我觉得主要指的是去分析、解决问题的能力,去灵活运用自己知识的能力。这个部分,我觉得扎实的基础是很关键和必要的,而对知识的深入理解更为重要。我举一个例子,说到深度优先搜索、广度优先搜索,可能绝大部分的人都知道。但是如果出题目是一个场景,可能很多同学就不知道该怎么整了。比如,我问了一个农夫带着狼、羊、早过河的问题,这个是一个非常之经典的问题,中学的信息学奥赛会用到的题目。可是有很多同学,就不知所措了。这就是一个分析和运用知识的能力。在我们实际工作中,遇到的问题都是需要我们去分析然后找方案的,不会说直接告诉你,我们需要用广度优先搜索去干个嘛、用深度优先干个嘛等等。同学们都很年轻,学习计算机的时间相对有限,作为面试官,我们不期望你什么问题都能很好的解决,但是一些基本的,大学学过的知识,你需要能够很好的运用,另外,也会看你的思路。此外,对面试官的问题的准确快速理解,也会反映你的能力。

再说说对技术的热爱。

我上篇博客提到,我们喜欢热爱技术的人,这次我遇到的同学,除了两个女孩子外,好像都告诉我很热爱技术。在这里,我不是不相信你们的话,只是我想让同学们明白,热爱技术不是说说的,你需要来证明给面试官。我举个例子,我很热爱尤文图斯(意大利的足球俱乐部)。我只是这么一说,没用。有两个办法可以证明我很热爱,一个是我周围的朋友,尤其是跟我十多年一起的朋友可以证明,但是这个办法不灵光,要用这个办法,除非是你相信并认识我的朋友才行;另外一个办法是,我可以告诉你尤文图斯的很多历史、很多故事,告诉你我从94年开始看尤文图斯的比赛一直到现在的很多点点滴滴,那么第二个办法就相对靠谱。那么回到同学们的面试,如果你很热爱技术,你的朋友、同学知道,他们可以证明,但是我不认识他们,这条路不行。那么就是第二个方法,你热爱技术,热爱某个方面的,那么你一定是会看很多这方面的文章、书等,你的了解就会比别人深入。你可以讲你的收获等等,但是如果你很热爱某个方面的技术,结果还没有大多数人了解的多,那我又撅翻了。

学习能力。这个方面,更多的需要你自己去展示自己之前的一些经历。当然也会把这个部分和对于分析和解决问题放在一起去考察。我觉得学习可以分三个层次:

了解(基本会用)

熟练、经验丰富(用的多,遇到不少问题,知道一些别人不知道的细节的点)

理解(知道背后的原理、实现等)

同学们时间有限,我建议你还是能够在一两个部分很深入,而不是搞了很多,但都是很浅或者就是知道有那么个东西,这样不好。你能够把一两个部分搞的很深入,那么,我也相信你在类似的其他方面,给你时间,你也可以搞的很深入;但是如果你都是知道一点知道一点,我就不确定你到底能够钻多深了。

举个例子,有同学说对并发、JVM感兴趣。问了一些问题,发现概念性的回答的还不错,但是深入一下,问为什么要这样,这样的好处坏处,他就不知道了,告诉我书上这么说的,我说那你自己觉得呢?告诉我说,没有想过。这样的学习方式,我觉得就是可以提高和改善的。

再说说项目经验。

项目经验对于你来说,未必多了就好。主要是精。

对于本科生同学,尤其这次招聘的都是大三才读了一个学期的同学,你不用去苛求自己去做多少项目,也许你还没有这样的机会,你可以专注于学校的课程实践(我们当年叫做大作业),以及根据你自己的兴趣学习到的知识的一些运用。比如当年我对于基于Socket通信很感兴趣,就自己去做了一个类似Mud的东西,然后去改进完善。对于硕士同学,你们想对是有不少时间的,应该有更多的实战的经验,但是我很建议的是,我更在乎你在项目中的贡献,你的深度,你的提升。我很建议大家不要去重复的做很多差不多的事情,对你自己没很大好处。我上次也提到了,这就是叫做工作五年,一年经验。如果真的是老板逼着去一直重复,我也希望你能够在第二次、第三次的过程中,做出新意来。

上面提到的这些方面,都是非常基础的。如果这些大家不能够做好的话,不管去淘宝还是类似的公司,我想面试都是会挂掉。而看到这个部分,对于我写的内容很不屑的觉得太简单并且自己已经做到非常好的同学,我给你一个建议,发邮件给我吧。huali@taobao.com,我们可以去谈些更深入的问题。当然也可以在新浪微博或者Twitter上加我。我的新浪微博是@曾宪杰_华黎,twitter@vanadies10。前面主要是针对比较大众的同学的一些感受、建议。那些在学校期间特别突出优秀的同学,直接联系我就是了。我会给你更有挑战、更有深度的东西。

我们这次春季实习生招聘,已经尾声了,没有通过的同学,如果你对淘宝有兴趣,也不要气馁,后面还有机会,可以等到秋季的应届生招聘。那么剩下还有差不多半年的时间,我建议你看看自己还有哪些地方是自己的短板的,抓紧时间去提升一下。从基础做起,不要好高骛远。记得我个人历史上写过最好的一篇作文是《立鸿鹄之志,从小事做起》,这个是解读《一屋不扫,何以平天下》的。同学们一定都有远大的志向,但是要从小事做起、从基础做起,脚踏实地,努力前行。对于离毕业还有比较长时间的同学,你们很幸运,还有更多的时间去提高、完善自己,但是千万不要挥霍光阴。加油!

posted on 2011-04-28 09:34 曾宪杰_顶天 阅读(4575) 评论(26)  编辑  收藏 所属分类: 职场

FeedBack:
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-04-28 12:52 王昆
做事情要有思考。
做过和尽力做是不一样。对年轻人来说,不管做什么,只要用心,就能够有收获。  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-04-28 14:16 张海
如果你面试我就好了,只是有点遗憾而已,对你说的基础部分很表示赞同,呵呵。  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-04-28 14:37 见习神仙_华黎
@张海,你的意思是你在另外面试官那里没有充分发挥?简历给我下?
  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-04-28 16:39 木蝉
黎叔写的东西果然很赞

已经完了面试我的时候,黎叔问的是什么问题了,只是记得让我觉得我的基础果然不够扎实,当时对技术的投入程度也远远不足。这半年来经常问自己,如果现在再去接受黎叔(以及其他面试官)的面试,我能够有更好的表现么,我能够符合标准么……虽然我仍然不符合,但是我想我有在提高,时快时慢的……

对于黎叔文末鼓励同学们的话,我觉得对于已经工作了的同学们也是一样的。要时刻自省自身的短板,一步一步地完善。  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-04-28 17:05 张海
@见习神仙_华黎
没,别的也还行吧,我是成都站的,在等offer,我做C和C++的,呵呵,只是觉得你说的很好。  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-04-28 17:44 ith
这个总结给我挺大启发,我也参加了在中大的面试,不过面试官不是你,希望有机会能跟你面对面交流,呵呵。
btw,面试完之后说还有二面,既然面试官都回杭州了还怎么面啊,难道婉言把我刷掉了吗?  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-04-28 18:31 见习神仙_华黎
@ith
是有两轮的,不过都是在25、26号两天。  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-04-28 20:30 mm
太对了,只要有钻研精神,一切都很好说,就怕半桶水  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想[未登录] 2011-04-29 09:20 李波
离淘宝面试官的面试已经很久了,在华科的时候,很顺利通过一面,到二面的时候感觉跟面试官也很谈得来,问的问题比较基础,主要考察功底,虽然答的不是尽善尽美,但也不是很差。后来没有收到offer,我反思了一下,自己在某些方面存在短板:一是单元测试,以前在学校写程序都不会想到要自己做单元测试,做项目的时候也是把测试给专门的测试人员来做,没有意识到开发人员自己也需要做单元测试,面试官当时给我推荐了JTest,我自己主要学C系列的,因此回来加强了对C++Test,CppUnit的学习;二是对于技术细节要再深一步,机制问题要了然于胸,希望秋季能有进步。  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-04-29 09:26 见习神仙_华黎
@李波
嗯,加油,我秋季争取去武汉这一站,不过我应该不会被拉去面C++,虽然前面有两年,都是打着Java面试官的旗号出去的,但是都去帮忙面C++了。
  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-04-29 11:08 李雅
是啊 面试遇到写一个简单程序,都考虑得不够全面,只是简单实现功能,没更多思考优化。 以后 要多进行深入思考了,很有启发!!赞!  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-04-29 12:58 碧雪蓝天2011
黎叔好,我对你的观点十分赞同,一面我很顺利的通过,二面时,面试我的面试官自己告诉我他都面糊涂了,结果不知怎么我就被他刷了。。。  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-04-29 13:01 碧雪蓝天2011
黎叔,我十分赞同你的观点,一面我很顺利的通过,二面时,面试我的面试官自己告诉我他都面糊涂了,结果不知怎么我就被他刷了。。。  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-04-29 13:01 见习神仙_华黎
@碧雪蓝天2011
介个。。。你面什么岗位哈?
  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-04-30 00:08 whiteBomb
说得太好了!!不过我有个疑问?不知道能否给予解答?

原文:
那么我出的这个题目需要考虑什么呢:

字符串和要查找的字串是不是null要考虑吧?

如果字符串比要查找的字串短,可以直接返回结果吧?

循环遍历的时候,字符串的起点,应该要保证从起点到结束,比字串长把?

我的话:第一种情况, 字符串S或T是null, 任何一个字符为null的情况返回的结果都是-1,那是肯定的,因为循环没有机会进入。
第二种情况:S比T短,这个很明显是返回-1,因为永远也不会到达T的最后一个元素比较。
那么既然都能够得出正确的答案。那么那些额外的判断是不是有点多余呢?我的意思不是说异常判断和优化多余。我的意思是说,既然在简短的几行代码就可以得出答案。如果你另外判断是否null和是否长,难道不是增加了代码的冗余么?
对!那是思考的方向,解决问题的过程。但是这个过程被考虑了之后发现它们对原来代码没有任何不足或错误的影响。所以可以不写的吧?不写也能够的出正确的答案,简短,何乐不为?所以,我坚决认为,这道题的第一种和第二种情况是不足以为考虑的,至于第三种情况,我没有看懂,sorry。

Waiting for your kindly reply。thank you very much!
949079968@qq.com  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-04-30 09:36 见习神仙_华黎
@whiteBomb
我赞同代码要简洁。不过我提到的这两个点,并不会增加复杂性。并且,这些逻辑上的处理,都是串行叠加的,是很清晰的。并不是耦合在一起,增加代码的复杂性导致难以理解。
并且,如果不判断是佛为null,那么后面如果取得string的char数据,直接就NPE了。这不是效率不效率的问题。是异常情况的考虑的问题。
第三点,可能我没有说清楚,很多同学写代码,双重循环在判断,第一层是遍历这个主串,第二层是子串,第一层是从0循环到最后一个字符,这个明显是没有必要的,因为到后面,长度都不够子串的长度了,还比较什么呢?  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-05-04 08:50 破碎的阳光
这年头拿了淘宝offer的人都拒了吧,有多少人会稀罕呢  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-05-05 14:54 镇江
hi 我是您的小同事,你的文章我借用发给我的学弟学妹了 要版权费的话联系
镇江(申飞龙)   回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-05-05 16:23 见习神仙_华黎
晕倒,没有版权费,能对别人有帮助就行,另外,也可以推荐他们来我团队。哈哈。@镇江
  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-05-05 18:01 见习神仙_华黎
@破碎的阳光
呵呵,个人有个人的选择,偶不评论。嘿嘿。  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-06-07 20:18 小飘
我有个问题,就是我看到很多东西,知识点,当时明白了,而且觉得理解的很透彻,可是过了一段时间后,又感觉很陌生,原因是长时间不用,就忘记了,可是如何才能长时间用啊,真是郁闷  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-06-07 20:22 见习神仙_华黎
@小飘
我觉得没啥好办法,只能多实践,我也这样的。所以,要学以致用,如果没有真正项目、工作的场景,那么还是要想个场景去实践下。这样效果会好些。  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-09-14 13:19 KevinJom
@见习神仙_华黎
马上 来西安不??  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-09-14 21:08 见习神仙_华黎
@KevinJom
我不确定我去不去西安。  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2011-10-19 14:50 见习神仙_华黎
@KevinJom 呵呵,上周我去西安了,10号到的,11号回的。好像那两天雾很大。  回复  更多评论
  
# re: 写给想加入淘宝的在校同学--广州实习生招聘感想 2013-10-29 23:41 金xx
博文让我想起了我的经历。我也是11年毕业生,创业大厦10楼(也可能是8楼)面的终面,也是字符串查找题,也是问了有没有别的方法,有什么不同。现在看是似乎是您面的,挺感谢淘宝的面试官让我通过了面试,交了好多朋友。

指出两处错别字。
1.“狼、羊、早过河”应该是“草”不是“早”吧。
2.“对于硕士同学,你们想对是有不少时间的”中“想对”是“相对”吧。

  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: