腾讯

2012全球架构师峰会参会简记

8.10 ~ 8.12 在深圳参加全球架构师峰会 (http://www.archsummit.com/), 回来也十来天了, 先把回来后记在 evernote 里的简记发下, 详细的后面跟着幻灯片展开下


公司定的机票时间都太晚了, 走的时候上飞机没晚点, 起飞晚了一个多小时, 到深圳都晚上十一点, 到酒店也半夜一点
住的略偏, 在小梅沙, 这酒店算一般水平吧, 可以理解成规模大点的农家乐
吃的凑合, 会务的自助餐还是挺不错的, 就是人太多, 要么早点要么晚点, 不然排队排死人. 茶点我就第一天提前去偷吃了点, 剩下的都懒得排队了
会场是万科的总部, 很多地方设计的很精妙, 但是大梅沙离市区还是太远太远了


组织的还是挺不错的, 就是有时候几个分会场都想去, 无法分身
同声传译很赞, 也没有很外行翻出莫名其妙的句子来, 前面坚持听了几场英文的, 最后一场借了个传译器果然还是听中文要顺畅很多
腾讯是主赞助商, 发的东西很多, 公仔和衣服没抽到和领到, 其他的资料倒是都拿点, 腾讯在这方面的宣传做的挺好, 给的东西也比较下血本
其他有很多硬件 (比如 SanDisk 的企业用 SSD) 或平台型 (比如云存储) 的赞助商, 我不懂, 就随便看了看展台. 倒是有很多开发平台的赞助商, 比如天翼, 还有海豚浏览器也是赞助商, 我还没怎么弄明白开发平台这个生态圈怎么玩, 果然落伍了


大会场的几个 topic, Pinterest 那个没赶上, 老外吐槽中国网络状况倒是吐的挺狠也挺实在的, 包括多网不通, 还有 GFW, 只是八线机房是个什么情况, 电信/联通/移动/教育网/还有四个有啥?
搜索那个 session 讲的都比较虚, 扯了些概念, 搜狗的提出抓别人的搜索结果 (参考资料: 孟学一有关暗网数据挖掘的书), 一淘讲了些干货, 不过总感觉也没啥特别的, 是因为别的人都没做过或看过这么大的搜索引擎, 所以觉得有很爽的干货么?
大数据那个 session 干货比较多, EMC 上来介绍了一些基于 Hadoop 或 Map/Reduce 的框架, 都很赞, Yahoo 的 Nova 自动化调度数据和任务也做的很好, LinkedIn 对数据的处理方式也非常值得参考, Pinterest 最后讲那个数据库分片, 真的是把简单做到极致, 能不复杂绝不复杂, 能用钱搞定的事情没必要省那几台服务器钱结果把系统搞的巨麻烦


Day1
All: http://vdisk.weibo.com/s/ajLUe

Day2
上午: http://vdisk.weibo.com/s/au-u-
下午主会场 (海量数据): http://vdisk.weibo.com/s/av8ue
下午分会场 1 (移动互联网): http://vdisk.weibo.com/s/aveIJ
下午分会场 2 (安全): http://vdisk.weibo.com/s/av5bn

Day3
All: http://vdisk.weibo.com/s/aAaQ3/1345032030

有些笔试题的存在意义就是搞笑么?

昨天有个以前一起玩 ACM 的队友跟我说个题, 说是前几天腾讯实习生招聘的笔试题之一, 原文如下

已知a[0],a[1]…a[n-1]
现在要构造b[0],b[1]…b[n-1]
其中 b[i]=a[0]*a[1]*….a[n-1]/a[i]
要求,不能用除法,不能使用其他任何存储变量,除了循环变量i,j之类的
要求O(1)的空间复杂度,O(n)的时间复杂度

关键是不能用除法

看到这题后的第一反应是这特么不会爆类型么? double 也经不起这么搞吧. 然后就冷静下来想怎么解决, 不能用除法就避开那个除法操作咯, 把 b[i] 的推导公式换成 a[0]*…*a[i-1]*a[i+1]*…*a[n-1] 就是了, 一看就像个 DP. 推了下后写了这么个代码 (假设所有数都是 int 且不爆类型大小)

// 先构造一遍, 使得 b[i] = a[0]*...*a[i-1]
b[0] = 1;
for (int i = 1; i < n; ++i) {
  b[i] = b[i-1]*a[i-1];
}

// 逆序, 使得遍历到 b[i] 时, sum = a[i+1]*...*a[n-1]
//这时候 b[i]*sum = a[0]*...*a[n-1]/a[i]
int sum = 1;
for (int i = n-1; i >= 0; --i) {
  b[i] *= sum;
  sum *= a[i];
}

然后被提醒说 sum 这个变量也不能有, 好像原文中是说了不能用其他存储变量… 但是这不还是 O(1) 的空间复杂度么, 腾讯好像经常喜欢搞这种无聊的要求 (卡一两个变量), 于是当场就怒了

叶文/Snoopy阿排 20:41:49
那把他写到循环里好了… -.-|
叶文/Snoopy阿排 20:42:32
老实说, 这个题出的很烂…
叶文/Snoopy阿排 20:42:36
烂的无与伦比
** 20:43:05
哈哈
叶文/Snoopy阿排 20:43:15
首先, 这种奇技淫巧没有任何意义
其次, 连乘更大的问题是爆数据类型…
** 20:44:41
是啊
** 20:44:51
关键一点就是没有任何意义
叶文/Snoopy阿排 20:45:41
而且, 要真抠细节, 他没说不能修改 a 的值, 我在做逆序的时候把 sum 换成 a[] 就行了

果然改 a 数组的值就达到目的了? 好像是? 这样有意思么?

最后, 真心求既不使用多余变量, 且不修改 a 的值的做法.

笨狗找工记 by snoopy

笨狗, 计科 08 级小硕, 土狗一只, 从 2009 年 8 月的某个晚上开始找工作, 一直到 2010 年 4 月结束, 小记录一下.

找工作之前就已经明确了自己工作地点只在北京, 而且是互联网相关企业, 不能是无趣的事业单位和国企, 最好是数据挖掘或数据分析方向, 所以只联系了几家. 最后总计有过联系的有六家, 按时间顺序结果依次如下
Y: 研发工程师, offer
B: 研发工程师, offer
A: 由于时间不合适, 只投了简历最后没去笔试面试
T: 被默拒
G: 投简历直接被拒
M: 研发工程师, offer

为了方便找工作, 所以 7 月份的时候离开香港奔赴北京开始在 M 的实习, 考虑主要是人可以在北京, 而且 M 的实习相对不是特别忙, 去面试会方便很多.

8 月中旬的某一个晚上, 失眠的时候想到一个商业 idea, 从失眠变成清醒, 大脑里整理清楚后第二天把这个 idea 邮件发给了原来在 B 实习时认识的一个 PM leader, 然后在 MSN 上一起就这个 idea 聊了一阵, 最后突然问我是不是今年毕业, 该找工作了吧, 要不要过来试试看? 于是就这样平平淡淡的开始了找工之旅.

第一次是去 B 面产品市场方面的职位, 和前面提到的那个 PM leader 和一个 HR 一起聊了一个小时, 当时主要纠结是 PM 薪水没 RD 高, 而且自己也希望能一直维持在技术上的进步, 最后谁也没能说服谁, 只是自己发现现在的 PM 和以前的 PM 还是不太一样了, 可以有更多偏技术的. 从会议室出来后跑去找师兄们玩, 同时去看看原来实习的老朋友们, 被 Tech leader 认出来, 瞎扯两句后说 “没事去面 PM 干嘛, 老老实实简历拿我们这边来”. 于是被转去了技术方向.

这中间 Y 公司办了个比赛, 有很多认识的人进了决赛, 然后在帮忙推荐人, 有两个朋友一起帮我内推了一把, 其中一个还在 A 工作的朋友也帮我一起内推了 A 的北京研究院. 很顺利的过去 Y 面试, 第一次面了两面, 感觉都还挺好的. 有一些简单的算法题, 不过很久没做了, 确实还是有点手生.

然后是去 B 公司面试, 连着面了三面, 都还算顺利, 遇到几个很诡异的问题, 不过在了解应用背景后恍然大悟, 再次验证工业界的需求和学术界是差挺远的. 期间有一个很囧的事情, 就是三面的时候收到 Y 公司约三面的电话. 除此之外一切顺利, 平平淡淡无风无浪.

在 Y 公司的三面依旧很平淡, 最后问了面试官很多很细节的关于公司发展的问题, 都占掉了一小半面试的时间, 最后面试官留了邮箱和手机号, 说有问题随时联系.

八月底回了次家, 回家的前一天晚上接到 B 的口头 offer, 因为老大也都是熟人, 所以大家都很直白, 说现在没到校招时间, 正式 offer 发不出, 但是这完全不是问题, 然后就是问什么时候可以过去实习. 我的想法是我想的那几家招聘还早, 而且在 M 公司的实习项目还很要一段时间才能有一个阶段性成果, 自己想做完, 于是开始拖实习时间.

九月收到 Y 公司的口头 offer, 跟 B 公司一样需要等校招时才正式发, 不过没说实习的事情.

前面提到的那个帮投 Y 公司的朋友也帮推了一把 A 公司的北京研究院, 很久没消息后, 在九月的某天发邮件过来说下周某天上午九点去朝阳区某个地方笔试加面试, 预备好一天的时间, 看了下地图觉得好远啊, 第二反应居然是那天没法睡懒觉了, 完全没考虑和笔试面试有关的任何问题, 囧. 结果过了一天还是两天重新发邮件说笔试改早上八点了, 当时就觉得无语, 平常八点我都没起床呢, 罢了罢了, 反正对 A 也没太大的兴趣, 发了封自认为还算诚恳的邮件就说不去笔试了, 祝贵公司业务蒸蒸日上招人顺利之类的.

然后是每年招聘都因为流程乱而被人骂的 T 公司, 今年算是好好的亲历了下, 先是找朋友帮推的北京研究院一直没消息, 后来听说是一直被锁在了若干其他朋友帮推的深圳某部, 不过当时也还早, 没太在意这个事情.

九月还联系了一次 G 公司, 本科时在这实习过, 只是转正的时候面挂了, 记得当时说这种面挂的记录不会保持两年的, 而且读了个研, 算是较大的进步, 可以在研究生毕业的时候继续面的, 结果联系 HR 时直接被用稍微委婉的口气说不用投了, 反正都没戏. 不甘心没法内推, 于是说我走普通的招聘流程投简历呢? 答复是依然不行… 怒了, 此处不留爷, 自有留爷处.

十月的时候再没办法找接口推迟 B 公司的实习, 而且估摸着 M 公司今年也一直没有招聘计划, 于是就从 M 离职去了 B. 期间 T 公司发短信叫去武汉笔试… 直接无视, 打电话说去武汉面试, 跟人解释说我人在北京呢, 等你们北京招聘的时候我直接过去好了. 结果等 T 北京开始的时候, 还是短信叫过去笔试… 继续无视, 过了两天终于电话叫过去面试.

估了下时间还凑合, 屁颠屁颠从 B 公司跑过去, 也就十分钟不到的路, 结果面试官还是抽了张卷子出来, 当时就无语了, 而且跟我想投的职位完全不对啊, 那个怎么看都像是客户端开发或者手机开发的, 虽然最后和面试官聊了会, 但是感觉完全不靠谱. 过了两天再去面试, 五分钟自我介绍还没完, 面试官就说你这个背景跟我们完全不对啊, 你怎么到我们这边来的? 我瀑布汗的解释说这完全是因为 T 公司的招聘流程有问题才一直把我锁在这的… 大家一起汗了下后, 联系了下研究院的师兄和 HR, 直接带着简历跑上去面研究院. 这次表现真的不好, 有一个工程问题怎么也没想出好的解决方案, 最后聊意向时说北京研究院没有对应的职位, 问是否愿意去深圳, 笨狗表示不愿意后, 两边再很友好的随便聊了下, 这边就算完了, 然后就是默拒.

此后在 B 的实习一直忙的要死, 也没有太关注找工的事情, 虽然华为中间发了若干次短信, 但是由于我自己没投, 不知道简历哪过去的, 也没理会他们. 过了没一个月公司搬家, 接着就收到了 Y 的正式 offer.

Y 的正式 offer 很有意思, 先打电话很仔细的告诉你每项是啥, 可惜我当时正在做菜, 本以为撑死也就一两分钟的, 结果说了五分钟后我无奈的把火停了, 然后等挂电话时发现已经二十分钟过去了. 然后是去公司拿纸质 offer, 三面的那个 GG (应该也是小 boss 了) 单独在一个小会议室里详细解释 offer 细节, 并就公司发展等很多方面互相沟通了下. 晚上请饭, Y 的老大和两个技术的头加一个 HR, 剩下一堆拿 offer 的一边吃一边问, 我继续很不厚道的问了几个估计比较尴尬的问题, 得到的答复还是很外交辞令风格, 虽然比起从外界获取的消息而言已经靠谱多了. 最后考虑了也没有太久, 因为短期发展和 offer 都没 B 家高, 虽然工作强度和压力没 B 高, 而且保证解决北京户口, 但是还是直接拒了.

本来以为到这里今年就算完了, 安心实习好好工作. 结果到十二月的时候 M 公司的师弟说那边新放了一批名额出来, 问我还去不, 本来想着对那边也没太多期望想说算了, 结果问了几个人, 都说干嘛不去啊, 又不掉肉. 于是简历发过去, 过了几天面试, 从上午一直面到下午, 其实也就四轮, 只是中间有间隔, 问的题其实都不难, 但是还是非常考细心的, 不知道是不是 M 的一贯风格, 因为三年前去 M 的另一个地方面实习时似乎也是这样. 一周后终面, 本来说我运气好一直没遇到英文面和特别难的技术面, 结果这次啥都碰上了, 虽然是个中国人, 然后又是被一个简单的问题卡住, 自己想的太复杂了, 囧…

M 承诺说一两个星期会给结果, 但是从十二月一直等到过年都没结果, 一开始还躁动了下的心又因为以为被默拒而平静了下去, 平静一直持续到了三月初. 三月 M 公司的 HR 打了一个电话过来给口头 offer, 然后要求第二天中午之前就确认是否接受, 因为已经很晚了, 如果不去就把名额让给后面的. 本来我都差点忘记还有这么一个地方没出结果的, 被这么一弄后又开始纠结, 纠结了半天, 找现在的经理聊了下重新把一些原来说好的事情再确认了下, 然后还是比较舍不得打电话拒掉了 M, 本来这事应该就算完了, 结果…

先是 M 的 HR 在我电话拒掉后还是说这事可以再说, 然后联系 M 那边的部门的头说安排见面聊下, 过了半小时马上又改说有空的话电话聊吧, 怕安排见面太晚了, 于是接到头儿从地球那头打过来的电话, 聊了差不多一个小时, 倒是更像我在面他, 囧… 最后还发邮件给我告诉手机号让有问题随时联系, 只能说确实感觉太不好意思了, 然后反思自己是不是太不厚道. 接着是被和 B 公司的老大们继续谈人生谈理想, 苦口婆心分析利弊. 纠结之间很邪恶的答应了 M 的 HR 说去他们的新员工拓展培训, 反正只是出去玩三天, 刚好就当给自己休假了, 也正好能从忙个不停的工作中抽出来安静的思考一下到底自己会想去哪里, 而且 M 的 HR 说了不会因为我去了这个就要我非签不可或怎样怎样, 只是因为他们分两个队, 有个队差个人而已. 于是火速跟在 B 的相关的头请好假, 头儿们很无语, 但是也没办法只好同意, 第二天偷溜出去跟着 M 的一大票人被拉去了通州郊区.

在 M 的拓展中无耻的白听了很多职业规划和发展方面的课, 也玩了很久, 和很多老朋友或者才认识的新朋友们也说过这个纠结, 最后居然一致得出我应该去 B 的结论. 原因主要还是一个短期发展, 因为毕竟我在 B 都已经有这么久的经验, 已经站在一个不错的起点, 而去了 M 则需要全部从头开始, 别的钱啊户口啥的都是小事, 差距不大. 事后想想也许一开始我心里就有倾向了, 只是自己还是有点舍不得 M, 需要找人把自己推向更确定的方向而已. 拓展回来后的第一个工作日, 满心愧疚的给 M 的 HR 写拒信… 高清屏上的小字写了一屏幕…

然后, 没有然后了, 笨狗找工经历就此结束了, 最终签约 B 公司, 研发工程师.