专升本后的秋招之路:错失大厂,上岸中厂

时间:2024-01-27 14:34:20

前言

​ 2019年7月,和实习公司的老板提出辞职。他以为我要跳槽,想要挽留,我说我考上了专升本,要回去读书,老板表示理解。当时打算八月中旬再走,这段时间,主要是和新同事交接一下工作内容。自己实习的这家公司规模不大,是杭州的一家初创公司。初出社会,遇到一个好老板也是难得。当时实习工资到手7000,作为一个专科生,已经相当满足了。

​ 9月份,本科学校开学了。最初的两个月相当不适应,因为已经习惯了在外面的生活。最主要的是当时的心态已经完全变了,专科三年级,在外面全职实习近一年,早就没了学生心态,再加上对未来的憧憬和现实的迷茫,搞得心情非常抑郁。为了缓解这种状态,当时选择了住在寝室。因为我家离学校非常近,骑自行车只要十几分钟。事实证明住在寝室是对的,认识一些同学后,慢慢的也融入了校园生活。

学习路线

我的经历

​ 正文开始。实习的时候,做的是.NET后端,之前读专科时也学过Java,语法上和C#非常类似。大概花了一周的时间,复习了下Java的语法。接下来大概两个月的时间开始琢磨Spring。当时也没什么经验,自学起来相当费劲。最后还是花了几十块在某宝买了个视频教程,还顺便做了个非常简单的小项目。简单熟悉了Spring和SpringMVC后直接上了SpringBoot。因为当时了解到,使用原生Spring已经非常少了,大部分都用SpringBoot。同样的找教程+做项目,这是新手学习框架比较简单、快速的方法。当时做了自己第一个比较大的个人项目,也就是烂大街的电商项目。虽然烂大街,但是这种项目对于一名新手来说,真的能学到很多东西,毕竟涉及到东西会比较多,代码量也可以,顺便练练Java Coding能力也是不错的。

​ 电商项目刚开始做的时候,疫情在武汉爆发。当时每天就是刷新闻、刷牛客、学习。也见识到了来自西方的偏见与虚伪。做电商项目期间,各种小问题也层出不穷,不过好在基本都解决了。做完电商项目之后,开始考虑起了春招的事。逛了一段时间的牛客之后,决定放弃春招了,差距真的太大了。万一给秋招留个非常差的印象就不好了。当时看面经,80%+的都不会,技术栈也远超出自己的现有水平。结合往年秋招的一些要求,给自己制定了一套大概的学习目标,如下图。

​ 如上图,就是结合自己手头上有的一些资料,制定的大概的学习目标。每天详细的计划,我用的是滴答清单。平时的学习笔记会记录在有道云笔记上,如果一篇笔记内容比较多也比较系统的话,就会发到博客园上。在学习初期,有很多不懂的地方,归结于一点其实就是基础太差了。比如《深入理解Java虚拟机》第一章说的字节码我就不知道是个啥。对于一些书籍、源码看不懂的问题,我也有了一点经验,可以给零基础的同学一点建议。Linux必须先学,起码你得摸过Linux,用过一些命令。因为很多进阶书上的演示都会基于Linux,如果你从没了解过Linux,肯定会一脸懵逼的。对于Java相关的源码学习,一定要学好反射、泛型、代理等高级语法。因为这些功能在框架的源码中随处可见,如果你只是在学习Java基础语法书籍中一笔带过,不着重练习的话,在学习到框架源码这一步时,肯定会遇到障碍。对于一些小问题,比如某个技术名词你没听过,这种问题可以通过看相关博客解决。比如前面的字节码,我当时就是看的几篇博客了解的。后来《深入理解Java虚拟机》也有深入解释字节码,再看这些内容时就会轻松很多。

​ 基础的学习终于走上了正轨,开始想着写写简历了,发现只有一个电商项目有点少,而且真的烂大街了。所以计划做个个人网站,亮点的话就是用Netty做个聊天室功能,然后部署上线,前后端加功能设计都是自己做的。有了电商项目的经验,项目的初始搭建非常快,主要问题都集中在前端,之前做.NET时,做过全栈,但是时间太久了,难免有点忘了。

技能总结

