Work - 行者无疆 始于足下 - 行走,思考,在路上

慎言多思

世界很小,互联网很大。昨夜随手写的一篇文章,不知受到了哪位仁兄的抬爱,被转到了百度运维的Hi群里,搞得我险些被请去“喝茶”……半夜5点发的文章,早晨9点左右,由于豆瓣九点的推荐,访问量开始突增,到了正午,豆瓣九点上已经有了近五十条推荐……而我的个人豆瓣“粉丝”也激增了20+(增幅达20%),博客也多了很多订阅者。更奇怪的是,这篇文章到了下午5点左右的时间,豆瓣九点上的链接已经莫名失效了1。我又尝试去微博上搜索了下,只搜到了3-4条,最下面是“根据相关法律法规和政策,部分搜索结果未予显示。”

从各种渠道收集的反馈,多数人的看法是诸如“文章比较犀利”,“有同感”之类,还有一位仁兄说这是“loser的文章,看看即可”,一位与我素未谋面的仁兄说“我知道这位刺头是谁……淘宝有怎样怎样的问题……腾讯有怎样怎样的问题……”,还有的说“文章里有个人情绪,但也有原因分析,只是分析的不够深入”等等。午饭后一位百度的朋友QQ上告诉我说“你的文章火了,有人转到百度运维官方群了”,我心想“完了完了,这下没准要被请去喝茶了……”,然后又接到了几个朋友的电话,跟我说明下说文章的内容有不实之处和个人情绪在,我说我会再做斟酌,酌情修改。

文章大概7000字,写了8个小时左右。最开始只是睡不着觉,然后就琢磨着想写一写关于狼性的看法,后来越写越多,也就不自主的加入了一些个人的情绪在里面。”不识庐山真面目,只缘身在此山中“,我只是一个小小的OP,可能看不到那么高,也看不到那么远,因此文章的各种内容观点均出自个人,与别人无关,我会为我的言论负责。

首先我诚恳地向kain同志道歉。因为我的疏忽对你做出了错误的评价。坦白地讲,我对kain同志并没有深入的了解,对北大青鸟也没有深入的了解,甚至带有很深的下意识的个人偏见。我以前并不知道kain同志并非科班出身而是化学专业出身,靠着自己的兴趣和努力走上了计算机这条路,并且通过自己的努力进入了百度,我应该对此表示恭贺。我欣赏有想法、有主见、有自己个人兴趣并按照自己计划不断提高自身的人。事实上我觉的我也是这样的人2。碰巧我在大学之前也是学习化学竞赛的,几乎不会使用电脑,大学前两年忙于户外社团,对计算机的系统学习是大三以后的事情。你说的对,一个人的出身并不能代表什么,而别人的偏见在短时间内又难于消解,总会无意间就碰上有心无心看扁你的人。对此我在此表示诚恳的抱歉,也感谢你让我对我自身的缺陷有了进一步的认知。同时我也觉得,无论别人怎么看轻自己评价自己,自己才是自己最后的裁判。一个心怀优秀信念并不断努力的自己,即便碰上一些挫折,误解,只要自己对自己怀有信心,那么别人的评价再多,也“尽可当他是清风拂山,明月映江,虽能加于我身,却不能有丝毫损伤。”

其次,关于Hadoop开源方面,由于我并不是Hadoop的RD,因此关于“几乎没有对Hadoop社区的开源回馈”这句话是不准确的。Hadoop的一个C++框架HCE是百度自己独立开发的,测试显示其效率高于传统的Hadoop程序,并且已经开源。Hadoop之外,其他的开源项目,我了解的有一个UEditor,百度前端团队有一些开源的项目,参考https://github.com/BaiduFE,剩下的我所知有限。

以上两点我已经在原有文章中做了更正。至于各条怪现状,由于上篇文章掺杂着个人的情感和经历在内,因此难免有“吐糟”,“百度黑”的嫌疑。回过头来我也想过,如果将我个人的经历和情感去掉,那么文章本身是否会变得更客观理性更具有参考价值一些。挑几条再简单阐述下吧。

关于洗脑,我认为这个也没有什么不对,因为这是员工熟悉公司文化、制度、理念的一个很好的手段。但是有两点我认为需要改进,一是学习方式上,可以讨论,但是我认为“毛主席语录“式的学习方式是不可取的,应该要允许部分”异类“的存在,你倡导“快速迭代,越变越美”,但也要允许“慢工出细活”,“一炮打响”的存在;二是要与时俱进,我记得书里面好像有关于有啊的故事,但是有啊后来失败了,却没有一个地方对有啊的失败做个总结和反思,这就难免会让人对公司所灌输的理念产生怀疑。

关于开源,这方面我强烈建议百度拥抱开源,不要死守着老观念不放。没有自上而下的推动,没有公司气氛的烘托,光靠几个有心的底层RD敲敲打打是成不了大气候的。至于为什么要拥抱开源,这个就不再多做讨论了。

关于KPI驱动,这点尤其需要改变。我坚持认为“上下异心”是百度当前最大的发展阻力。但是这种局面的改变需要自上而下,而不是自下而上。要让底层技术人员放开手脚去做、去闯、去创新,也要让中层的管理者们转变KPI报表为王的管理策略,真真正正的去抓一些实际的东西。作为一个一流的互联网公司,用wiki的方式手工维护记录可用机器列表,用人肉的方式每周去copy/paste数据到固定的模板里生成报表周报,这种行为可以视为科技公司的一种耻辱。要大力推行工具文化,自动化不是一句口号,是一点一滴。

关于会议沟通,这个大概是大公司的通病了。我认为很大一部分原因还是工具不到位,自动化的东西做得不够好,所以不得不通过人力反复沟通确认来完成事情。在Hadoop组搞机器预算的时候,每次都是人肉Excel,反复打电话确认。而这些不必要的沟通很大程度上是可以通过开发一个成熟的预算系统来解决的。后来也确实有人做出了预算系统的原型,Lisp写的,我接手的时候还修复了几个bug,可惜这么个原型系统毕竟只是个人的业余工作,加上沟通电话实在太多,没有精力完善,上面也不重视,最后也就不了了之了。

关于自由上班,这个就仁者见仁智者见智了。中国很多企业的通病就是员工一迟到就扣钱批评,但员工加班晚归却视而不见。百度当然没有这样,并且百度的工作时间,以及加班补贴和调休制度都还算比较完善。所以归根结底还是要减少不必要的会议沟通,提高白天的工作效率。

