一篇长文

快20多天没有写东西了,那么就用一篇长文记录一下这半个月来发生的事情吧。

# 金华之旅 #

3号的时候,我和discover还有xiaodai临时组了个队伍去浙江金华参加邀请赛。来回都是38小时的火车,去之前觉得一定无聊到死的旅途,现在一想其实也就那么回事吧。路上遇到的一些人和一些事还是挺有意思的,也有一些收获吧。

去的时候遇到一个经融IT公司的员工,目测项目经理以上级别,也有可能是中层干部。 与我们一行人讨论了一下国内IT的就业形势,告诉我们国内做不了通用软件,只能去搞金融,政府,教育和医疗的行业软件。以前自己一直以为毕业以后去个互联网公司是没什么太大压力的事,但我在今年找实习的过程中也被不少的事情所触动过。整个ACM集训队只有一人拿到Baidu的Offer,而这种互联网公司在国内又屈指可数,所以对于大多数人来说毕业后真的就去做行业软件了。那么这哥后面的话就变得十分有道理了。这样的工作大多需要熟练使用几种或一种技术,比如数据库你得会用Oracle或者DB2吧,而不是去招聘那种能学会这种技术的人。况且能学会技术的员工价格也会要的更高,那么对于大多数公司来说,为什么又要招一个什么都不会而且价格更高的员工呢?我们这些人的优势又在哪里呢?

到金华后的第一印象是南方的空气太潮了,但没过多久也就适应了。浙江师范大学的男女比例应该是和工大正好颠倒过来吧,除了我们这些去比赛的队员之外,放眼望去基本看不见男生啊。

比赛过程被A题的错误数据坑了2小时,几何也是莫名其妙的没有AC。赛前本来打算拿块金牌的,最后只能悲剧的银牌收场。自己的退役赛还是留下了遗憾。

回来的路上,遇到一位华为中层的父亲。第一晚这老头真是教育了我一晚上啊,和我说了一大堆以后毕业后要考虑的问题。什么房子啊,孩子上学啊等等之类的。即使这些问题以前我都考虑过,但聊这些还是觉得很蛋疼,而有找不到什么好的解决方法。就只能把希望寄托于出国读PHD,但生活又感觉变的很飘渺。

# 退役 #

这件事其实在收到微软offer当天就决定了,只是一直拖到金华回来才和lord说。结果是没遇到什么阻力,只是队友没处安置了。那么明着拆队又不好,只能搞个选拔赛择优选择了。于是,自己的一个不经意的决定可能又会改变很多人的未来吧。我其实挺讨厌这种会触发蝴蝶效应的事情的,一个不经意的小事,可能你以后的人生就会完全的不一样。这样的例子太多了,比如我当初电路实验如果没有挂掉,我现在应该等着保研了。比如我现在没有决定退役,没准明年就去final了。比如当初的hacker cup的一个下标没有写错,我也能拿到facebook的offer。这种例子太多了,在自己还不是很强的时候,很需要一个机会的时候,就很容易遇到这种蝴蝶效应的事情。而塞翁失马,又焉知祸福呢?这就是生活吧。

# 编译原理 #

这是几年来感觉最没谱的考试课了,比赛回来我连first集还不会求呢。后来复习完感觉其实那几种文法也就那么回事,老师怎么讲了一个多月呢?不过,后来语义部分还是没太看懂。

# MSRA #

上周,还面试了微软亚洲研究的一个项目。拖了5天也没给我结果,说好的2天出结果呢?其实想想,面试我的老头,应该是我人生中如此近距离面对面交流中学术成就最高的了吧?能和IEEE Fellow交流40多分钟,无论结果如何都是一种收获吧。但其实心里还是非常想去的,能在世界级的研究机构待一年还是会有很大收获的,无论是简历上还是阅历上。

# AI 比赛 #

前两天,无聊去大赛官网的时候,发现自己竟然进了百强。虽然比赛很水,最后也没有on site,但是白给件衣服和书还是好事,就是担心会不会像Codeforces 100那样不了了之呢?目前还是没有人联系我。

# 秋季校赛 #

忙了一周多的春季校赛可算弄完了,最后友情参赛的NOI神牛无压力的10题登顶了。我还给他送了好几只气球,也算是近距离膜拜神牛吧。

# 和利春饼 #

这是我们今晚吃饭的地方,味道一般,但是有件小事还是值得记录一下。在我们点大瓶饮料的时候,老板告诉我们可以去对面超市去买。还被某人吐槽老板太实在了。一件本身很正常的事情,在有些时候就会让人觉得很不正常。比如,在超市有导购员推荐你买什么东西之后,你总会怀疑这东西真的好么?而这种人与人之间信任的缺失又需要多少代人的努力才能修复呢?生活中这种隐形的生活成本真是太多太多了,每次挖掘真相的时候总觉得很...自己想吧。