​ 上面大概说了下自己的学习经历,再总结一下应届Java开发工程师该掌握哪些技能。

  • 计算机基础【计网、数据结构与算法、操作系统、Linux】

  • Java语法基础【可以看书,这里推荐《Java核心技术卷1》,如果是纯小白,连搭环境都费劲,建议看视频】

  • Java进阶【JVM、并发实战、IO、集合容器+JUC+常用API源码】

  • 基本框架【Spring全家桶】

  • 数据库【MySQL、Redis】

  • 进阶【Netty、消息队列、SpringCloud等】

    上面的技术栈看起来虽然不是很多,但是想要进互联网大中厂,光用是不够的,都得达到了解原理的层面才比较稳妥。

秋招之路

​ 接着上一部分,时间来到了6月底。学习目标完成的差不多了,第二个项目也部署上线。看到牛客有几个企业已经开始秋招了,尝试投了几家简历。不出意外全都没有回应。自己早就有了心理准备了,学历不够,海投来凑。之后的日子就是刷牛客、投简历了。到了这一步,就可以开始看面经,查漏补缺了。我是非常不建议一上来就背题的,面经是查漏补缺的资料,通过其他同学分享的问题,可以快速找到自己的问题。看面经这段时间,能明显感受到自己的提升。之前都是整本整本的看书,自己哪里不行,完全看不出来。通过面经就可以快速定位自己的问题,然后去解决。

​ 7月初,收到了第一个面试电话,是阿里的。当时激动的不行,这放以前我可是想都不敢想的啊。面试前几个小时整个人紧张的不行。不过好在整个面试也算顺利,大部分问题都会回答。最后问了面试官评价,面试官说还可以,如果过了两天内会打电话,如果没过没有反馈...。然后就没了下文,过了几天,百度约了面试。我这...,开局就玩这么大的,真的遭不住啊。百度是视频面试,还写了几个题。整体表现我感觉比阿里还要好,但是最后问面试官评价时,面试官说不太行。当时打击还挺大的。

​ 秋招开局就面了两个大BOSS,还和群里的小伙伴开玩笑说,人家拿小厂练手,我拿阿里百度练手...。时间来到了8月,我觉得对于互联网来说,可以改成金8银9了。8月份是最忙的一个月,几乎每天都有笔试,多的时候一天4场笔试。面试预约也多了起来。过程就不再详细描述了,战绩就是投了100+简历,笔试30+,面试14家,到了最终HR面的9家(京东、58、奇安信、多益、美团、腾讯、ThoughtWorks、CVTE、三七互娱),中途挂了3家(阿里、百度、有赞),推了两家(滴滴一面和小米二面),截至国庆后收到意向书的有4家(腾讯、奇安信、58、三七互娱)。

​ 结果看上去很美好,现实很残酷。京东虽然不介意专升本,作为我第一个面完整个流程的大厂,刚开始内心还是抱有非常大的期望,现在看来估计是处于备胎海海底,不指望捞起来了。58,由于专升本问题,内部出现争议,HR叫我等,估计也没戏了。腾讯,由于简历没写专科教育经历,撤回了我的意向书。美团直接拒绝专升本,明确只收高考那种统招的,还挺可惜的,因为我觉得美团是面的最好的一家了。其他几家对于专升本倒是不介意,只要是全日制、有学位证就行,关于专升本的问题待会再说。关于撤回意向书这个事,也怪我,我的确没在简历上写专科教育经历。我也没蠢到故意去隐瞒这个事,但是我都是到HR的时候,跟HR说明的,希望我的表现能帮我扳回一点优势。至于我为什么不写,也是想给自己争取一点机会,对于腾讯这个事就像陷入了死锁,写了没机会,没写又会被驳回。又没什么大厂实习经验和出色的竞赛成绩,光凭简历,的确难以在众多优秀的竞争者中脱颖而出。不过如果官网简历明确要求写全的话,我还是会写的,比如网易,要求写高中以上的每一段教育经历(后来才发现腾讯的官网简历也标明了需要写上本科/大专以上的教育经历)。腾讯校招组最终和我反馈时,说我提前批面试评价非常好,正式批会有优势,叫我要自信,再去完善一下简历。然后....正式批没被捞,校招进一线大厂的梦想没戏了。

​ 刚被腾讯撤回意向书时,心情可以说非常低落了,不过也是很快就调整过来了。互联网校招竞争一年比一年大,双一流硕士那么多,自己除了过得去的技术的确没什么竞争力。校招进不了大厂,那就社招再来吧。道阻且长、行则将至。我最后选择了去三七互娱,大家的第一反应可能是广州四大坑,不过我了解了一些最近的评价,比前几年的确好了很多。搬进了新大厦,福利环境啥的也非常不错。至于说钱少事多,如果放在一两年前,这应届工资我可是想都不敢想,要知道放在我以前的条件,.NET+专科+ToB这种非酋组合,不知道要工作多少年才能达到这个水平。只是现在眼界高了,的确觉得有点少了,起码比失之交臂的腾讯少。事多的话,双休能保证就行了,平时加班,也不至于一天都在那敲工作,在公司学习,提升一下自己也是可以接受的。