关于Geek,我不认为用Linux/Mac就是Geek的一种表现,但是作为一个互联网公司,其入职预装的系统依旧是10年前的Windows XP,难免很让某些人(诸如我这样的)大倒胃口。Geek不是一个操作系统,也不是一个手机一个平板,Geek更多的是一种对待工作的态度——倾向于用机器来代替人,DRY,对代码的洁癖,对工作效率的追求,对文档排版这类美感细节的敏感。不要小看这类细节,细节代表着专业性,比如说技术博客一个最基本的要求就是排版规范,简洁,同时要有合理的代码高亮。但是百度很多“官方”的技术博客并没有做到基本的整洁规范,比如这里这里这里。多余的话不多说,如果你认为这些所谓文档排版,代码洁癖无所谓的话,我也无话可说。

关于有啊。其实这个事情我了解的并不多,我入职的时候有啊基本上已经散了。但是正因为了解不多所以我才在这里提出,因为我从未看到过公司层面上对自己做的任何失败的产品有过任何的反思。还是那句话,员工犯错可以批评可以扣KPI,但是如果公司犯错了呢?如果由于高管的失误造成公司的损失和员工职业发展的挫折,又该如何呢?再进一步,如果Robin犯错了呢?我觉得百度的高管应该认真反思下这个事情,要勇于面对自己的不足,敢于拉下面子做自我批评,不要总是高高在上,犯了错都是员工的,做好都是自己的。

最后的最后,还是再允许我多絮叨几句吧。首先我不是一个百度黑,我在百度长了很多见识,学到了很多书本上无法学到的东西,也有幸和部分真正的牛人有过一面之缘,管中窥豹,了解下他们的工作,给自己树立个目标。我所指出的这些问题,我相信至少还是有一部分是许多百度同学的共识,只是迫于各种各样的原因无法像我这种离职的员工更加方便的开口讲述。我希望百度能够更多地倾听底层技术人员的声音,不要总是脱离群众去制定自己辉煌的战略路线。我希望百度发展的更好,但我也明白知易行难的道理,作为曾经的百度人,我所能做的也只有这些了。其次是每个公司都或多或少有自己的不足,百度如此,腾讯如此,淘宝也是如此,毕竟时间并无完美之物,而人生之不如意又十之八九,我觉得多数情况下可以变通,但也不要被生活磨平了棱角。其三,我想说的是,个人的职业发展,8小时之外的功夫也许有时比8小时之内的功夫更加重要。所以我也提醒各位和我一样初入职场的同学,与其天天扑在工作上,能否多花些精力在工作外,然后反过来提升工作的效率,从而给自己的工作、生活和学习都留下更多的自由空间呢?

至于我个人的经历结果,我并没有太多的遗憾甚至抱怨,或许是我运气不好,又或许是我能力真的有限而我没有意识到。事情已经过去,多说无益,只求各位看官也千万不要把我看成一个高级文艺的“百度黑”。感谢一直关心我的朋友,我现在过得很好,住在北大附近,离未名湖五分钟的路程;工作不是太忙,用Linux+Emacs+Git+Python做着我喜欢做的事情,OpenStack教给了我很多;每天晚上归家奢侈地享受4个小时的阅读(悦读);间或周末去北大看场电影;赚得钱够家用,也能随心所欲的买书;沉浸在lambda的程序世界里;有个关心我的妞在身边。总之,一切都很好。

谨以此文,纪念我那九个月“不合格”的百度岁月。

--

Footnotes:

1 以前也出现过这样的情况,这应该是九点的bug,一篇文章如果被九点抓取过来后又修改过,那么九点的链接就会失效。但是这次文章发表之后直到工作下班我没有对文章本身做过任何修改,所以很奇怪……

2 我认为,一个人对他人的欣赏无外乎两种情况,一种是互补性欣赏,也就是在他人身上找到了自己身上没有的但值得学习的东西,另一种是印证性欣赏,也就是找到了和自己“臭味相投”的人。

 

李彦宏的“罪己诏”

1 离开

离开百度已经一年多了。

间或有人问我为什么要离开百度。找工作的时候问,工作了几个月后还是会有人问。我怎么回答这个问题呢?说A)试用期没通过不得不卷铺盖走人?还是说B)自己工作不爽主动离职?事实上我多数情况下会选择说B。被炒鱿鱼这种事当然是不光彩的,只是有的时候懒得解释,也就随便撒个小慌,一笑而过。我会跟人家说,他娘的我也想炒掉那个操蛋老板,只是我没有那个权利,被暗算了吗?

间或也有百度的同事打来电话,跟我抱怨说工作上如何束手束脚无法施展。两个月前,Robin一封狼性邮件,将百度推向了舆论的风口浪尖。可是通篇读下来,我只看到了两个字——“吃人”。

2 狼性

中国的领导似乎都有一个毛病,那就是总以为自己高高在上1,神圣不可侵犯。事情做好了,功劳都是自己的,心情好了赏仨瓜俩枣给手底下辛苦干活的员工;事情搞砸了,就开始埋怨员工不好好干活,没有“奉献自己100%的热血和青春”。

10年初Google退出中国后,百度已然躺在印钞机上数了两年的钱,其员工规模也从不到五千人膨胀到了接近两万人。不过,在电子商务、云计算和移动互联网的大潮下,这艘航母似乎还没有找到自己的航向,在通往未来的路上越走越偏……

无可否认,在中国互联网的发展历史中,百度占有举足轻重的地位(废话一),创造了多个中国第一(废话二),即便在百度略显疲惫衰落的今天,它依然是中国互联网界当之无愧的三大巨头之一(废话三)。这里有(一些)中国顶尖的工程师,(比较)海量的数据,(比较)庞大的机器规模以及许许多多在很多公司、高校和实验室都无法找到的学习工作环境(废话四,你能指望学校的实验室搭建千台规模的集群供你把玩吗?)可是我们也异常遗憾的看到,凤巢以后:

  • 百度已经很久没有推出令人耳目一新的产品了(典型的如03-06年的知道、百科和贴吧)。
  • 百度迄今为止所有的国际化努力都是失败的。
  • 在电子商务、移动互联网和云计算方面,相比较其余互联网公司,百度毫无建树。

