黄复贵:从北京理工到今日头条

基本信息

  • 年级学院:2014级软件学院,本科生

  • 毕业去向:今日头条,后端研发工程师


关于我的基本信息,只列出上面这两点,对这片文章来说其实也足够了,所以也没列出其他更多的。我更想表达的,是即将毕业这一年来的心路历程,以及一些微不足道给学弟学妹准备的毕业求职经验分享。

心路历程&&经验分享

从2017年2月开始准备找实习工作,到2017年12月面完最后一次校园招聘。这一路走来陆陆续续的也收到一些互联网offer,搜狐、京东、腾讯、美团、滴滴、新浪微博、今日头条,最后的最后,我选择了今日头条。

在此之前需要说明的是,我并不具备大牛级别的技术水平,以上我的offer情况,我已经非常满意了。如果你是微软谷歌BAT的offer一手全拿下的精英级同学,或许这篇文章会让你见笑了,但是如果可以的话,请你留下联系方式,我想向你学习~


首先,我想简单的提一下我的大学四年。

大学四年
  • 本科第一年刚开始接触编程,从c语言基础算法题开始,那时候也仅仅是把编程看作是要完成的作业,因为要修够学分,说实话,那时候真的不喜欢天天坐在电脑前,真无聊。
  • 第一年后开始接触PHP、Java等编程语言,因为我的学长告诉我,这可以写应用后台,我想到淘宝、支付宝、Steam这些大家平时生活中都会用到的应用,感觉应该挺有意思,所以就开始学了起来。从基础语法,到开发框架,再到自己设计需求,从头到尾实现一个、两个,三个,甚至更多的应用。就这样,过完了大学前两年。
  • 来到了非常忙碌的第三年,上学期挤满了专业课,操作系统、数据库原理与设计、计算机网络还有其他专业选修课等等,白天上完课后晚上要急急忙忙写课后作业,第二天再早早起床到教室的第一排座位去上课。这个学期,我觉得比我高三考大学都还要努力,很累很充实。因为这个非常努力的一学期,提升了自己非常重要的专业知识。
  • 接着,是第三年的下学期,也就是2017年2月,我开始准备找实习工作。不断的复习充电,补基础知识;不断的笔试面试,不断的被淘汰被挂;但被淘汰后又不断得弥补不足,慢慢的,我开始不断的接实习offer。最后,暑假我去了北京腾讯实习。
  • 时间来到了第四年的上学期,我开始参加校园招聘(身边的同学基本都保研考研去了,我似乎在一个人奋斗,但是很感谢@潘、@吴的陪伴,他们也是跟我一起本科找工作,我们会经常一起交流技术相关)。又是不断的笔试面试,来来回回的跑去别人公司面试,不断的磨练,最后接到了今日头条的offer,嗯,该结束了。

上面我故意略过了很多笔经面经的详细过程,需要再次强调的是,我不想书写千篇一律、在网上一搜就有的笔试面试经历。但是我相信,这篇文章对你们,一定会有帮助,请往下看。

第一:最先要明确的,是你要应聘什么岗位。如果你不明确,那只有一种情况,就是你根本不知道自己会什么,目标是什么,因而简历也写的模模糊糊,更别说进了公司后能作出什么贡献了,不是吗?

第二:要充分明确所应聘岗位需要的校园招聘技术要求。例如,服务端研发一般需要具备算法数据结构等基础知识;熟悉Java、PHP、C++、Python、Go等一种或多种编程语言;数据库Mysql使用与原理;了解各种开发框架、分布式RPC组件、消息队列、缓存组件、大数据组件使用与原理;当然高可用系统设计原则对校招生来说,应该算是加分项了;还有很多很多…..。明确你的职位要求是什么,按需所学,这样学习效果才是最好的。

第三:懂得不断反思。如果你不是上文提到过的精英级同学,那你一定会有面试被淘汰的经历。面试其实就像是相亲,久逢知己嗑瓜子,话不投机十分钟,面试官如果觉得跟你不在一个频道上,你再牛逼都逃不过被挂的结果。所以当被淘汰了,可能就是因为技术上的不匹配、沟通交流上没表达好等种种原因。这个时候千万不要不以为然,可能你这次的错误不改正,下次还会因为同样的错误而被淘汰。所以好好反思到底是哪个技术点没回答好,哪个问题没表达好。