​ 和三七签约后我的秋招就算结束了(更新:最后去了58,薪资很香),大四上半年开始弄一些学校的事情,打算大四下学期,也就是过完年,提前去实习几个月。这段时间内,最后复习一下和我岗位相关的技术栈,学习一些职场经验和必备技能,比如Git、Shell等,相关资料早就买好,但是由于面试问的少,一直没有开始学。

干货分享

学习途径

​ 学习的途径无非就是看书、博客、文字专栏、视频教程、Github。

  • 对于项目实战,可以看视频教程。推荐网站:慕课网。如果你是刚入门的小白,也可以看一些语言的入门视频,这样入门会更快一点。网上有很多网站的免费视频可以看,比如腾讯课堂、网易云课堂等,都有一百多级的Java基础入门视频可以免费看。

  • 对于进阶学习,可以看书。推荐网站:微信读书。里面正版书籍非常多,技术书籍的排版也还可以,可以白嫖N多无限卡。如果微信读书里面没有你想要的书籍,可以去下载PDF版的,也可以去网上买实体书。最开始时,我也的确买了很多实体书,考虑到以后出去工作,不方便携带,现在基本只看PDF版或者在微信读书上看。PDF版书籍可以去这里下载:PDF书籍下载。下面再分享一些微信读书上有的书籍,我自己也没看完,不过都是非常不错的书籍,以后可以慢慢看。大家可以根据自己的需求,选择性的看一些。

    • 《SpringCloud微服务:入门、实战与进阶》、《Netty进阶之路》、《Java并发编程之美》、《Linux就该这么学》、《SpringBoot技术内幕》、《深入浅出SpringBoot》、《MySQL技术内幕:InnoDB存储引擎》、《Java核心技术》、《Java高并发程序设计》、《Spring实战》、《Redis设计与实现》、《图解HTTP》。
  • 对于某个知识点的学习,比如我前面说到的字节码,可以看博客。这个时候就需要善用搜索引擎了,国内比较常见的博客论坛有博客园、CSDN、简书等。

  • 关于文字专栏,近两年国内互联网上非常流行的一种知识付费方式。比书籍的内容精简、比视频的价格便宜。常见网站有:极客时间掘金小册慕课专栏等。但是这些文字教程大部分都不是零基础入门的那种,可以说都是些经验之谈,可以省去很多你自己看书的时间。我差不多是从6月份开始,也就是基础学习的差不多了,才看这些文字专栏的。

  • 关于GitHub,这里只推荐我经常看的两个吧,JavaGuideJavaFamily。JavaGuide相当于Java程序员的百科全书,内容干货非常多。同样的,不建议零基础一上来就看这个。它可以当作你求职时查漏补缺,从头复习的工具。里面的知识点基本都是面试经常问到的。JavaFamily相当于某个知识点的精讲,虽然覆盖的范围也很广,但是知识点不是很多,不过里面的每个知识点也都是工作中或者面试中经常用到的。

    以上就是我平时的学习途径。最后总结一些总体路线:

    • 先给自己制定学习目标,这个目标可以根据你的技术方向去博客、知乎等地方找一些脑图,结合你应聘岗位的要求,列出一系列技术栈清单。
    • 然后去上面我推荐的学习网站找对应的学习资料,同样的列出这些学习资料。
    • 最后根据你自己的作息时间,做出详细的计划。这个计划最好用一些软件去记录下来,比如我用的滴答清单,也有很多人喜欢用番茄,这个随你的爱好,但是一定要记录。每天完成当天计划后,再写出第二天的计划。计划可以是弹性的,比如某天出现一些意料之外的事情导致计划耽搁了,可以往后挪一挪,切记不要自责。

面试经验

​ 一定要提早留意招聘信息,比如这次秋招,我看很多人9月份才开始投递简历,估计就是听说了金9银10。其实对于今年来说,9月份才开始投递简历,已经错过了最佳时间。招聘信息可以看牛客网:校招日历。里面基本每家公司都有内推,能内推就尽量内推,很多公司内推可以免去简历筛选,对于学校不好的同学来说,这一点非常重要。关于简历怎么写我就不说了,网上大把教程,可以去牛客网搜一搜。