一个手握百亿现金流,掌握中国互联网生杀大权的公司,竟然几年之内拿不出响当当的产品,Robin首先想到的是员工不够拼命,因此任何“有良好背景,流利英语,稳定的收入,信奉工作只是人生的一部分,不思进取,追求个人生活的舒适才是全部”的人,都是小资,都是要被淘汰的。可是我不明白的是,“信奉工作只是人生的一部分”,“追求个人生活的舒适”,这个有错吗?绝大多数的人死之前,想到的不是工作,而是家庭、朋友、亲情。人之所以成为人而不是一部工作机器,正是因为人生中有比工作更为重要的东西。我热爱我的家庭朋友,也享受下班归来灯下漫笔读书的时光,这个有错吗?

没错,作为老板,你当然可以挥舞着狼牙大棒叫你的员工一边加班一边喊爽,但这种所谓狼性是由上而下的,不会长久。我认为,百度当今最大的问题在于上下异心。上层想要业绩要改变要漂亮的报表,中层欺上瞒下只看KPI,每天想着怎样弄份漂亮的报表好生存下去越爬越高,而底层技术人员确实想做一些技术上的事情,但被中层经理压制,有心无力。技术上不去,一切都是空谈,所谓的业绩报表,除了欺上瞒下,就是自欺自娱。房地产企业的土地房子可以升值,但互联网企业的代码机器却会腐朽。

3 岁月

即便算上实习,我在百度待的时间也只有九个月,不到一年。从最初的新鲜兴奋,到最后悲剧性的离开,这期间各种人事变动、技术思考,我几乎从未在博客上写过。今日趁着记忆尚存,偏又莫名辗转难眠,权且将自己在百度的经历,以及自己对工作的一些思考记录下来,希望对后来人有些帮助。其中陈述可能有失公允,欢迎讨论和指正。

以下逐条列出百度之“怪现状”

3.1 百度论语的洗脑文化

当代企业最爱做的事情就是给新员工洗脑,洗脑的内容也无非就那么几项,一是你现在的公司多么多么好,二是你现在的老板多么多么圣明,三是你现在的工作对公司多么多么重要(对,后勤工作对公司也很重要,搞卫生扫厕所的就更不用提了),四是即使你当前的工作不怎么重要不怎么有趣不怎么符合你的预期只要你好好工作那么多年媳妇熬成婆你总会有出头之日的。洗脑本来无可厚非,特别是在天朝这种神奇的国度里。只是百度也搞这一套,倒真是让刚刚实习入职的我大跌眼镜。我记得那个时候刚刚入职实习的时候发了一本《百度论语》,然后每周开例会的时候,一组人做一圈,每周学习一条,轮流说心得报告,总共29条,可以学习半年了。事实上这本书也不是什么不好的书,但这种学习的方式总让我想起七十年代人手一本《毛泽东语录》的场景。书中Robin被写的近乎完美神化,可是我却从来没有看到过百度内部哪里有关于失败产品(典型的比如百度Hi、有啊)的总结。

3.2 封闭的技术开发

中国的互联网企业都有一个毛病,那就是没有开源共享的精神,对开源社区索取大于回馈,百度也是如此。这些企业总是以为自己的技术高人一等,又不想做那些”琐碎“的基础工作,将开源的项目拿过来修修补补贴点牛皮藓后就开始到处吹牛逼说什么世界领先国内一流。比如我在的时候,百度宣称自己的Hadoop集群在规模、负载和利用率上是世界前三的。可是这又有什么用呢?第一,Hadoop不是百度开发的,百度只是打了点补丁做了些定制而已;第二,百度的Hadoop集群数量只有10+个,远远比不上Google 100+个GFS集群这样的规模,其整体的自动化运维水平也差了一个世代;第三,百度所做的所有“改进”很少回馈过开源社区。

其实在Hadoop之前,百度也曾想过开发自己的GFS+MapReduce+BigTable,没错,百度想要开发的系统就是基于Google那三篇著名的论文的2。这个系统叫做Pyramid,其领衔人是王选的高徒阳振坤博士。Pyramid大约开发了2-3年,最终以失败告终,据说最后与Hadoop PK的时候完败下来,阳振坤也在其后离职加盟淘宝3。我不知道Google开发GFS+MapReduce+BigTable用了多久,但是GFS的论文是03年,MapReduce论文是04年,BigTable应该是07年,想来Google应该也是开发了4-6年左右的时间。Pyramid的失败直接导致了Hadoop在百度的崛起,不到两年,Hadoop的机器数量从无到有,很快就突破了万台的规模,并且机房也从北京开始像长三角扩展,百度也终于迈出了跨数据中心的步子,尽管这个步伐似乎比Google慢了5-8年4

不过百度虽然自己用Hadoop用得很High,负载什么的,报表都弄得不错,集群规模也上了国内少有的3000+台,但是却很少对Hadoop社区进行开源回馈。其内部Hadoop是基于Hadoop 0.19-0.20改进的。这样做的好处就是快,一方面依赖社区拿到已有的代码基,整合测试就可上线,同时也不用管什么伦理道德奉献回馈的鸟事,但其缺点就是内部的Hadoop和官方的Hadoop会逐渐越走越远,上游的Patch和改进越到后来会越难引进合并。这样做的结果就是和社区分离,用自己一人之力对抗全球智慧,最终只能自讨苦吃5

我记得有一次内部年会上,有位工程师跳起来问,“公司可不可以做一些开源的产品呢?很多东西本来就是从外边拿过来的。”我只记得当时台上的两位高管,其中一位女高管脸色稍变,过了一会又开始讲什么“做开源需要时间精力;好的东西才好意思开源出去,否则会丢脸”什么什么的。我想,一个IT公司有没有勇气拥抱开源,是一个公司是否对自己的技术有足够自信的一个表现。在这方面,百度乏陈可善,不但没有代码,连论文也很少。而淘宝在章文嵩的带领下,其开源已经做的如火如荼,算是国内IT企业中开源做的最好的一个。

3.3 世界上最优秀的工程师?

百度的内部邮件中不止一次的提到“世界上最优秀的工程师”这个字眼,可惜作为这封邮件的收件人,连我们自己都不相信自己是世界上最优秀的工程师。09-11年高速扩张的两年,百度的招人标准降低了很多。这也是无可奈何的事情,毕竟中国的人才储备有限,有时候即便你想花钱,也不一定能招到足够的人。

你当然无法否认,百度内部有很多牛人,可是大凡拿得上台面的公司,那个手里没有一些牛人呢?重要的是保证整体人才的平均质量,而不是树立几个典型,然后就自吹自擂说自己的工程师是世界上最优秀的。

3.4 KPI为王

