在巨硬已经呆了 15 个月, 已然创造了团队中实习期最长的记录。本来也没想呆这么久,只是没想到因为离家近, 价格也还好,外加学校也没什么事,就直接呆着了。没想到现在,论文定稿事情这么多,每周来回合肥苏州跑也不现实,导师的邮件回复速度真的是慢的令人发指,只好想着以后回实验室,盯着导师干活。
实习期间还是比较舒服的,之前在类似于国企的校企合作单位实习过,在互联网单位实习过,在台资企业实习过,最后的最后,像人一样工作的还是欧美外企啊。
在巨硬的实习期其实可以分为两个阶段,一个是转正面试前,一个是转正面试后。转正面试前,众所周知,因为转正的压力,干起活来特别卖力,所以这导致的一个结果就是,没啥事干。。。因为任务都是按照 Sprint 来排的,也就是每两周安排一次计划,当计划中的任务完成,那就只能从 backlog 中找点活干,backlog 里面呢,又都是一些无关紧要的低优先级任务(高优先级也没办法在 Sprint 碎片时间完成),所以我也学会了如何正确的工(hua)作(shui)。
本来硕士阶段和本科阶段着重点在于数据库相关的研发,但是众所周知,巨硬的特点就是,来了之后随机分岗。。所以我就被莫名其妙的被一三面面试官捞过去做 ML 相关的产品= =。(后来才知道,在楼上也有做数据库存储底层相关的组)。
实习期间,主要的任务就是处理数据和一个在线计算引擎。不得不说巨硬在存储上面是厉害,实习生项目是一个离线数据处理库,也就是尝试在做数据处理时,做一个中间层,对数据进行规范化梳理,也就是常说的 OLAP 操作。一开始觉得处理 PB 级的数据,哇好兴奋啊,到最后,哦又要等几个小时才能出结果啊。
关于在线计算引擎呢,这个我觉得从架构设计上就已经到了比较先进的水平。总共使用到的服务器在 40K 左右,每天处理的请求也是巨大的数量级。。关于如何处理大规模请求,网上有各种解决方案,巨硬内部的解决方案其实很奇葩,因为 Exchange 服务是从上个世纪 90 年代就开始的,所以受到时代的局限,很多的解决方法在现在看来思想有点落后,但是,很多的解决方法又很超前,因为当时的巨硬没有开源需求,导致很多的技术并没有外传。NoSQL的实践,列数据库实践都很超前。总的来说,我还是觉得巨硬少一个 Steve Jobs 般的营销鬼才,因为内部都是工程师说了算,导致很多的需求,都很工程师范(管用户怎么看,往上堆,这个很牛逼,往上堆)。
关于转正面试,貌似很多人都会觉得这个很难很慌,然而其实真的很简单,只要把给的题做出来,换着法子做出来,用各种奇葩技巧做出来然后一次过,就好了。想到当年在中科大复试,和老师交谈甚是开心,最后在专业面试中直接开始讨论苏州地区的房价对昆山地区的影响。差不多巨硬也是这样,记得面试最后问了下 AA 给我的评价,他也反常的直接给了答案,而不是非常官方的回答(不直接回答结果,编借口说等综合考虑)。
面试后的实习期,不出意外的,我从前端组换到了现在的重后端的部门。我的前端是真的烂,传说中的 Google(Bing) Coder,加上内部又是用 TypeScript,更是很难受。不得不说,内部的 infra 做的是好,哪怕不会写,照葫芦画瓢就行,写的不对的编译会告你怎么改。大不了最后 code review 拉回来重新写。现在的这个组就是在那个在线计算引擎上开发。如果你有幸购买了 Office 的高端版本,你可能就会看到我的代码。这里面也有个好玩的事情,我之前开发了个 feature,结果这个被美国的大老板喜欢上了,隔三差五提需求改,结果就是本来 1 个月就能上线到全球用户的 feature 脱了三个月。。。另一个项目就是 cache 相关的,要把线上所有的 cache 都进行替换到统一的 cache 缓存中,还是挺有挑战的。以前在蘑菇街的时候,也是做 cache,现在在巨硬还是做 cache,也算是一种传承?
到此,基本上就是实习期间的重大项目了。在实习的后期,因为学校开始了论文开题和初稿、定稿的琐事,也算是满负荷工作下抽空进行各种文案的编写,累啊。
近期总结
其实最近比较大的事情就是开源上的事情了,应该目前最大的事就是发掉 v3.0.0 的 hexo-blog-encrypt,当时启动这个项目的原因也是挺好玩的,有同学说 hexo 纯静态做不了加密,我查了下确实没有,然后他斩钉截铁说肯定不行。emmm,那我就只好做一个给他看看。没想到现在也广泛使用了。真的没想到。(vim 的那一堆插件,什么时候有人用啊)。确实感谢了一起付出的人,尤其是有一个 co-ownner 吧。羡慕现在的年轻人,大学期间确实是最轻松的时候了。
接下来也就是希望自己论文定稿顺利,外加顺利毕业吧。