若非群玉山头见,会向瑶台月下逢

若非群玉山头见,会向瑶台月下逢

一年前,开始在这里记录自己的一些收获与学习经历,后来因为去趋势科技实习中断了这个过程,中断了也有半年之久了。

吐槽一下,过了这么久了,CSDN的这个文本编辑器还是这么反人类。

这段时间经历了很多,也学习了很多,实习的时候没有精力去总结,九月份刚结束的时候,对自己后面的规划还没有一个清晰的认识,同时还要准备开题的事情,也就没有继续更新博客,现在有精力(闲了下来),有时间了,就想着把这段时间的经历做一个记录。再次打开自己的博客主页,感慨万千,看看以前的博文,不禁发出感叹“我以前写的都是些什么破玩意儿”,大概过去式的自己总是比现在傻B的。

趋势科技实习生面试经历
我现在都记得很清楚,公元2017年3月27号的那个早上,南京花神庙地铁外,趋势科技门前阳光明媚...没错,那是我入职的日子。在此三个星期之前,我匆忙制作了一份简历发出去,走了两个渠道,一个是官网的页面,还有一个是已经入职的师兄。最后,大概两个星期后hr通知我去参加面试。
趋势科技主要是做安全,比较低调的一个企业,但是在南京地区算是一个不错的外企,也曾经有过一段辉煌的经历。据说南京房价两三千的时候,趋势的工资就已经有一万了,当然只是过去了,下半句就是,现在南京房价两万多了,他的工资还是一万多。公司里面,实习生非常多,大概每个组会有一两个到三四个不等,每个组大概也就十四五个人,这个企业似乎非常愿意招实习生,是为了节约成本?这个不得而知。
趋势科技的面试我总结为看运气,具体怎么解释,待我慢慢道来。面试接待我的就是我以后的mentor,后来了解到,去面试实习生的面试官基本都是缺实习生的组的代表,负责为他们组筛选,所以也会有多个面试官同时面或者轮着面的情况。面试官看完我的简历,大概问了两个问题,一个是根据我写的项目问的,大概就是试探我对计算机方面的知识广度。当时我还是个懵懂少年,对操作系统、数据库一无所知,个人感觉回答的不是很好。第二个问题,如下:

int a;
//code 1
while(1)
{
     printf("%d",a++);
}
//code 2;
while(1)
{
    a++;
}

两段代码运行起来,哪一个更占用CPU的资源。我半猜半想,觉得是code2,毕竟做硬件起家,本能的觉得printf这个函数需要输入输出设备的支持,而调用输入输出设备的时候,cpu必然需要中断操作,而,code1里面不需要中断,运行起来畅行无阻,更占用资源。
mentor说我的选择对,解释算半对,实际原理应该是操作系统里面trap的原理,后来看了CSAPP和APUE,现在回过头,明白了,这个是操作系统的异常处理,输入输出也属于一种异常处理,会产生一个trap,其实硬件层面就是一种中断,自己算是误打误撞了。
然后mentor反问我有什么问题要问他,我就问了下亚信现在和趋势的关系,还有一些语言选择的问题,哈哈,因为我是C++的拥趸,似乎mentor也有这个意思。然后就很顺利的过了。这里我解释下,为什么说趋势的实习生面试看人品,因为实习生的选择本质上是各个组在选自己想要的人,所以要求和面试风格会因组而异,难易水平也不好说,所以就比较看运气,我明显是属于运气很棒的那种~对了,趋势科技现在的行情是日常实习生150元每天(按天算的),暑期实习生200元每天,如果是外地的学生,会有额外的租房补贴,然后每个月结算的时候如果超过3500,超过3500的部分是要交税的。
趋势科技实习经历
实习前我是有过犹豫的,现在实习结束了,正在看文章的你,如果也像我一样,本科的时候没有相关实习经验,研一的时候实验室负担不是很重,那我非常建议你找一份靠谱的时间,实习时间在四个月以上,我觉得绝对是有收获。实习期间,我所在的组是趋势科技四楼的一个组,属于foundation(基础事业部)部门,做的是邮件扫描方面的安全产品。下面我分两个部分来做主要说明,一个是实习期间的问题与收获,一个是这半年下来我待在趋势工作的体验,以供有缘人借鉴。
实习的过程还是很艰辛的,心态变化如下->哇,好新鲜->什么鬼,怎么配置环境老出错->好想跳过熟悉产品的过程,直接做feature->终于做feature了,开心->这个feature怎么越看越难做,是不是该问问怎么处理->算了,硬着头皮上啦->欸,还不错的样子->和测试沟通改bug->over了。
我不认为配置环境的问题是很复杂的问题,最初没有成功的原因有很多。开发中遇到的问题我认为更关键。
1. 首先是如何阅读一个庞大的代码工程,而且由于历史原因,一些文档丢失了,出于代码纯净性的考虑,所在组也是不写注释的,这就意味着,很多时候,你需要自己在代码的字里行间清理出它们的内在逻辑,然后不断调整你的思路。不过组里面有一些帮助新手入门的介绍视频,不过代码还是最直观的。而且代码本身一直处在更新的状态下,不看代码,基本上没办法理清楚逻辑。这个真的是非常痛苦的过程,不过,我也慢慢总结了一些经验,当面对200多个project组合起来的solution的时候,一开始你不会做到面面俱到,必须有一个切入点,从自己的做的模块切入进去,把自己做的那段的代码仔细看,结合log文件和调试工具,多试多打log多打断点,查看调用堆栈,这个阶段搞清楚代码的流水是怎么走的,理出来一个逻辑。逻辑出来以后,可以稍微从工程的角度分析代码实现的逻辑,我发现大的项目,每个模块的内在逻辑是非常相似的,搞清楚了一个,再看另一个会非常亲切。总结起来就是log和debug,不尝试是不会有认识的。
2. C++开发收获之二就是设计模式和一些常用的实现方式。也就只有上了规模的代码,才能看到比较复杂的继承体系,也会有很多麻烦的动态类型识别,这个是一把双刃剑,用起来很好,读起来就很麻烦,经常性的情况就是你需要跳转很多次才搞清楚这个类型到底是A,B还是C,这个过程很容易就打断了你的正常思维,要熟悉这种模式,后面就会好很多,当然,结合代码上下文,自己做一个类型估计也很有帮助,一般需要动态类型识别的地方,一定是具有一定通用性的地方,理解了这些地方的逻辑,对于理解整体工作的逻辑,也很有帮助。另外就是常用的设计模式,例如单例模式、工厂模式,不能说用过就精通了,但是成熟的代码是一个很好的示范,照猫画虎学习了一波,感觉还是不错的。当然,还有类似RAII,五六月的时候,那个时候我正在读《effective C++》,里面刚好提到这个方法,理论和实践交相呼应,感觉很赞,印象非常深刻,还有很多很多,难以一一道尽了。
3. 之三:善于利用工具辅助,首先是版本控制工具,实习前简单使用过git,但不是很熟悉,在公司由于历史原因,用的是P4V,使用之后,倍感方便,于是前段时间花时间重新研究了一下github的使用,感觉还是非常值得一试的,这里推荐一个教
程: https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000   再之后是思维导图工具,人的记忆力还是非常有限的,思维导图可以辅助归纳和记忆,重要内容忘记了也不要紧,看一下就明了了。我使用比较多的是百度脑图,在线编辑,也可以导出成各种格式,虽然没有官方的客户端,但是有个人制作的本地客户端,有兴趣的可以找找。 再之后是阅读源代码的工具,sourceInSight是常用的,不过我发现understand也很棒,有多棒呢:

上面的两个图是我阅读leveldb源码时,使用它生成的某段的逻辑控制图(有点小瑕疵,哈哈)和UML图,当然还有其他很多很多方面,总而言之,understand可以在不编译的情况下,分析出代码的内在逻辑关系,刚开始使用的时候被惊艳到了。
以上就是实习过程中的收获,其实,最大的收获是,对C++的工程应用经验,以及熟悉度,这种东西很难量化的解释,就不赘叙了。
实习经历的第二部分就是对趋势这个公司的感觉了,两句话足以概括,其一,工作氛围好,压力小,国际化办公环境,同事间关系和谐,不得不提四楼foundation的福利是不错的。其二,待遇在南京中上,发展空间不足,发展空间不足指的是,不同于处于业务扩张期的公司,个人得到提拔的机会有限。不过,外企朝九晚六,不打卡,晚到早回什么的,也没什么去约束你,不要太过分就好,因为IT行业本身是一个知识更新速度非常快的行业,所以我觉得,有足够的下班时间还是很重要的,及时给自己充电对自己的未来也更有利,当然了,前提是你足够主动积极。
实习期间,遇到了很多人和事,留下了很多美好的回忆,自己迷茫的时候,也受到了很多启发,每每想起,感谢那段时光,感谢坚持下来的自己,感谢工作中遇到的每一位同事。
若非群玉山头见,会向瑶台月下逢
言归正传,又回到研二的正轨了,实验室的事情多了起来(呵呵),不能再那么自由了,有很多麻烦事要处理(比如开题什么的),写这篇文章(勉强算是吧,研一回忆录?)也是为了给自己梳理一下,感叹每一段的经历,每一个相逢与别离,都给生活带来了很多乐趣与感伤,或许这就是“有意思”的内涵了,我庆幸自己没有空洞的度过这段时光,另一个平行宇宙里,如果我没有做这些,我会不会就错过了很多,当然了,现在的我也错过了很多,比如研二的二等奖学金,真是心痛。
这段时间算法数据结构之类的一直有看,翻看之前的博客我竟然还写了几篇整理stl的算法的,真是无力吐槽了。前段时间看完了《深入理解C++对象模型》《CSAPP》《effective C++》《effective stl》,自觉现在的入门段位又提高了,怎么也不是垃圾废铁了,后面打算看看《APUE》《UNP》《TCP\IP》,顺带刷刷leetcode看看源码,日程可以说是很满了,但愿一年后的这个时候,我会感谢我此刻的所作所为。
国庆开始,码了这么多字,就以一首诗做结吧(表达了我复杂的心境,不要问我为什么):

云想衣裳花想容, 春风拂槛露华浓。 若非群玉山头见, 会向瑶台月下逢 。
一枝红艳露凝香, 云雨巫山枉断肠。 借问汉宫谁得似, 可怜飞燕倚新妆 。
名花倾国两相欢, 常得君王带笑看。 解释春风无限恨, 沉香亭北倚栏杆。

Comments are closed.