我在Hadoop运维组做到第4个月的时候,一手创立Hadoop运维的经理走了,空降了一位新来的经理。当然,这位经理是不懂Hadoop的,加上他又实在繁忙,所能做的就是从报表入手。比如说每周几千台机器几百条小报警有没有都处理掉,预算做的怎么样,总之都是报表性的东西。至于技术上的,监控怎么做,如何才能更好的自动化,怎样统一归约化的整合集群的各个系统,从来就不是他关心的重点。我辛苦两周做出来一个小的监控系统,可以自动的检测各个集群的一些指标参数,并且支持自定义插件,自动化的生成监测报告发送到邮箱中,他给的评价是“这算啥,T2的工程师都能做”。我当时特别火也特别委屈,心里想“T2的工程师都能做,可是为什么一直没有人做呢?站着说话不腰疼”。

再比如我们每周都要写Hadoop集群运维周报,内容无非是去几个监控系统上鼠标copy/paste一些数据到一个模板里。其实这样的东西完全可以稍微花些人力写点程序抓点网页完成,可是一直没有人做这个事情,大家就这样一周一周的写下来。反正经理要的就是这个,谁管你怎么得来的呢。

当一家技术公司由技术驱动变成KPI驱动的时候,也就意味着这家公司发展到了一个瓶颈期。不断有前同事跟我聊,说自己想做一些事情,但是经理不让。为什么呢?比如说一个4、5年的产品代码,由于人员的交替加上技术的封闭,必然是有很多丑陋的代码的,这个时候后来接手的人如果是个有责任心又有代码洁癖的人的话,自然就想对代码做些重构和改进。这就带来了一个问题:万一由于这种额外的改动造成产品出现事故,怪谁?经理是不想承担这样的责任的,因为百度的经理不写代码,多一事不如少一事。这样一个技术人员的积极进取心就这样被压制了。还有的经理说,”做,可以做,如果一个星期之内可以完成,就去做”。可是有多少伟大的产品是一个星期内完成的呢?GFS不是,MapReduce也不是。可是经理才不会管这些,他关心的是他的KPI,是报表。一个东西,如果短期内无法出成果,就不要做。

所以像Puppet这样的工具是不可能出自百度之手的。即便是工程师在平时的工作之中有一些思考,但也很少能有时间形成系统化的,并且能够走出百度被业界认可的东西的。

3.5 会议,还是会议;总结,还是总结;沟通,还是沟通

百度的会议之多,总结之烦,沟通之杂简直是令人闻风丧胆。我在百度的时候,每周至少开3个会,每个会不少于1个小时;每天发送查看邮件不少于40封;每天花在Hi上交流的时间不少于3个小时。有人会问,这么多的沟通会议时间,还有时间干正事嘛?怎么会需要这么多时间沟通交流呢?首先是百度非常看中邮件文化,所有事无论大小都要有个邮件性的总结,学会设定邮件规则是每个百度人的第一课;其次就是百度的部门极其多,据统计整个公司大概有500多个部门和组,工种单一,想要完成一个Project需要跨越很多部门。这就导致了百度内部的沟通成本一直居高不下,会议室都要提前一周甚至两周才能订上。很多rd都是上午过来处理邮件,下午开会,然后晚饭后写代码6

3.6 自由上班?Shit

百度号称自由上班,但这个所谓的自由上班,每天8小时只多不少7

3.7 部门隔离

没错,百度虽然号称“简单可依赖”,“不唯上”,平等,无“公司政治”的企业文化,但是由于部门繁多,流程繁杂,真的想做一件事情,如果没有自上而下的推动,光预算、排期、开会就要耗掉几周甚至几个月的时间。

另一方面,如果你去仔细观察百度的产品,你会发现百度的产品风格差异极大。无论是网页产品还是客户端产品,其UI方面从来都没有给人一种非常明朗统一的感觉,能够让人一看就知道这是百度的东西。这方面,苹果做的最好,Google次之,百度毫无章法。

3.8 Geek在哪里?

百度并不是一个Geek公司。Facebook是,Google是,但百度不是。大多数工程师还在用着10年前的XP系统,用着盗版的Office和SecureCRT软件登录SSH写着各种文档和代码。百度的工程师没有追求美感的习惯,这种美感包括但不限于代码风格、文档排版、产品设计等。据我所知,Google的所有代码在提交之间都会经过一系列的检查,但百度至今没有如此完善的流程。至少在我们组,代码写了一年多,才想到要重新整理,规整风格。百度内部的wiki、代码审查,项目管理系统从来也是破破烂烂,没有类似于Facebook phabricator这样的系统。

3.9 有啊

百度历史上有很多失败的产品,但是从来没有一个产品,如有啊这般惨烈悲壮8。这样的人,这样的团队,这样的条件下这样的时间内做出了这样的牺牲和这样的业绩,但最终依然无法摆脱失败的命运。有的时候,我真的怀疑,当你怀着“我坚信让我一往无前的唯一力量就是我热爱我所做的一切”这样的信念去努力去拼搏的时候,你的老板能够看到并且认可你的付出吗?有啊的惨败,百度的高管可曾做过认真的反省?这究竟是公司战略上的问题还是员工的问题?员工犯错可以扣钱扣绩效,但如果是公司犯错呢?公司做过这样的检讨吗?

4 无他

最终导致我离职(或者被炒掉)的事件是因为一次不快的沟通。那次沟通中经理对我做出了“好高骛远”的评价,并且不认可我平时业余时间KPI之外的工作成果,说我的东西“连T2的工程师都可以做”。而我当然不认可这种评价,当面顶撞了他,说“不认可这种评价”。这可能直接导致经理认为我是个刺头,无法约束,干脆开掉为好。于是在我转正前一周我接到通知让我滚蛋走人。我将此事告知了我前面三个月的导师,他表示非常震惊。HR也特别奇怪,说一个人怎么前面三个月好好的,到了快要转正的时候突然就被开掉了。

回家之后,我跟妞说,“不以物喜,不以己悲”,《偷得浮生半年闲》。

5 箴言

一个人工作的价值(狭义上讲是薪水)正比于这个人的不可替代性。

“谢谢你们曾经看轻我”。

“即使缤纷落尽,繁华消亡,青春绝版,也不要被生活磨平了棱角”。

--

Footnotes:

1 和菜头:放开那些员工和菜头:得罪得罪

