实习记录

上周五从BD离职了,走之前跟同事一起吃了一顿饭来欢送我,临走的时候,组里的同事也陪着我一起下楼,把我送上了回学校的车。仔细想想这六个多月的BD实习生活,从不熟悉到熟悉,确实是学到了很多的东西,无论是技术方面的还是为人处世方面的。所以这两天没啥事情就想写一写在BD这六个月的感受与成长。

想要记录的太多了,所以我就按照时间顺序去回忆一下对我影响较深的几个事件,从面试入职到学习框架,接手项目,秋招复习,犯过的错误,离职几个方面来做阐述。

面试初见

那时我还在MS做实习生,由于做的事情感觉没有挑战性,所以就想找一个更接近业务与用户的实习岗位,正好在论坛上上看到了BD video团队招收实习生的帖子,就抱着试一试的态度去投了一下。结果几天后,接到了面试通知。

面试过程一共三面,一面也就问了一些基础的东西,还有为什么离开上一家实习单位,想在我们这里得到一些什么?二面是Y哥(我之后的导师之一)面试的我,问了之前在学校网络中心做的一个项目的一些东西,还问了一个算法题,没有给出优化的方法(求一个无序数组的top K),但还是勉强过了。

三面是我们组的leader  Q总,一来就板着脸,问了一些SQL语句和两个简单算法,SQL太久没用没答好,几个算法答的还不错,也是常规的解法吧。后来了解Q总是北邮的,聊了一些其他的东西。当天就给了答复,问什么时候可以入职,确定了6.1入职。

初入BD

2017.06.01来到公司,签了实习合同发了电脑和token,并且注册了BD一系列的账号,和一些常用的软件,BD实习生活就这样开始了。

刚到公司做的是PHP,我的导师是服务端一个很有经验的工程师(W哥),跟我说了一下我们开发所需要的环境配置,以及代码相关权限,代码规范等。然后我就花了大概一周的时间在自己机器上搭建了开发所需要的环境以及调试通了所负责的模块的代码的所有接口,并且在导师的帮助下自己上线了自己编写的第一个接口。

后来就比较乏味了,由于组里在封闭开发,我也被拉进了“小黑屋”跟着同事封闭开发,也由于自己需求比较少,并且自己只负责一个模块,所以那段时间就是看看代码,然后有需求就完成一下,还算比较轻松。

导师离职

后来W哥请了很长时间的假,之后就听说了他要离职的消息。心里五味杂陈,实习着导师离职了,哈哈!

导师走了之后,就意味着导师的那个模块就归我负责了,亚历山大呀,这个模块可以说是很重要的一个部分了,稍稍不慎就会导致线上数以千万的用户访问出现问题。但同时这也是一个很好的机会呀,没办法硬着头皮上吧。慢慢熟悉了所有的代码,并且也看了站点排序的代码,发现这个模块也不是那么难嘛!只要敢想,敢做,你在未来会慢慢发现,自己会做到从前所不敢相信的事情。

秋招复习

由于实习的原因,秋招还没有准备就来了。虽然没有投很多家企业,但突如其来的笔试面试令那段时间的我猝不及防,每一次笔试,都会自己那么那么多的东西还没有复习,牛客网,LeetCode,面试指南,操作系统抓紧时间就刷一刷题。后来虽然没有收到很好的offer,但是也拿到了相对不错的offer。在BD这里也拿到了转正的offer,算是有了一个保底offer。

其实现在想想那段时间,就是没有做好计划,心里也没有做好准备,到后来都不知道自己想要什么了,不是想谁给我offer就去哪,胡乱投一气。就是看哪个公司也看不上,一个也不想投。所以一定要想好自己想要去那些公司,想好做什么是最重要的。

实习转正

大概在八月底,就通过了部门象征性的三轮转正面试,拿到了第一个offer。拿到offer后,老板就在组会上说,LT已经拿到了转正offer,所以可以像一个正式员工那样对待了。然后老板就找到我,我感觉你不止可以做PHP,我想把倒库交给你,你敢吗?支支吾吾的接受了(心里无比高兴)。

后来自己花了一周的时间熟悉倒库的代码,这是一个13年的老代码,一直被近十个人接手,各种补丁,有用shell写的,也有后来用python重构的,代码相对比较复杂。后来根据倒库在全组人做了倒库相关的讲解与汇报。

当机会来到时,要有抓住它的勇气,我相信实习的同学不会有很多可以接触一些很核心的东西。

倒库相关

接手倒库后,我就开始忙开了,一是detail模块和倒库两部分需求比较多,另一个方面就是对于倒库的代码不熟悉,有新需求时总是需要去查看代码确定其原有逻辑。但正是由于这部分让我学习到了很多的东西。

新提图系统迁移,就是在一个新的小项目(将线上业务从旧提图系统平稳过度到新提图),我真正接触了处理大量的数据应该如何操作,如何避免各种问题。数据库alter造成的锁表,主从延时。以及异步接口老是挂起,如何处理数以千万条图片数据。(这个问题涉及到的东西比较多,之后再做一个详细的介绍总结)

线上作品的付费转免监控,定时抓取源网站的代码,来分析我们线上的付费标记是否与源网站一致,做到付费作品实时转免以及实时转付费的逻辑。(涉及到大数据量如何做到实时,如何只对topn转免)

上线出错

实习这六个多月一来,小错也犯过不少,其中出现两次线上问题,着实不该,引以为戒。

错误一:需求是我们对于一些品牌作品(就是跟我们合作比较密切的作品)直接进入对方站点的播放页,对于Tv作品,直接跳到其最新一集播放页。这个需求代码量也不是很大,但是需要拼接外跳URL,其中涉及到一些参数的时候,我和对应的测试同事都不太明白需要拼接什么参数,询问PM结果被告知只要完成跳转逻辑就可以了,因此信以为真,就上线了。

结果一周之后,数据统计的同事发现,品牌作品的UV少了很多,后来才找到正是那些参数惹的祸,立马紧急上线,修复错失并且请相关同事从log里捞回丢失的数据,发事故报告。

虽然这件事情自己确实询问PM相关参数,但自己也是有着不可避免的责任,之后无论做什么相关的业务,上线就必须对用户对公司负责,如果PM不了解,一定要问一下相关同事或者老大,避免相关事情出现。

错误2:倒库逻辑修改,导致代码中一个if判断出现了问题,本来这次修改就是把case中集数信息改为0,测试没错,但是把线上所有作品集数都搞成了0.导致很多推荐以及线上展示都为集数0。发现后,立即修复错误,线上持续一个小时左右。

说实话,这个问题真的是自己的原因,当时看到线上真的把我吓傻了,当天晚上还梦到了上线又出错把自己吓醒了,每次自己的需求都要把结果文件diff一下,确认无误后才可上线。

BD离职

导师Y哥说“不出事故的实习就不是好实习”,事故也出了,学校也快到期末了,就像Q总提了离职。

由于组里现在人员有限,自己的业务没有对应的RD接手,所以十一月提的离职,十二月中旬才离开,把自己之前接手的detail和倒库业务,代码逻辑,常见的case,之前需求的实现方法都总结了在wiki上,也算是对之前六个多月的一个回顾。

最后一周,拿着微薄的工资,请组里大佬们吃了一顿便饭,周五时大家又回请了我一次,在公司办离职手续的时候,同事一直问我,走的时候一定告诉我,我送你。

总结

这是一篇对于实习的总的概述,之后我还会对一些细节以及技术方面写一写感悟。

你可能感兴趣的:(实习记录)