周末

不知不觉,年关将至。二〇一二真的来了!

看到微博上有人说,这注定是平凡的一年,因为它被寄托了太多的期望。期待地球毁灭吗?因为除了这个,我觉得其他的变化都是顺水推舟。例如,我将大学毕业,当然毕业的不只是我,事实上大部分只要不是太差劲的或者读双学位的和我一起入学的同学都将毕业。至于毕业以后的生活,我不知道,但也因为不知道让我十分期待。回想一下过年的年岁,我没有太多的选择,只是按部就班的做到我所认为的最好。二〇一二,我开始选择更加广阔的道路,就像一只刚刚跳出的井底的青蛙,一个刚刚睁开眼睛看世界的婴儿。

其实,生活已经开始慢慢变化。

突然发现已经离学校有了距离。现在大部分的时间都在魔都实习,很少会回学校,见到的人和事也已不同。我过上了朝九晚五的生活,不再像大二时每天凌晨睡觉早上翘课睡到昏天黑地。我也不再充满精力和激情可以做着一切我想做的事情。每到周末,我都会乘大巴回家,也因此被好婆戏称已经变成了一个上班族。其实,我只是想用一段不可多得的空闲时间多陪陪家人,享受和家人在一起的欢乐。我明白,我即将走向远方。

写着写着,发现离题了。因为到现在都没有提到很多周末的话题。今天,是我在魔都过的最快乐的一个周末,没有之一。下面就流水账一下,这时候小时候忽悠我妈妈的长项。

早上拿掉眼罩发现阳光已耀眼,磨叽了一会起床。洗漱完毕后打开电脑玩 KOF,这是我童年的回忆之一,玩过的人都知道。中午叫上 GC 和骚骚吃过午饭后骑车到张江高科站看电影。中途还去把欠费的煤气单处理掉了。张江的金逸电影城刚开业,有免费电影看,我们随便选了一部《预见未来》,还不错。看完来到复旦大学,发现里面空荡荡的,除了球场。我们三个人在球场问别人借了一个篮球玩了约莫两个钟头。让我欣喜的是,虽然长时间不打篮球了,投篮却很准,摸高也能超篮筐半个手。当然,这也归功于天天跑步锻炼身体。晚上,伴着夕阳我们搭着609欢快的回去了。

毕。

软件学院

潜水百合校内很久,突然发现最近对于“软件学院”的讨论有点趋于白热化。为了不甘人后,我也搀和一把,随便扯点自己的想法,无逻辑纯粹唠家常扯谈而已。

首先是关于专业排名。我刚进学校的时候,软件工程专业排名全国第一;第二年,被清华超了;第三年,把清华反超。不过也正如很多人所说的,没有任何官方机构对各高校或各专业有排名,所以这种排名大多来源于民间的诸如“武大郎”之流之手。所以这种东西的意义,我单纯的认为除了拿出去显摆显摆往脸上贴贴金之外没有其他任何作用。如果因为顶了这么一块金字招牌固步自封,那么这排名不要也罢。况且,谁又能知道这排名里面有没有猫腻?民间的嘛,私人的嘛,大家都懂的(无责任揣测,拒绝被跨省)。

然后说说“文档学院”。文档学院这个绰号的由来是因为我院的大作业中,文档占的比重实在是高啊。而且为了得到个高分,大家比拼的是页数而非内容。试想,如果你是一个助教,面对动辄上百页的文档,不要说一字一字的看过去,就算你是一行一行的看过去也会崩溃吧?而且这只是一组的作业中的一部分。所以,在这样的情况下你也只能给个高分吧?理由如下:人家写了这么多没有功劳也有苦劳吧;我都没看过,给了低分人家来找我怎么办?所以,在这样的标杆下,大家为了不吃亏就只能拼命增长文档的页数。关于作业代码嘛,我相信没人来看你的代码,甚至还不一定能把你的代码跑起来,尤其是牵涉到数据库配置,依赖一些非常规的动态链接库的。关于文档,我的看法是院里“过分”重视了文档的作用,颇有矫枉过正的趋势。就我的看法,扎实的编程基础是内力,一旦内力浑厚学什么都是轻松的,不信你问问虚竹。一套学了几个月的天山折梅手就可以灭了大轮明王!