2 所以你千万不要相信百度说自己和Google在竞争,事实上如果没有GFW“贸易保护”的话,百度根本没有和Google竞争的技术实力。你要相信,无论是从技术、人才、基础设施和营收上来比,百度和Google都不是一个级别上的公司。

3 关于这个项目更多细节,可以参考内部人士尚未写完的Pyramid传奇系列,我接手Hadoop运维的时候,Pyramid已经下线了,只在Wiki上看到过只言片语。

4 Oh,5-8年,IT的一个朝代都过去了。

5 国内IT企业对待开源大多如此,但是有些企业已经开始觉醒,比如新浪之于OpenStack

6 参考:一个前百度工程师看百度的狼性

7 参考:工作这些年

8 参考:东宝:为了即将忘却的记忆

----------

这篇文章发表半天后,由于某位不知名的百度仁兄的抬爱,忽然的就火了起来,也吓了我一跳。我写了另外一篇小文作为补充说明:《慎言多思》。如有任何建议指正,欢迎多多指教,xiaohanyu1988@gmail.com。

另,很多人提到说题目有些“驴唇不对马嘴”,我这里稍微解释下。首先我是明白“罪己诏”这三个字的含义的,取这三个字为题也是有意为之;其次是写这篇文章的初衷是为了“批判”下Robin的那封狼性邮件,因为我觉得百度出现的很多问题是公司层面的而非员工层面,绝不是为了博眼球。想来想去还是觉得这个题目比较好,加上引号,算一点修正,剩余不再修改。谢谢诸位提醒。

找工作总结(下篇)

Table of Contents

1 为什么要找工作

1.1 出国

  • 一直没有想明白为什么要出国。很多人刚上大学的时候就定下了要出国深造的目标,他们的大学生活就按照这条主线稳扎稳打,好好学习、争取名次拿到奖学金、GRE、TOFEL、大三出去交流一个暑假、大四回来开始焦头烂额的准备ps、cv,投递申请,拿到offer、然后出去旅游一圈,最后回来跟大家告个别,踏上异国求学指路,步步为营。说实话我挺佩服这样的人这样的生活,但也仅仅是佩服而已,佩服的是这样的坚持和毅力。但是我扪心自问,这是我想要的大学生活吗?我想了好久,我发现我心里面没有那种冲动,这也不是我特别想要的生活。一句话,我对这样的生活方式没有感觉,不感冒。
  • 出国需要很强的经济背景。我所了解的情况中,绝大多数出国的同学家都在城市里面,家里经济条件都不会太差。我虽然很爱玩,也花了一万多的银子在装备和旅费上,而且我的家庭条件也还说的过去,但是这些花费,恐怕也只够出去交流一次的机票钱罢了。再说我父母都是个体,我不想大学毕业后给他们带来更大的负担。
  • GPA是一个坎,由于大学前两年玩的太high,导致成绩很是一般,想出国只有一个方法,就是重修。我才不愿意为了GPA去重修那些无聊透顶的课程呢。每当想起来马原、电路、思想品德,还要交作业,跟老师讨价还价,我就脑门疼。
  • 现在再想想,工作几年,自己有了一定的工作背景和经济实力后,还是很有可能出去深造下。其实一来是深造,第二就是我还是挺想去国外体验一下全新的生活。anyway,出去走走,看看外面的世界,这或许是我读书之外少有的爱好了。

1.2 读研

  • 我觉得很多人考研是一种逃避,是一种缓冲,是自己信心不足惧怕走向社会的一个临时窝点。当然并不是所有人都这样。不能以偏概全。
  • 我讨厌党八股,讨厌马列毛邓。我考我的计算机,你弄个马列毛邓干啥,还非得占一百分,什么道理。大学生盲目入党是中国教育最大的悲哀。
  • 我在本科阶段没有找到我的舞台,我对研究生阶段不报任何的希望。我泡过实验室,也了解一些研究生生活的内幕,发现这潭水深的很,不是那么好趟的。有个教授着我谈,硬是给我发一个直博的offer,其实那个时候我还是挺心动的——在美丽的西湖边老和山下,在静下心来读五年书,探寻下计算理论和数学基础的和谐之美,想想还是挺惬意的一件事情。可是后来我想到要继续向本科那样应付各种无聊的课程、评比、会议、论文,想到王垠的万字退学书,就觉得这对我来说太不靠谱了,因此就据掉了。

1.3 工作

  • I need money。我需要钱来满足我个人物质和精神上的需求。我需要钱来作为基础,去做自己追求的更高的事情,比如开办一所学校,比如去帮助那些需要帮助的人。我希望我30岁前能够赚够一千万,这个目标可能现在看来还遥遥无期。我还有8年。说了这么多,我承认我很爱钱。但我认为钱仅仅是一种手段,但是决不能成为人生的目的。钱可以帮你达到某种人生目的、实现人生的价值,但是钱本身不是你需要达到的人生目的、也不该是你人生的价值所在。
  • 我需要一个快速成长的平台与环境。社会和校园不一样。校园允许挂课,但社会不允许。这就是差别。
  • 我喜欢互联网公司的扁平、高效、快捷。比如baidu自由的上班时间、永远敞开的高层办公室大门、无拘无束的服饰,淘宝的花名文化、江湖文化、倒立传统。
  • 我再也无法在校园的学习环境、评判体系下生活下去。它彻底抹杀了我的学术兴趣,扼杀了我的科研热情。我需要尽早地走向社会,寻找更大的舞台。