以上。

写在临行前

明天就要起身去金华参加邀请赛了,应该是acm生涯中的最后一场比赛了吧?

除非明年能够fuckwall成功,在美帝水一把啥的(又开始yy了)。

下午在管理楼做了周四的体系结构实验。

晚上在基地写了人工智能的实验报告,好久没用tex又折腾了一会儿时间。

模式识别的作业还在赶制中。

估计明天上午还得赶体系结构的作业。

这比赛前竟写作业玩了,貌似有段时间没有写代码了。

38小时乘二的火车着实有点蛋疼,明天早上去借本小说看,还是在路上刷一遍红宝书呢?

但求能够华丽退役吧。

真替自己捉急啊

本来以为把readability移植到C++是件很easy的事,虽然之前知道需要找一个DOM的库,但还是低估了这项工作的复杂性。找的那个apache的库,编译过他的demo就花了我一下午的时间。

本来想用C++ 0x的regex库,后来发现资料太少,又只能转向boost的库。而且有些功能还不好使,现在感觉一周内能搞出来就不错了

真替自己捉急啊

谁不想求个稳妥

昨天高帅富的范神请大家吃必胜客时,我们四个人就聊了好多关于自己未来出路的问题。猴神基本去工作,范神基本留校保研,雄哥虽然打着出国的旗号,最后可能也临阵签个保研协议了事,最后只剩下我在这fuckwall的路上独自前进。

有时候选择太多,人做选择的时候就会犹豫。大多数家长总认为多读点书没什么坏处,没必要那么早去工作,不差这两年之类的云云。于是大家都趋之若鹜般去读研究生,保研的保研,不能保研的考研也要念。留在国内读研(至少在清华北大以外的学校)有两点很不理解,如果是为了一纸学历,现在又不是改革开放前,公司基本都不会因为学历设限制。若是为了学术,又有几人继续博士求学之路呢?倘若你真为了学术,你为何要留在一些三流甚至不入流的学校呢?

收益大的过程必然伴随高风险,如果我选择fuckwall这条路,最后有offer自然皆大欢喜。其实也不能说皆大欢喜,至少自己和亲戚朋友是真心快乐的,而那些在fuckwall路上半路撤退的人也许会表面上祝贺,而内心很受伤。若最后没有offer,有可能错过校招季,自己就会高不成低不就,处境会显得跟尴尬。而且会带来短期内不能再次fuckwall的风险。

两年很短,如果和人生相比。两年很长,如果和青春相比。

新知识

今天本来合计整理下github上的代码,后来合计全clone下来,在本地rm就好麻烦。而且我本地的代码基本上就是全的,我就先把远程的给删了,然后在把本地的push上去。

接下来不幸的就发生了,用了一个reset命令,我本地的代码就全搞没了。其实也就是半年来做的各种比赛的代码,也没啥太大价值,但一想到全没了还是有些伤感。

没想到我对代码也有感情。作为一个已经打算退役的人,有些东西没了也就没了吧,没什么心情找回他了。

还好接下来几个项目代码的备份还算顺利,git整体还是很优秀的。

这周发生了好多事

周六,在沈师考了第一次GRE。人生经历了一次历练,就是结果很悲催。考完屏幕上verbal的分数让我受了好大的刺激,幸好这个刺激也好,激励也罢,只要时间还有,就不是什么问题。

周日,早上6点多就乘着连夜的K1123回到了哈尔滨。刚出火车感觉那阵凉老蛋疼了,打车回学校。基地竟然有好多人包宿,食堂的小肉包也没以前好吃了。看了一上午的数据挖掘,下午考试竟然全是概念题。唉,竟然连决策树和贝叶斯都没有。

周一,收到微软的正式offer。里面最晚的入职时间是7月25日。其他5月,6月显然不能去。这时候,如果学校在北京的话,就会便利多了。晚上决定acm就此退役,去MS实习。好好实习,搞段经历,混个推荐信。

周二,开始收集项目的论文。看了好多感觉就是优化一种伪科学的方法,然后使其准确率和召回率都上90%。其中有一篇还是msra发的,很明显就是两个本科生写的,挂了一个研究院的名。

周三,继续看昨天下的论文。感觉全世界用的方法也无外乎1,2,3这几种。目前自己能想到的一个创新也就是加一个readability的过滤器,但貌似只能提高召回率。其他方法以后再想。下午收到MS HR的电话,最后确认了下日期。终于可以坐等实习了。

