找实习的坎坷道路呀-淘宝篇

大学的时光匆匆流逝,一转眼就TM的快毕业了。有句话说的好,人生苦短呀(必须性感)~~

大三的课几乎都是在打酱油,上学期做了一个学期的志愿者,课都没上过几节(不过好在,换回来不少加分)。下学期可倒好,我想上课的时候,课都快没了,一周就那么3次课,而且还都是吹水的课,实在闲的可以。

身边的人,不少已经去实习的了,神马银行,神马移动,神马房地产,个个说起来都很牛逼。

某人说,“公司一日,学校一年”,好像学校里的学的东西都不值钱了。虽然不苟同这个观点,但在实践中学习,的确会比纯粹啃理论要好的多吧。

好了,转入正题。

2011年某月,淘宝开始招暑期实习了。网申,我的第一份简历,写的马马虎虎的就投过去了(这关一般不咋刷人的,除非你特不靠谱)。投完简历之后,也没怎么在意,时间又晃悠晃悠的过去了。

3月某天,收到淘宝的笔试通知,4月1日考试(愚人节呀~~~),还有两天。囧呀,完全没有准备。平时觉得自己靠着google,翻翻API,能写一些网站,做一些应用,就算挺不错的了(还要不知天高地厚的小自豪),然而真要抛开那些,用笔来写代码,写些算法数据结构什么的,绝对就傻眼了。

虽然说当初“数据结构”考了全班第一,但是都过去这么久了,不少东西都忘到九霄云外,笔试的时候,我连最简单的二分查找算法都要涂涂改改的,明显基础不够扎实。

说几个笔试题吧:

1、

求一整数数组的子数组之和的最大值。

这道题看起来轻巧,做起来恶心,我实在没想到什么好办法,最后只能来两个循环,计算以每个元素开头的子数组的最大和,最后找出最大和。

这种解法就算是对的,也明显不合格~其实有复杂度o(1)的解法。

int maxSum(int* arr, int n){
    nStart = arr[n-1];
    nAll = arr[n-1];
    for(int i = n-2; i>=0; i--){
        if(nStart<0) nStart = 0;
        nStart += arr[i];
        if(nStart > nAll) nAll = nStart;
    }
    return nAll;
}

此题详解参见《编程珠玑》or《编程之美》。

2、

淘宝有2000台服务器,上面存了一些关于用户访问的数据,包括用户的ip、访问的URL、响应的速度等,让你找出平均响应时间最慢的前100个URL。

我当时的想法是,如果在所有的访问都结束之后再计算,数据量很大,会花很多时间,如果可以将这些计算平分到每次访问的时候,最后计算的负担就会减轻很多。问题就转化为,怎么在用户访问的时候,对这些url进行排序,保证整个序列一直有序,最后只需直接读取前100个最慢的就行了。

这个东西,想的时候很轻巧,但实际好像不大可行,那些url的数量可能不是几千几万个,是几千万个,甚至几亿个,总不可能让这么多的数据一直呆在内存中,让你慢慢排序吧。

如果说,不在内存中排序,把数据都写到文件系统或者数据库里,你的文件系统和数据库也不能保证它们一直有序呀,最后不还是得排序……

囧了,这题我绝对挂了。

这道题在《编程之美》里面有类似的,用大小为100的最小堆来排序,只需读取全部数据1次,算法复杂度为o(nlogn)。

不过,梦石大神说,“这道题这么解还不够好呀,应该用MapReduce,有2000台机器干嘛不用,直接云计算”,瞬间把此题秒杀。

3、

(前端开发题)给了个网页效果图,写出他的实现(HTML、CSS、JavaScript)

大概类似这个:

百度文库登录

手写代码,明显欠打。这东西要实现不是不行,只是在那种考试的环境下,时间又不是很多,还要手写……(有兴趣的童鞋,欢迎探讨)

大概就这几题印象比较深,因为都是挂了的。淘宝的实习,在愚人节那天被鄙视了。

鄙视总结:数据结构、算法必须扎实,对api要足够熟悉,多写代码,少复制粘贴。

虽然被鄙,但还是收获不少,在这些说难不难,就是做不成来的题目的打击下,认识到了自己的基础不够扎实,亡羊补牢,为时不晚。

我说:奋斗吧,少年!

发布者

Rolf

伪文艺IT攻城师,热爱前端,热爱互联。

《找实习的坎坷道路呀-淘宝篇》有2个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

[喜欢] [嘻嘻] [奋斗] [问号] [鼓掌] [泪] [酷] [强] [耶] [握手] [心] [给力] [神马] [围观] [奥特曼] more »