2 怎样去准备

  • 从现在就开始准备你的简历。简历上每一个词每一句话都应该是几周几个月甚至几年的积淀。整个大二一年我挂了8门课,连最重要的计算机基础课数据结构基础、计算机组成都挂掉了。总学分不到90。那个时候唯一做过的像样一点的项目就是一个Java课上做的校车查询系统。那个时候我就想,以我这样的基础和条件,再过一年,我能找到什么样的工作呢?我开始去看各大公司的招聘要求,从那个时候开始我就开始关注找工作事宜了。大二下的时候我开始学习使用linux,并一直坚持了下来,熟练的使用linux工作学习和生活,让我的工作学习效率有了大幅度的提高。大三伊始,我给自己定了几个目标:
    • 英语
    • 大三成绩
    • 专业能力
    • 项目经验
    • 扩大人际交往面,多认识一些牛人
    • 实习
  • 大三一年我几乎没有出去玩过。这一年我按照自己的目标闭关修炼:
    • 关于英语,我一直只是在坚持读英文原版教材、看英文技术资料,并没有刻意地去提高。
    • 关于成绩,大三上半年我确实很努力的在学习,过了14门专业课,平均80左右,对我来说是很高的成绩了,大三下由于各种事情,只过了9门专业课,弃了2门,挂了2门,平均也80左右吧。
    • 关于专业能力,我一直坚持使用linux和latex,坚持使用linux让我对linux的日常应用、系统配置有了系统的了解,这让我日后应聘百度运维部有了操作系统能力的良好基础,坚持使用latex写作业和报告,一方面提高了我的效率,另一方面也让我有机会结识了一些朋友。比如我一门课的助教在我交了一次作业后就把我的tex模版偷了去,用来做他自己的文档,还给我发来了邮件解释。
    • 关于项目经验,大三下的时候进去实验室做了一个c++的手机项目,写了5000+的c++代码,让我的简历上有了浓重的一笔,五月份的时候很功利地去参加了学校的数模比赛,拿下了二等奖,这也终于让我的简历上有了一个像样的专业奖项;很功利地去ZOJ上刷了百十道题,还像模像样地去参加了校队的选拔,虽然是垫底被刷,但是简历上关于ACM的些许了解,还是让我多了哪怕一点点的资本吧。
    • 关于扩大人际交往面,我倒没有刻意去做。我虽然知道哪里有牛人,但是贸然加入,总是感觉很别扭。大三上的时候曾经去面试过MSTC TG,无奈水平不够,悲剧了。没能加入MSTC,没找到属于自己的学习进步的平台,没搞过像样的学业比赛,算是我大学里的遗憾;大三坚持写了一年的blog,主打技术,一方面总结自己所得所学,另一方面也让自己有机会和同道网友交流学习;我还申请当了zju88上LinuxApp和TeX版的版主,虽然版面冷清,自己也确实没有做过什么事情,但这个虚名也可以在简历上写一笔吧;
    • 关于实习,通过自己的努力,我拿到了华数淘宝的实习offer,虽然实习待遇很低,但是确实认认真真地做了三个月,学了shell script/python/web/server/ffmpeg等很多东西,也确实做出了一些东西,成功上线。这也成为日后应聘百度运维成功的决胜之处。
  • 扬长避短,有选择的学习。所谓宽专交就是个狗屁。人的精力是有限的。有些东西适当了解是有好处的,但是过于深究未必是好事。就比如你用电脑不一定要知道Intel CPU 8086系列有多少条指令,你用微波炉烧饭不一定要知道其内部原理,你买个相机回来拍照不是要把它拆了看个究竟。我最讨厌的就是一个学期选十几门课几十个学分,痛苦的学着,还学不会学不精,最后靠老师放水拿到绩点学分,相当的无聊。据说MIT的研究生每个学期平均只选2-3门课,选4门的不是疯子就是绝世天才。我觉得什么时候中国的大学能够精简下课程体系和专业体系,不再搞那么多花花哨哨的东西,课业考核不再放水,那么中国的大学就离世界一流大学又近了一大步。
  • 关于GPA和学位。大二时比较幼稚,放狂言“GPA就是个屁”—现在倒没有那么年少轻狂:GPA的确能在某些方面反应出一个人的素质和能力。学位和成绩都不是最重要的,重要的是学位后面捆绑着的你自己的个人能力。或者说,学位是能力的副产品。

3 关于职业生涯的初步看法

  • 关于码农的前途。不要相信什么IT民工,码农没有前途的狗屁说法。更不要相信码农是吃青春饭的传言。码农也是有门槛的。码农可以转金融、管理、销售、技术支持,但是其余的专业却很少有人转回码农的。说码农吃青春饭,如此说来,绝大多数行业都是在吃青春饭了?干一行爱一行,找到自己所爱已属不易,如果看着碗里的看着锅里的,只能凭添一些烦恼罢了。
  • 终身学习。凡是毕业以后再不看书不学习的,要么家里有背景要么有钱,否则都没有前途。
  • 起点与奋斗。世界原本就是不公平的。你奋斗了十八年,很有可能你还是不能和你的同学坐在一起喝咖啡。我来自河北北部一个小小的县城,一个十年都不会有超过两位数的人考上清北复交浙大的地方。走出县城,进入唐山一中省理科实验班,保送到竺可桢荣誉学院,拿到baidu的offer,即便是去北京混几年,赚了点钱,又能怎样呢?我还是没有户口、没有房子、没有车子的北漂一族。凭什么北京人享受那么好的教育资源?这个问题永远都不会有答案。你可以继续这样问下去:“凭什么美国人享受那么好的教育条件?世界前100的学校有一半都在美国,而美国和中国的人口比例呢?中国大陆的名校个数呢?”这样问下去终究是不会有答案的,也不会有意义,倒只会让自己产生无端的郁闷罢了。开复说“用勇气去改变可以改变的事情,用胸怀去容纳不可以改变的事情,用智慧来分辨两者的不同”,没错,就是这样。既然无法改变,就坦然接受,在有限的条件下实现人生的最大价值,这应该是人生意义所在。
  • 关于平台。看一个人的品味和素质,要看他的朋友圈子。这就是平台的作用。
  • 有的时候不是因为你优秀,是因为你不可替代。
  • 关于专业差异和薪水。大体来说,工作分为两类,所谓技术类的和非技术类的。技术类的门槛较高,光简历就能刷掉一批人,而且很多岗位有专业限制,起薪也会相对高一点,以后的上升空间会比较平稳。非技术类的门槛略低,所以很多时候这类岗位由于不限专业的原因,竞争非常激烈,常常会出现群面的状况。但是我所面试的IT公司,从来没有群面这一说。CS的起薪是很高的。但是CS的人对于王道这种说法还是会有一些不爽的。好像如此一来,CS是王道专业,自己只要有了这么个专业牌子,自己在专业上的努力就一文不值了。又有多少人知道写千万代码剪不断理还乱的踌躇、有多少人知道简简单单的一个百度首页,后面有上万人的团队在为之服务、保证其正确运行。隔行如隔山,在对一个行业有深入了解之前,还是少做评论为妙。有人说金融怎样怎样,有人又说销售到处跑怎样怎样,可是又有多少人知道金融人员的辛苦,销售人员初期起步一个个电话据信的辛酸。你既然说CS王道,薪水高,那你当初干嘛不选这个薪水高的王道专业呢?既然不喜欢,学习不来,到头来也没什么可以抱怨的了。