周四,明天,还没到,预计还是动机不纯地搞学术吧。

感觉英语和没学一样

今天上午去沈师第一次去考GRE,答完第一个verbal就感觉肯定悲剧了,时间有点太紧了,而数学部分时间又充裕的不能忍受。

最后结果惨目忍睹了,可能偶尔受点刺激才能激发些潜能吧。

算算离十月份还有小半年的时间,我还有足够时间把单词好好背一下,备战10G吧。

微软SDE面试总结

今天早上在人工智能考试的时候,终于收到了HR的口头OFFER,忐忑了一天的心情也终于得到了平复。

3月份写简历的时候目标其实是去研究院打酱油,联系无果之后,发现joinms.com上正好有实习的申请,就随意的填了一下。微软貌似和中华英才网合作的,填了大概五六页的东西,最后都填吐了,有些东西嫌麻烦直接填了无。

3月末4月初的时候,收到笔试通知。没记错的话,是在4月7日下午参加的笔试。当天上午还参加了腾讯的笔试,有关腾讯如何把我拒了的事等以后哪天心情好了再写。笔试使用的是答题卡,导致了好多同学没有成功霸王笔。笔试题目网上能搜到,比如这里。整体难度还是挺简单的,除了c++语法,基本就是简单算法题。只要不确定的不答就好了,省的写错了倒扣分。

一周后收到HR发的面试通知,地点在哈尔滨香格里拉饭店。唯一比较纠结的就是要早上8点开始,还要提前20分钟到场。

昨天早上6点半就起来了,感觉自己好久都没这么早起来过了,上次这么早的日期已经不能追溯了吧。然后和杨神,饭团还有icek打车去面试(他们霸王面)。提前到那里之后,还在走廊认识了哈工程的final帝,顺便膜拜了一下。(我还被指出在校内发了一个编译器的状态 ,感觉好囧)。

不一会HR MM吃完饭回来,我们就进屋开始登记。期间注意到HR MM的浏览器首页貌似是Google。

然后被告知简历网上海选的时候留下了30%,笔试100多名取了前30。接下来讲了下面试的规则:一共两名面试官,每个面一小时,如果两名面试官的评价都是hire,结果是hire。一个hire,一个no hire,加试一轮。两个都是no hire,就可以gg了。若被录用两天内有口头Offer,一周内正式Offer,无Offer者两周后会收到拒信。

期间还了解到微软的SDE还分什么1,2,3级,还有SDE Manager,Manager还有senior什么的,每个级别也分1,2,3。平时meeting和mail都是英文的之类的。

过程中有个印象深刻的事情,HR MM在打电话的时候后说,xxx 你在room么?现在available么?半中半英总感觉怪怪的,难道外企都这样么?

8点的时候被叫到第一个屋去面试,对方应该是一名SDE。先和我聊了下简历上的东西,ACM经历直接被无视了,问都没问。

主要问了下我写的黑白棋AI,他说自己以前也写过,又和我交流了一下棋类游戏AI的基本方法。期间被问到极大极小搜索,alpha-beta剪枝。当时还回想了一会当初那个剪枝是咋搞的,好囧。

然后问我N*M的young氏矩阵怎么求第K小?这个问题挺简单,用小根堆维护一下就好了,每次加入右侧和下面的元素。然后又分析了一下复杂度,K*lg K之类的。

最后给我出了一个链表的题,问我怎么判断连个链表是否相交,若相交怎么求第一个交点,最后一种情况就是带环的链表怎么求交点?第二个题我想了好久才搞明白怎么弄,第三个其实可以秒的,只是答完第二个又被问了一些其他问题,在做第三问的时候忘了之前第二问是咋做的了。也就是说,第二个题我相当于从头想了两遍。囧死了,当天状态太差了。

面完回到HR房间总感觉要被no hire,自己一面虽然都答对了,但是反应时间确实有些不尽人意。歇了一会,被安排去面第二名面试官。

第二次的面试官应该是做SDET的,上来先和他聊了一些报告雷同检测那个项目的问题。期间他一直纠结于我Java是怎么生成随机数的,我都好久没写Java了,都不记得那个类是什么了,就告诉他实在不行找俩互质的数自己写其实也行。

然后就开始写代码,让我写反转一个数的函数,就是123变成321之类的。当时感觉这也太简单了吧,写完以后就被说有bug,没考虑溢出什么的,溢出了你应该返回什么啊。当时感觉做软件测试就是给别人挑毛病啊。后来又让我自己出测试用例,就是黑盒测试之类的,划分测试样例的等价类。

