分享一名本科生从大学入学到秋招拿到腾讯offer的完整经历,希望对同学们有所帮助。自我介绍鱼皮是上海某211学校本科生,网络工程专业,秋招因为有腾讯的实习转正,所以只面了大厂,也拿了几个大厂的offer。我一直对计算机很感兴趣,是兴趣自驱动型coder。学的技术也不少,网络工程专业学的知识就不说了(网络拓扑什么的),主要是自己学习的全栈开发、微服务、区块链和大数据技术。目标因为高考失利严重(和北邮差1分失之交臂),所以入学起就决定要好好努力,做到不输其他名校的同学。对自己的实力从来没有过怀疑,因此也有动力去努力,当时就没有考虑过读研,目标只有一个:进大厂!进大厂!!进大厂!!!入学前几乎是零基础的,也就是用按键精灵写过网游脚本,用frontpage + dreamweaver水到过上海市某信息竞赛的三等奖。虽然追求目标时走了一些弯路,但总体还算顺利,也给大家分享下自己的学习路线。学习路线总的学习曲线是:先从一个点到一条线,再多几条平行线,然后多几条交叉线,最后构成一个较完整的面。好抽象第一阶段:初入茅庐,海纳百川大一上学期加了很多社团,学习也基本划水,加入了一个给学校建网站的工作室。后来意识到自己学校的计算机课程很水,要靠自己学习才能提升,因此开始自学。大一上学期一直在做前端(html\css\js\jquery),给学校建网站。那时以为自己会一辈子做前端(看了几本js书就飘了?),后来开始好奇请求背后的逻辑。于是大一下学期开始学习后端(node\数据库\java ssm),发现打开了新世界的大门,也考取了JAVA OCA8证书。期间跟随学校课程学习了c\c++,自己学了点python\php的皮毛,也水到了一个国家级的科创项目,进入了副院长的实验室做项目(前端和c#)。这个阶段是接触知识最多的时候,可以叫“海纳百川”。但比较迷茫,还不确定自己之后要做什么。但很庆幸,兴趣让我加入工作室,做着和兴趣相关的工作,同时赚到了自己的生活费。申项目的时候不被老师看好,被拒绝了几次,但最后是学院唯一一组大一的国家级项目。也是在一个偶然的时机,我私聊院长,成功争取到了和研究生一起做项目的机会。总结,8个字:勇于尝试,把握机会第二阶段:兴趣使然,纵横交错大二上学期,当了学生会部长、社团部长,晋升为工作室的负责人,除了学习外还有很多其他的事情,但我始终坚持每天留给自己几个小时用来提升技术。大二上学期,学习了微服务技术(dubbo、spring cloud全家桶),其实如果微服务学的深入,你能学到很多理论和实战知识,举例子:分布式理论、服务注册发现、配置中心、链路追踪、熔断限流降级、分布式事务、分布式锁、容器等等。自己也抽空给学校建了个前后端会议室预约系统。大二下学期,意识到自己的前端开发效率好像跟不上,就了解了下vue,发现比之前学的angular爽多了,贼开心,一口气花了一个多月学完了,也相应的了解了很多打包工具和Cordova。后来认识了一个很优秀的学长(目前在阿里巴巴),很多问题向他请教,也一起做了一个比赛项目,有人带的感觉真好_(:з)∠)_。后来学了几种消息队列,学习MySQL优化,深入了解了Redis,手动实现了一些框架代码,如Spring、HashMap等。也意识到了算法的重要性,开始刷LeetCode。后来经常在学院分享自己学到的知识,不得不说,很多东西你会了但讲不出来,说明就不是真的会。大家可以了解一下" 费曼学习法",自己学过的东西一定要讲清楚,这也对面试有极大的帮助。对于学习计算机技术,我也总结了一些技巧和经验,如下:1. 对于编程语言,建议看书和文档学习(比如go语言的官方go trip),并能够边看边写2. 对于框架、中间件和工具,建议先看下官方文档,很多简单的东西文档的quick start就能对付了。复杂的,比如SSM框架,要看视频学习,边学边做,很多项目的雏形就源于demo ( 这里强调,不要看出版超过一年的书,框架更新的很快的 )3. 要多逛技术社区,推荐GitHub和牛客网,有很多使用的工具和技巧(比如fastjson\commonutils\swagger)其实很简单,但是你偏偏不知道,就浪费了很多时间去造轮子4. 多用google/百度/stackover flow5. 建议写博客来进行积累总结6. 加入一些优秀的团队,和大佬合作,你也能成为大佬7. 多做作品,多和他人交流,分享代码(这里支持下CodeReview,有些同学到现在还能把密码以明文存入数据库,给别人一看就笑掉牙了)看到这里,你是不是也发现了,计算机是实践性极强的一门学科!光说不练假把式,很多视频教程中的demo都有可能成为你的主打项目,这里要注重积累,可以把很多重复的代码和架构抽象出来,供自己使用避免自己重复造轮子。而在学习过程中,很多技术都是因为需求而所需的,比如你要做一个APP,要做登录,你就要去了解登录流程;要做即时通讯,你就要了解Socket;性能太低,你就要去优化;被黑了,你就要做好安全;懒得写安卓端,你就发现了Cordova、大前端等等。。。到这个阶段,你就知道自己是否适合计算机,是否真正热爱,也已经发现了自己最擅长的语言,已经能够在兴趣的引导下按照一个方向深入地走下去。但是还要接触很多相关的技术,做到纵横交错。总结,8个字:兴趣激励,学以致用第三阶段:追求前沿,交叉融合大三其实我的技术成长是最少的,尤其是在头条实习时用的是自己不主攻的php和go语言,但是对业务能力和眼界的提升都是非常大的(等下聊)。大三上学期在信息安全实验室做了近半年的区块链项目,也写了教材(快出版了嘿嘿),这段时间自己的进步是飞快的,从没有如此静下心来去钻研一个新技术。当时资料很少,淘宝就那么几本书,csdn就那么几篇收费文档,遇到问题了全网搜破也搜不出来,心态也会有一些炸,但不得不说,只要坚持,问题总会解决的吧,而且后来解决问题的感觉真的很nice!这段时间没怎么做项目,因为大三课比较少,考虑下学期去个大点的公司日常实习给自己镀层金,因此开始刷牛客的面试题,准备常用的面试题(多少还是要背一点的), 平时刷算法题也不能少,考了PAT 。也很幸运能在字节跳动实习!然而就在大三下学期,自己的心态发生了变化 在4月份左右(已经在字节实习了4个多月,期间拿到了腾讯暑期实习offer),自己突然一改就业的目标,决定要保研了,因此离职,开始带队参加竞赛,复习专业课,准备保研。竞赛时做的是大数据的一个APP,之前了解过大数据,也自己搭过集群,写过MR,但对算法了解较少。借这个机会,自己查了很多资料,写有样学样写了个推荐系统吧。给我印象比较深的是和机械学院组队的挑战杯项目,让我意识到计算机学科是应该且必须和其他专业融合,才有更大的可能性。后来这个项目果然拿到了挑战杯市特奖,目前也在冲击国赛特等奖。好在竞赛结果还不错,给自己的简历镀了点小金。但是,捡了芝麻,丢了西瓜,为了等竞赛的结果出来写在简历上,保研夏令营报名我都是卡deadline提交的,投了华师、同济、交大、复旦,后来竟然一个入营offer都没有,看来天意让我选择就业。这个阶段我是做的不好的,准备保研却不够专心,我和其他目标升学的同学不一样,我完全是抱着试一试的心态去保研(没过就就业呗),因此也根本没有准备考研的复习。后来导致保研面试白准备,不如把时间投入技术的研究上。但目的也是为了给自己多一个选择吧,只是有些东西想的过于理想和简单了。总结,8个字:呼吸不停,学习不止在这之后,自己学习技术真的非常快,可以和以前的知识网结合起来。比如学React只用几个小时吧,加上Redux、Umi、Dva等一系列也就一两天,当然也不是说太深入。下面讲一下三段实习经历吧,希望对大家也有所帮助 实习经历1. 籽微金融一家金融互联网公司,工作是Java微服务后端研发,这是第一次接触企业文化和社会环境,学到了很多知识,坐在导师旁边,工作效率很高。虽然每天要坐高铁(公司在火车站附近)上班,但也没什么压力。业务比较复杂,曾花一周多去画流程图,再用代码去实现,培养了方案建设分析能力和耐心。也经历了一些特殊的事情,比如一个同事刚进来没多久就因为工作经历多说了一年被查出来开除了(k,唯一的朋友啊),然后帮他收拾代码摊子。还有一个姐姐请我喝奶茶,说她老公想去头条(字节跳动旗下),后来我对字节跳动的关注度就大幅度提升了,预定下一家实习公司。实习共两个月,后一个月很轻松了,基本天天自己刷算法写博客,也很感谢同事们的帮助,培养了自己的沟通能力。2. 字节跳动新兴互联网公司,个人非常看好。实习部门是个新部门,地铁每趟要近2个小时,在我走的前两天才建好单独的一层研发中心,之前是马蜂窝办公室(真惨)。虽然使用的是自己不太擅长的Php和Go,但学习起来很容易,导师和上级非常好,给我绝对的发挥空间,从入职起就参与项目的需求评审,甚至后来是自己一个人负责了一个项目的后端,和其他部门的同事打交道也非常多,成长非常非常非常快!而且字节跳动的待遇真的没话说,全员Macbook +免费三餐零食下午茶。后来快离职了,导师和上级也没给我安排什么任务,就每天刷刷算法,解决下之前的bug。总之,这段工作也很轻松吧~3. 腾讯从小就想进的公司,我对腾讯是真爱,当时哪怕只有1块钱,我也愿意全部献给我亲爱的宠物鹅。记得是在去年暑假还是10月左右投递了腾讯的实习,然后3月左右我在字节跳动吃饭的某一天,接到了腾讯的面试通知,还两次!这给我吓得,第一次深圳的面试官,我直接拒绝了;第二次说是上海的,我就面试了一下,这段面经在我以前的讨论帖也有。比较轻松地拿到了暑期实习offer,虽然在保研的时间点,但觉得应该也不影响,就还是入职了。在腾讯的工作,和字节跳动感受完全相反。腾讯对实习生的控制非常严格,两个月的实习我没有参与过需求评审,甚至连开发机也没接触到,发布到测服也要靠导师,线上环境就更不说了。但不得不说,有规范性是好事,比如CR,相信字节跳动也会慢慢规范化的吧。因为是做全栈,大部分测试也是自己做的,所以在字节跳动锻炼到的沟通技巧在腾讯暂时没派上用场,但相信以后必然会有用的。因为是有实习转正机会的,所以要努力争取。正常的下班通常是6点半、8点,而我有段时间甚至是住在公司的,也见识到了加班到2点的同事,很害怕啊!很幸运吧,得到了上级们的认可,也是一路顺风顺水,拿到了组内答辩最好的成绩,但听说还可能是白菜价,现在慌得不行。不出意外的话,还是会留在腾讯,继续努力提升自己吧!当然也有很多后悔的事!1. 目标不够坚定,走了弯路,很多时间被浪费掉了2. 在实验室研究区块链时没考虑写论文,后来才知道论文是多重要3. 太珍惜自己的时间,有时也伤害到了身边的人 建议给目标直接就业同学的建议:如果时间还多,那么就按照自己的方式和兴趣去学习技术并实践,心无旁骛。你要知道研究生也才多一年多的项目/研究时间,如果本科你把别人准备考研的一年用于学技术,那么竞争实力完全不输研究生。给考研同学的建议:提前了解目标院校考察的专业课,并在该门课初学时就下功夫。所有实践课要好好学,平时有空也多上牛客,避免考研失败后春招完全小白给保研同学的建议:如果一心决定读研,担心保不到好的学校,也可以准备下考研,顺便也能复习到一些面试知识总之,目的是给自己多一个选择,多一条后路。尾声以前纠结保研还是就业的时候在某论坛发了一个帖子。有很多热心朋友给我建议,非常感谢和感动。最后自己还是放弃了保研,选择了一条自己更喜欢的路。还是要坚持自己的初心,知道自己想要什么吧。无论如何,千万不要让别人替你做决定。自己也不是一个自律的人,很多时候都是在逼自己去做事、去学习:比如接很多项目,提高自己的效率和抗压力;报考证书,逼自己稳稳的复习理论;作为队长参加竞赛,逼自己有了责任感;对学弟妹有了一定的影响,也要逼自己做好榜样。自己也不是一个聪明的人,但我相信“天道酬勤”的。人都会有自己的一个舒适圈,生于忧患,死于安乐,只有跳出自己的舒适圈,选最难的路,才能成功吧。杀不死你的,只会让你更强大。人越成长,可能性就越少,现在的我已经正式工作一段时间了,也还是要坚持学习,不断进步。其实并不难,是你太悲观。比你优秀的人都在努力,我们为什么不努力呢?往期推荐 查看全文