接下来的第四、第五点,我觉得对我个人来说,是最重要的,时刻鞭笞着我。

这就是我

第四:找到你最喜欢做的事情。在腾讯的时候我第一次接触了Go语言,我的第一感觉是,我真的非常喜欢。其实大家都说编程语言只是工具而已,大多数情况下写业务代码都没什么差别。首先我赞同这个说法,到现在为止我也写过不少业务代码了,我能体会语言只是工具这个说法。但是我很想补充的是,如果一个研发能有一门、两门他足够喜欢,以至于能够促使他不断深入了解直到精通这门编程语言的时候,不是更好吗?并且,从基于兴趣、喜好的语言学习,可以顺利的延伸到各个开源组件的学习研究。我们看到的各个开发框架、微服务框架、各个组件其实都是基于特定编程语言的特性,结合操作系统,加上额外的理论(例如高可扩函数式编程、分布式一致性原理等等)做了进一步封装,仅此而已。我被这门语言深深的吸引,虽然现在还处于普通水平的阶段,但这个兴趣促使我不断了解、学习。例如我会去看channel的源码,range内部实现、类库源码、高性能开源库httprouter、优雅重启开源库endless等等,接下来,我还将不断研究学习,例如期待已久的nsq、分布式RPC服务框架服务注册发现、负载均衡、一键降级流量切换、容灾、自动故障转移recover的实现原理等等,这无论是在代码硬实力、程序设计理论上都对我有极大的提高与帮助。也因为兴趣使然,我会关注Go语言各个版本的新特性,社区的新闻,无意间看到了今日头条Go建千亿级微服务的实践,曾经的无比向往,现在的触手可及,感谢这一切。

第五:做到知其所以然。我不喜欢把自己定义为开发人员,我更喜欢把自己定义为研发人员,就为了多一个“研究“的定义。大家都在用一些开发框架、组件做一些业务工作,但懂得去关注为什么会出现这个框架、组件、出现初衷是为了解决什么问题的人却不多。举个例子,我相信基本所有的Java程序员都使用过Spring这个框架,一定会使用到它IOC依赖注入的减少硬编码特性,不知道有多人Java程序员会去关注这里面的底层细节,也许你不需要去一行行看懂源码,但要知道核心的那一部分原理,就够了。如果觉得Spring封装得实在太重,那可以去看看PHP的Laravel框架,那也是一个IOC容器,封装的较简单,核心就是维护一个数组,再递归反射实例化对象,你就焕然大悟了。再举一个例子,长连接服务一般会使用开源框架而不是裸写,例如Netty。Tcp在压力下的数据传输有粘包拆包的半包读写问题,那Netty怎么在应用层去解决这个问题,有哪几种解决方案,核心原理是什么,能够心中有数会更好,而不是盲目地套框架。要做到举一反三、触类旁通。

第四、第五说了这么多,我想表达的是,无论将来要从事哪个岗位的工作,如果大学生能够基于兴趣学、主动学,坚持知其所以然的原则不断提高,对求职真的很有加成。

补充

第一:我很建议在正式校园招聘前,先去找一份实习工作。原因有两点:

  • 提前进入公司去实习对你个人技术的提升99%的可能是很有帮助的。
  • 通过实习你可以知道公司团队需要怎样的人才,你应该从哪方面去努力;以及你自己需要怎样的团队以及业务,这是个双向选择的过程。

第二:能走内推,就尽量走内推。多找找你的学长学姐,他们能帮到你的,走内推可以省去笔试的流程,在进度上会大大的领先,早点面试早点拿offer不很好吗?

第三:真实简历、珍惜面试。会就会,不会就不会,会多少就往简历写多少,切忌夸大其词,“精通“两个字对于校招生来说,实在太遥远了。珍惜每一次面试机会,认真准备,一开始一定会紧张,这是正常现象,也不要埋怨自己前几次发挥不好,慢慢就好了。我还是想重复一遍,要不断反思总结。

第四:把握时间点、多留意招聘信息。每年的招聘时间可能都不一样,但都应该差不多,具体的简历投递截止时间,这个需要去官网查看,可别错过了,这可是工作;多去程序员校招求职论坛上看看,例如牛客网,上面很多内推信息,以及在这篇文章中我故意不提的,面经。

最后

希望包括我在内的各位应届毕业生,前程似锦!

  • 13
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值