第二个题目是判断括号序列是否是匹配的,用栈维护一下就好了。自己写的代码由于没有判断new的内存是否失败又被喷了一次。剩下的过程就和上一个题差不多了。

最后让我问他一些问题,我就问了一下微软每月修复的那些漏洞是设计出现的问题多,还是SDE写错了,或者说是SDET没有测试出来?面试官怎么说的有些不记得了,期间还被反问了一个问题。一个产品测试到什么程度就可以release?

两面都结束后,去和HR MM道个别就回学校了,期间还知道了icek悲剧的故事,这里我就不揭他的伤疤了。

如果一切顺利的话,暑假就去北京实习了,明天还要考GRE,求人品吧。

第一份 Offer

3月份的时候和大家一起去活动中心听了场创新工场的宣讲,来的是应用汇的老罗。就是和你扯扯人生啊什么的,还推荐年轻人要看什么海底两万里啊,气氛很轻松,整体感觉也挺有意思的。晚上,回基地后,就把之前准备的简历投了过去。

在若干天之后(过了半个月吧)的一节模式识别课上,收到一个北京来的电话。由于之前刚笔试完腾讯,而且是在教室内接的电话,没太听清楚对方的自我介绍。跑到走廊之后,就问了句对方是腾讯哪个部门的尴尬问题。还好没被过分鄙视,只是约了一下第二天的电面时间。

第一次电面的时候才知道自己的简历被涂鸦移动拿去了。简单的自我介绍之后就开始考查智力题了(就这么称呼吧)。

第一题就是十二层台阶,每次只能向上迈一步或卖两步,问有多少种走法。简单的一维dp,其实也是斐波那契数列。

第二题是问你m个苹果分成n组有多少种分法。二维dp依旧可以搞。前两题算是很符合自己的胃口吧。

第三题问你一米长的桌子,每隔1厘米放一只蜗牛,让你指定蜗牛的起始行进方向。蜗牛速度1厘米每秒,两只相遇后会转向。问怎么安排起始方向,使第一只掉下来的蜗牛时间尽可能长。 很容易就能想到前一半向右走,中间和后一半向左走。但是后来又问我多久掉下来,以后掉落的模式就不是一下就能想出来的了。手头还没有纸和笔,光用大脑想压力好大。期间去拿了张纸,简单画了一下,感觉大概是50s吧,然后每隔1s两边个掉落一只吧。回答完之后总感觉是不对的,我也是在好几天之后写了个验证程序才知道当时给的答案是对的。

最后又聊了一下之前做的项目之类的,问了一下入职后培训啊之类的事情就结束了。

由于一直以为第三题答得不是很完美,而且也没做过什么项目,可能不会有下文了。大约过了两天吧,又收到了第二次电面的预约电话。

当天晚上就进行了第二次电面,简单聊了一下就开始给我出题了。

第一题,怎么判断在一个文本编辑器中,用户输入的单词是否是正确的。对方还特意说只有英文单词,那这不就是trie树么?但是对方表示对答案不满意,说内存开销太大。我第二个答案是Hash,被告知也不满意。。之后就换题了,也没告诉我正确应该怎么做。

第二题,三个已序数组,各挑一个数字,使两两做差绝对值之和最小。当时有些紧张,只想到枚举第一个数字,二分剩下的两个数组。电面结束后,发现将绝对值符号打开后就只和两个数组有关,双指针扫一遍就好了。感觉自己弱爆了。

最后我问了下以后他们公司会不会做ios和wp平台之类的问题,就这样结束了。

本来以为就这样gg了,今天下午竟然收到了HR发的offer,让我十分的意外啊。

接下来就是考虑下去还不是不去的问题了。

srm 540 全程心情

开题前:
在想今天是不是大吉日,做了会不会涨。
第二题竟然是550,写完一个题又能gg了。

开第一题:
看完十分钟没想法,后悔开题了。
二十分钟,知道咋做了,不是很好实现。
交完发现有个地方写错了,resubmit了一次。只有107分,排了600多。

开第二题:
第一遍看完发现dp状态竟然这么大自然。
算了一下复杂度是40*50^6,明显不可搞。
过两分钟发现是三维树状数组优化,肯定写不明白。
果然写完样例都没过。

Challenge:
一共900多人,排了600多还不得跌跪了。

Challenge 结束:
从600多涨到了400多,貌似不会跌跪了。

System test:
又前进了100多名,貌似能涨不少的样子。

最后就这样黄了,全程有惊无险,玩的挺开心。