再说说面向对象。我讨厌面向对象,没有缘由发自内心的讨厌。这玩意是反模块化反并行的,它除了在构建 GUI 之类的应用上有着比较强的优势,但也没见得非他不可啊。例如,GNOME 就是基于 GTK 构建的,而当初这帮码农选择 GTK 的原因是因为他们比较熟悉 C。现在起码在 UNIX 系统上的桌面环境上 GNOME 还是比较牛叉的吧?各位哪位用 KDE 的也请不要喷我,个人喜好而已。另外,我是一个非常虔诚的 C 用户,如果上帝只允许我在我的将来用一门语言,那我会毫不犹豫的选择 C。我很讨厌 C++,它过于复杂而我思维简单,所以驾驭不了。喜欢 C 源自一次机缘巧合,我那次恰巧在图书馆借到一本书《Python 源码剖析》,这也是我大学期间唯一一次认认真真从头读到尾的书,对于我这样一个懒人而言也算颇为不易了。这本书给我打开了一扇门,让我看到作者如何把 C 语言发挥的淋漓尽致,如何想尽办法把一个 Byte 扳成两个 Byte 来用,如何在时空这一永恒的矛盾面前进行一次又一次的妥协,如何管理好一大块内存,如何用一门过程化的语言构建一门纯面向对象的语言⋯⋯我也由此知道,面向对象只是一种思想,只要你有这样的想法,就算你把汇编写成面向对象也是 OK 的。貌似扯的有点远,不过就是表达一些我对院里过于重视外部招式(面向对象)而忽视内功修炼(编程思想)的不爽。

再说说老师。听到很多同学吐槽老师是如何的功利,拼命搞科研为了评职称申项目的有之,在学校外开公司拿学生当苦力的有之,炒房子的有之,总而言之就是大多忽视教学工作。还有同学说大学又不是高中,本就不能指望大学老师像高中老师那样,况且国内学术待遇普遍偏低,老师也是人,也要生活。如果院里就我一个人,我巴不得老师们各忙各的,上课什么的最影响学习了。他们只需要在每个学期的开始布置好一个项目,然后让我自己去查阅资料需要学点什么,然后按照要求做完给我个认真细致的评价,再有个不错的分数就好了。不过对于大多数人而言,这样的做法显然不妥,因为不是每个人都像我这么喜欢这个专业。所以要上课,要有不断的作业,要有助教检查,要有考试。另外,我们专业的特殊性在于作业易于拷贝而且不易察觉出是拷贝的。对于代码,我可以用工具加花,变量名,函数名,函数位置都可以整个变样,所以牛人越来越牛,熊人越来越怂。我觉得,成年人了嘛,要有自己的想法,知道自己要啥不要啥,喜欢啥不喜欢啥,老师不是成年监护人。不过,我不是赞同老师们都去各忙各的然后上课打酱油。起码要把每堂课都扎扎实实的上好,不要因为出差啊什么的就把课给 skip 掉,毕竟教书是教职的本职工作嘛。至于学生听不听,那是他们的事情。

最后是课程。哎,写了那么多有点脱力啊,让我先喝口茶⋯⋯我就列几个观点吧:

  • 教该课程的老师虽然给我们一杯水,但他应该有一桶水。什么只会读 PPT 的,上课老扯蛋的就洗洗睡吧。这里赞一下计算机系教数据挖掘的 zhouzh 老师,我去旁听过他的课,感觉讲的着实不错。本着不评价咱院老师的好坏,我就不举我们院老师的例子了。
  • 多一些“干课”少一些“水课”。虽然我不会列举哪些课是干课哪些课是水课,但我还是忍不住想说说干课是怎么样的,水课是怎么的。所谓干课,就是干的课,也是货真价实能够学到东西的课。该课的内容不会是那种大家买一本诸如《21天精通XXX》就能搞定的内容,也不应该是学了半天只知道一些基本概念而完全不知其所以然的内容。
  • 另外再增加一些提升内力修为的课。譬如说读一些优美的源代码,例如 Python 源码 :-P ,各种开源框架,然后再有一些 Hack 源代码的工作。
写不动了,就到这里吧,各位看官轻拍。

接近尾声的大学生涯

浑浑噩噩四年,终有曲终人散的时候。

尚记得大一的时候爹娘送我到浦口校区的场景,繁忙的报到程序,以及最后挥挥手告别时的场景。尤想起大学的第一节课是数学课,陆老师面对一帮鼓手欢迎的同学而不知所措的场景。还想到军训后的第一个十一,跟两个不认识的其他院系的同学拼车去车站,早已不记得他们当时的样子。

直到上个礼拜回到学校,我才知道我已经错过了大学里的最后一节课。这个礼拜回到公司,我知道在学校我已经没有考试。从来没想过曲终人散时的感觉,总觉得自己浑浑噩噩后知后觉,直到失去一些东西才会慢慢开始感伤。就像浦口,在离开前没有半分留恋,直到去了仙林才无比怀念。怀念的是记忆中的那些花草和房子,再去浦口是因为置身其中能够帮我更真切的抚摸那些回忆。

就算再淡定的人也会开始思考未来,因为当身边每个人都有所打算的时候你就不得不跟着一起行动。有不停的找工作的,有找到工作大家聚在一起狂欢的,有保研成功而过着醉生梦死生活的,有像我一样为了出国忙忙碌碌却一无所获的,有更加苦逼的坐在爬满爬山虎的窗前看着梧桐秋叶准备考研的。这个冬天注定是一个不普通的冬天,就好比一个成人宣言一样,我们走在人生的十字路口宣告我们下一段的征程。能够想到过年的时候,讨论的话题不再是老生常谈的期末考了多少分今年拿了多少奖学金,而是未来在何方?而事实是,这是一个想破脑袋也想不明白的问题。