4 关于计算机专业的学习

  • 注重内功的修炼。练就一副火眼金睛。什么SSH框架、F#、C#都是过眼云烟,IT界是新名词诞生最快的领域,随便翻开某个库的API文档,都可以发现海量的新名词,根本不可能学完的。Win32 API有上千个函数,Python语言有几百个模块,Emacs扩展命令就如天上的星星,汇编语言若干种不同的处理器架构版本,随便一个大点的项目都有上百万行甚至上亿行的代码,怎么可能学的完呢。去伪存真,学好核心的东西才是正道。unix/tcp/ip/c/c++/lisp/algorithm/vim/emacs/tex,这些才是万年不变的经典。
  • 注意书籍的选择。一般而言,还是选择国外原版书比较好。国内的环境太过浮躁,很少有人能够用心去写一本好书。尤其是计算机专业。阅读原版书的好吃就是能够保持自己对本专业英语的敏感度。国内的书籍,腾讯郭欣写的《构建高性能Web站点》、李先静的《系统程序员成长计划》、侯捷老师的一些书、陈儒先生的《Python源码剖析》、温谦的《CSS设计彻底研究》、邹恒明的《计算机的心智——操作系统之哲学原理》等等,这些都是豆瓣上评分很高、也是国内少有的技术佳作。如果一本书同时有影印版和中译版,建议还是坚持读英文版,虽然开始读起来会有些“慢”,有些吃力,但是最终会受益终身的。
  • 勿在浮沙筑高台。你说你精通算法,能否在十分钟内写出一个快速排序算法?反正我有些吃力。你说你精通c++,你是否能说出c++ STL vector的size(),capacity()有什么区别?是否用过模版和虚函数?想提高算法,《算法导论》一本去找个OJ踏踏实实地刷几百道题;想弄懂c++,就得一点一点的读读STL源码;想学通网络,就得扎扎实实地去啃下网络之神Richard Stevens经典的《TCP/IP详解》三卷本;想学unix,就得去看看《APUE》和《Unix编程艺术》;想玩通emacs,就要去读读《ANSI Common Lisp》和《On Lisp》。这里说的我也没有完成,但是我知道我该读哪些书,该去怎样做。
  • 努力认识一些牛人。作为浙大CSer,不了解吴嘉之的传奇、不知道徐串叔叔GCJ冠军的骄傲、不知道Zodiac的辉煌,是不可原谅的。有对比就会有差距。我大一刚刚会装XP的时候用了一个vpn上网的软件,后来惊奇的发现原来这个软件的作者是我的同班同学……到了现在,我用的linux平台上的输入法,ibus-sunpinyin,其中一位主要的作者,也是我的同班同学;我所用的vpn上网的包,也是自己同届同学写成的;还有ACM金牌winsty同学,经常请教一些问题,对我帮助非常之大。其实所谓大牛只有两种,一类是天才型的,一类是勤奋型的。天才加勤奋型的,那绝对是大师级别的。前者,天才型的,比如我的高中同学,我们同样是来自承德小县城的中考状元——中考分数都一样,到了高中第一次月考,我考了年纪300多名,那个哥们以数理化三门满分的成绩拿下了年级第一名……后来也是这样,那哥们两个一奖年级综合第一保到了清华,我么,费了九牛二虎之力拿下一个一奖,来到了浙大。后者,勤奋型的,这样的例子太多了。相比较而言,我更佩服后者。

5 最最重要的

  • 知道你想要什么样的生活,努力去做,并以此为乐。大学里有人说学习GPA很重要、有人说社团活动很重要、有人说比赛实习很重要。其实这些都不重要。最最重要的,是你知道你想要怎样的生活,向着这个目标努力去做,并以此为乐。一言以蔽之,follow my heart。记住,你是一个人,不是现代化教育生产流水线上的产品。所谓人生,就在于有目的地折腾。

找工作总结(上篇)

工作定下来已经有一段时间了,一直想停下来写点什么,怎奈每次提笔,思绪飘飞,却不知到如何开这个头。也罢,就列一些数据,先来个大概印象。
基本信息

  • 本科平均绩点:3.0(75分左右)
  • 挂课:12门
  • 课程最高分:91
  • 课程最低分:32
  • 大学期间到课率:30%不到
  • 荣誉称号、奖学金、……:无,竺可桢学院没有被淘汰出局,据说会有个荣誉证书,这个不知道算不算
  • CET-4(560)、CET-6(495):一天搞定
  • 玩过车,大学期间单车8000+km
  • 把过妹,和女朋友在一起快三年了——这个简历上可不能写……^_^
  • 搞过社团,不是骗钱的,而且还当了一年会长,纠结的一年
  • 搞过两次户外挑战赛,酱油之旅,混了一个名次,另外一个纯粹是去丢人现眼了
  • 当过志愿者,贵州遵义湄潭,永兴中学支教两周,收徒若干
  • 略懂c/c++/java/python/shell script——这里懂的意思是做过实际的项目
  • 玩过html/css/javascript——仅仅是玩玩而已
  • 熟悉linux日常应用——注意,是日常应用,zju88 LinuxApp版主
  • 喜爱TeX/LaTeX,用TeX/LaTeX写过几百份文档——只是喜爱而已,zju88 TeX版主
  • 搞过ACM,最好成绩——校队选拔垫底被刷……
  • 搞过数模,止步校赛二等奖,国赛铩羽而归……
  • 玩过OpenGL
  • 不懂网络,不知道vpn是咋回事
  • 不懂数据库,只用过一点MySql,不懂啥叫范式啥叫索引啥叫触发器
  • 不懂概率统计AI
  • 不懂硬件,所有有关电类和硬件的课程都是糊弄过去的
  • 泡过实验室,给号称上海世博的啥啥手机做了点东西
  • 华数淘宝,暑期三个月实习,真正做了点像样的东西,成功上线公测

这里是最终版中英文简历

找实习经历
6月15号左右开始找实习——那个时候多数大公司正式的实习生招聘流程已经走完,6月25日收到实习offer,战况总结如下:

  • 百度、创新工厂:一面悲剧
  • tp-link:一面五分钟,莫名其妙被刷(大概是因为自己挂过课,bs之)
  • 阿里巴巴:一封没有上下文的邮件、一个打到一半手机没电的尴尬电面,一个没有上下文的快餐电话;
  • intel:来自上海紫竹科技园漫不经心的“聊聊”
  • DeviceVM:莫名其妙的简短面试,杳无音信
  • 华数淘宝:一面通过,一个小时,三四天后收到了邮件offer。还是挺开心的。绕着玉泉走了好几圈。