​ 简历过关之后,一般就是笔试阶段了。少部分公司提前批或者内推可以免笔试,不过随着内推的普及,很少见什么公司内推可以免笔试的。关于笔试,一般是按通过的case百分比给分的,所以算法再难也一定要尝试写一写,能多拿一点分是一点。笔试中的算法,基本不会考察时间复杂度、空间复杂度。如果你和我一样算法能力有限,就暴力解法走起吧,DFS大法好。如果笔试中的算法特别简单,有选择填空题的话,一定要重视选择填空。你觉得简单,别人也简单。因为有些人很不重视选择填空,以为所有笔试都是算法题说了算,那么选择填空就是你拉开差距的好地方。

​ 过了笔试就会预约面试了。大部分公司都是2轮技术面+1轮HR面,有些大厂也会是3轮技术+1轮HR,甚至更多。其实秋招之初,百度阿里一轮游后我也反思了下,其实大部分问题都会。不通过的原因,其一就是提前批要求会更高,其二也许就是太紧张了。感觉整个过程就是一问一答,和面试官没有交流的过程。当然,面试别紧张谁都知道,关键在于怎么去克服。如果你有小团体的话,可以组织一些模拟面试。或者多面几家公司,后面基本就不会紧张了。关于面试准备,最好的方法就是去看面经,一个目标就是能查漏补缺,到了后期,面经里面只要是学过的技术栈90%+的问题都会回答就非常不错了。其二就是在看面经时,对于自己知道的问题,刚开始时可以对着屏幕,组织自己的语言去说出来。

​ 面试中的一些小技巧。面对面试官的问题,肯定只有三种情况:会、不会、以前会但是忘了。对于不会的,直接说不会就行。但是自己要分清这个问题是不是你技术栈范围内的。如果是,下去就得赶紧补上来。如果不是,也就是自己压根就没学过,也没写进简历,这种问题可以暂时放一放。对于会的问题,如果问题合适的话,一定要去引导面试官的问题,也可以时不时的展现出自己在哪学的,但是不要太频繁,不要回答每一个问题都说自己是在哪学的,没必要,反而显得太突兀。怎么样的问题适合引导?问题范围特别大的。比如:“说说你对Java多线程的了解”。有的人可能在那巴拉巴拉一大堆。但是我一般会这么回答:先说说我对Java多线程的理解,然后说说Java多线程的常见问题、常用API也就是几种创建方式。然后,我会说,一般使用Java多线程时可能会配合线程池来用,我之前看过《阿里巴巴Java开发手册》,里面建议我们在使用Java线程池的时候直接用ThreadPoolExecutor来创建线程池,那么我们就必须充分了解这个构造函数的一些参数。以上就是我对Java多线程的一些了解吧。等你说完这些,面试官大概率会接着问你线程池相关的问题。还能不经意间透露出你看过一些技术书籍。而且面试官问的问题分解了,更像一个交流的过程。

​ 最后,对于以前会但是忘了的问题,这个问题大概率是你简历上技术栈内的问题,如果直接回答不会,我觉得有点亏了。一般我会这么回答:我以前在《XXX》上了解过相关知识,但是太久没去碰了,所以有点忘了,我记得....。最后挤出你脑袋里关于这个知识点最后一点记忆,如果你实在啥也不记得,只是觉得这个专业名词有点耳熟,那还是说不会吧。

给低学历的同学一点点建议

​ 如果你是还没毕业的专科生,一定要参加统招专升本。每个省份的叫法可能不一样,有的叫普通专升本,有的叫3+2等等。不管叫法是啥,记住,只能由专科应届生报名(也就是只能参加一次,有的省份好像可以复读,参加第二次?),升本后,是全日制的本科,有学位证,毕业后第一学历也是本科。因为专升本的方式有很多种,但是这种含金量是最高的,大部分互联网公司还是承认的。当然劣势依然存在,这个时候可以用博客、开源项目、竞赛来弥补学历的劣势。

​ 如果你是普通本科,其实看到这,我想你已经充满信心了,我一个专升本的都行,你为啥不行?当初被腾讯取消录用,可算是体验到一把心拔凉拔凉是种什么滋味了,非常后悔当初中学没有好好读书,但凡是个正常的本科都不会发生这种事了。