那些找到心仪工作的,肯定会为此准备一些新的衣服,完成从学生老手到职场新人的蜕变。今年我的同学们,找到的工作都很不错。有听到去微软的,年薪二十万以上。有去各种外企的,年薪也有十五万加。再不济的去了一些创业公司,即使辛苦一些收入也不会低于十二万。

那些读研究生的,也会开始很紧迫的思考诸如毕业之后的工作,户口等非常现实的问题。对大部分人来说,读研只是为了文凭而非学术。

而对于像我这种一心梦想飞北美的人来说,有一个完美的offer才是可以温暖我整个寒冬的礼物。

所幸,在这样一帮即将告别大学生涯的人中,我不算最差的。

芒果数据库

写完标题我就立马后悔了。好久没有写点技术的东西了,文笔慢慢的趋于想到哪里写到哪里的东西,所以真怕写下来误人子弟。于是乎,我就写点关于芒果数据库比较直观的东西吧。不必纠结于具体用词,谈谈感受而已不必那么认真嘛 :-)

首先,芒果数据库的原名是 MongoDB ,而芒果数据库是我给它起得别名。跟传统的关系型数据库不一样,该数据库是 Document Oriented 的。那什么是 Document 呢?一个不严谨但比较直观的理解是没有方法的对象。以 Python 为例,{‘name’: ‘aegiryy’, ‘password’: ’123456′, ‘friends’: ['a', 'b', 'c']},这就是个文档。其实,看了这个例子你会发现你可以构建一个非常庞大的 Document,的确是这样的,JSON-Style 的东西就是神一样的存在……

那没看出来 NoSQL 相对于传统 RDMS 有啥优势嘛,似乎只要在 RDMS 上包一层 ORM 不就一样了么?错,NoSQL 的效率是你无法想象的高!这里的原因主要是 NoSQL 并非事务性的,没有复杂的表连接,查询的粒度远远没有 SQL 那么细,而且会有一定的数据冗余,这就使得人类无法阻止 NoSQL 了。来,咱们随便比比,这是对比的 SQL Server 2008 和 MongoDB 的插入记录效率。

是不是感觉不能忍啊?嘿嘿,的确是这样。但是 NoSQL 相对传统的 RDMS 的明显缺陷是没有统一的标准,这就使得数据的迁移会更加困难。事实上,即使是两个 RDMS,例如 Oracle 和 DB2,你试试看大数据量的迁移?痛苦死你丫的,DBA!

另外一点 MongoDB 很爽的一点是,它支持机群的简单增量。也就是说,MongoDB 可以做成一个分布式的数据库,然后通过非常非常简单的配置就可以增加额外的机器,而类似负载均衡这类的玩意都会静悄悄的内部解决,你无须干涉。另外,MongoDB 能够防止单点崩溃,因为无论是数据节点还是配置服务器都会有额外的机器来做成主从结构,使整个系统崩溃的可能性更加小。

一口气感觉写了好多啊……恩,下个礼拜二还要在 ebay 内部开个讲座专门介绍 MongoDB,所以到时候如果做好了 slide 我会放上来的!

闲话实习

写完标题才发现没啥好说的,那就传几张图片吧。今天是ebay的 intern open forum,有免费得午餐,这才是我想晒得东西!!

还有一大盒鸡翅鸡腿的,吃死我了。

突然想到,一个同学离职了。他是想在他的家乡谋一份职业,而不是在这遥远的上海。而且,要想拿到ebay的工作offer是一件非常非常困难的事情,今天的forum也提到了这个问题,说这是因为ebay并不像其他公司一样一定会在毕业季的时候招人,而是什么时候有了open position就什么时候招人。里面有的intern已经干了一年了,真是不可思议。不过总得来说,在ebay还是蛮能感受到对员工的关怀的,外企的氛围就是不一样。

不知道我会在这里待多久,赚够了钱就出去远行吗?

ebay实习第一天

只是记录一下人生中第一次正规的intern。

这是刚进入ebay时的一个巨大LOGO。

看到右边的一扇门了么?那是要刷卡才能进来的,在欢歌的帮助下我成功打入其内部。

正巧在门口遇到Eddy,那个电话面试我的manager。后来又有了进一步的面试甚至笔试,整个过程是在如下的一个会议室展开的。

忘记介绍我所待的部门了,走廊上有我所在部门的标志。

这里崇尚敏捷软件开发,所以到处有着白板和贴纸,贴纸上有一个个的story。

这是我的工作间(黑色的是我发到的电脑)。

这里有免费的咖啡,奶茶,果汁,茶水等。真心好。

我在帮欢歌编辑apache的配置文件。