找工作经历

投递简历原则:

  • 不投网游——因为从来没玩过……
  • 不搞硬件——因为没有天赋,看到电路就头痛,碰到数电就挂课……
  • 不投太小太没有名气的公司——蛟龙岂是池中物……
  • 不投测试——因为没搞过……
  • 不投Java——Java is not platform-independent, it is the platform。一言以蔽之,Java太臃肿了,做过一次SSH框架,极其不爽的经历……
  • 不投金融——因为不跟风……
  • 不再投阿里系——因为有华数淘宝的口头offer保底了……
  • 不投看重绩点的xx公司——因为看重绩点的公司都是xx……

下面是战况总结:

  • 投递的公司:华为、腾讯、百度、google、网易杭研、yahoo、vobile、网易有道、微软、创新工厂;
  • 简历被刷:无;
  • 笔试被刷:google、创新工厂、腾讯;
  • 收到笔试通知而没有去的:华为、微软、yahoo;
  • 过了笔试没有去参加机试收到面试通知的:vobile;
  • 杀进面试:网易(没有去)、有道、百度;
  • 没有投简历而收到的两个电话:启程日本?、湖南快乐淘宝;
  • 一面被刷:有道
  • offer:百度运维部运维开发工程师-北京(三面)

拿下百度三面!

18日下午拿下百度二面后整个人就处于亢奋状态,晚上回到寝室,问了问学长百度三面的情况,得知三面基本上不会考察技术。于是心里就更亢奋了,觉得这个offer基本上是十拿九稳了,遂出去散步,绕着玉泉走了一圈。买了个大大的柚子犒劳自己。回来后继续了解一下百度三面的情况,还是亢奋,直到夜里两点左右才睡。

19日早晨赖床,十点半才起床。起床后洗漱,出去吃饭,淘宝上买的《On Lisp》也到了,吃完饭后又回到寝室,前前后后想了下三面HR可能会问的问题,比如说百度为什么会选择你、你为什么要来应聘百度、你自己的优点和缺点是什么、工作中遇到了哪些困难是怎样解决的等等,也没有想出具体的答案,1点多上床闭目养神,十分钟,心里砰砰砰砰的跳……半点,出北门,还是打不到车,奔波一段,顺利上车,杀向百瑞大酒店。

面试官很和蔼,跟昨天一样,给我倒了杯水,然后就开始聊天、侃大山。开场就是让我继续自我介绍,不要说前两面说过的,说一些别的。好吧,我承认,吹嘘个人的传奇经历是我所擅长的,于是就从高中开始,把自己6年多的大起大落坎坷的经历吹嘘了一通,包括搞数学竞赛、如何转到化学竞赛、提前保送的浙大、做社团工作、如何又对linux感兴趣,为什么不读研等等,一通胡吹,反正就是没闲着……接下来面试官看我这个人经历确实比较丰富,也还算积极主动,就问一些比较细小的问题,比如说为什么当初从数学竞赛转到化学竞赛而没有坚持下去,我回答说这是一种战略分析,理性的分析后做出的选择;问我对朋友怎么看,怎样才叫做真正的朋友,我就阐述了我的八字方针,好朋友“贵在真诚、幸在投缘”;问我自己有没有做过错误的或者不合理的决定,我就举自己那次去宁海参加比赛丢人现眼的例子;问我的职业规划是怎么样的,我说是两种,一种是一直在互联网公司做些去,另外一种是工作几年后再找机会去深造一下;问我对国内的公司创业怎么看,然后我就开始侃马云、Robin、张朝阳、丁磊、马化腾等等,谈自己对创业对成功的看法;问我这个人是不是比较感性而非特别理性的人,我有点措手不及,就说感性和理性要看具体的情况;问给你一个系统设计任务,描述一下你要怎样解决这个问题……总之各种问题都有吧,技术问的倒不是很多。

整个过程从2点到3点,整整一个小时,感觉今天的面试自己表现还不错,发挥出了自己的气场,把自己优秀的一面都展现出来了。最后冒昧的问一句“如果我这次失败的,今年还有没有另外的机会加入百度”,结果面试官说“你为什么觉得自己会失败呢,你对自己没有信心吗?”,我说“不是这样的,只是我非常想加入百度而已”,然后就拿到的面试官的口头offer:“恭喜你通过本次面试……”

泪流满面……百度终面,拿下。从16号上午的笔试、晚上等不到面试通知的失望、17号晨梦中的面试通知、18号的一面和二面、19号的HR终面,一关一关,都被我顺利地闯过,我自己都不太敢相信——这未免太顺利了点吧!吸引很多ACM大牛、世界冠军的百度就这样给了我offer?

总之还是很幸运的吧,看来我的命确实不错,每到人生关键的关口总能得到比较理想的选择,比如进入唐山一中,拿到保送资格,进入浙大,这次,是拿到了百度offer。

我应聘的职位是百度运维部-运维开发工程师,说到底还是去玩Linux了。虽然我对Linux比较熟,但是我更想在c/c++和算法方面发展一下,只是现在时候未到,自己尚没有应聘百度搜索部门的实力了。正式的offer应该会在月底发下吧,浙大站结束后统一发,应该会很快的,百度的效率还是很高的,期待中。

走出百瑞酒店,迫不及待地给老爸打了电话——因为老爸昨天特别要求一定要先给他打而不是先给妈打……可惜老爸手机关机了,悲剧……打电话给老妈,老妈在那边兴奋地快蹦起来了;然后给妞打了个电话,妞似乎不像老妈那样兴奋,可能她还是希望我能留在杭州吧,原谅我吧,妞;剩下的,就是骚扰同学和朋友了,难得地一次去校内上更新了万年不变的状态……去论坛上发了下三面面经,被别人膜拜称“本科大牛”——我不是大牛,我想如果我说大学三年我挂了10+门的课,我觉得没几个人会相信;给zhzf打了电话,给新加坡的阿黎也打了电话,嗯,祝愿大家都能找到自己的归宿吧。

差不多了……20号,也就是今天早晨5点,玉泉正门集合,上海交大菁菁堂,MSRA“二十一世纪的计算”,会后打算去看看Ouka,然后去妞那里呆几天吧,等offer,顺便想想接下来的计划,看看能不能抽出时间再来一场大的漂泊。




Host by is-Programmer.com | Power by Chito 1.3.3 beta | © 2007 LinuxGem | Design by Matthew "Agent Spork" McGee