从Java小白到收获BAT等offer,分享我这两年的经验和感悟

文章来源公众号:java编程 作者:陆小凤

(想自学习编程的小伙伴请搜索圈T社区,更多行业相关资讯更有行业相关免费视频教程等待你来学习。完全免费哦! )

写在最前

我写过许多篇秋招总结,这篇文章应该是终究一篇总结,当然也是最完好,最详细的一篇总结。秋招是我人生中一段宝贵的阅历,不仅是我研究生生计交出的一份答卷,也是未来职业生计的初步。仅以此文,献给自己,以及各位在求职路上的,或许是现已阅历过校招的朋友们。不忘初心,方得一向。
前语

鄙人本是跨专业渣考研的985渣硕一枚,阅历研究生两年的学习堆集,有幸于2019秋季招聘中拿到几个公司的研制岗offer,包含百度,阿里,腾讯,今天头条,网易,华为等。

(在秋招末期,有幸又拿到了滴滴和亚马逊的offer,那时现已11月份了,所以之前的文章里都没有提到过)

一路走来也遇到许多困难,也踩了许多坑,一起我自己也探究了许多的学习办法,总结了许多心得体会,而且,我对校园招聘也做了一些研究和相应的预备。在今年的秋季招聘完毕今后,我也决议把这些东西全部都写成文字,做成专题,以便共享给更多未来即将参与校招的同学。

大学时期的迷茫与坚定

我的本科专业是电子信息工程,根本没有触摸过核算机专业的课程,只学过c言语,然后在大三的时分触摸过java,Android,以及前端开发。这时分我只是一个刚刚入门的菜鸟,还不知道软件开发的水有多深,抱着试一试的情绪去应聘了许多公司。成果可想而知,连简历挑选都没有经过。

当年我对游戏开发很有兴趣,特别是对网易游戏情有独钟,可是当我看到网易游戏研制工程师的招聘要求时,我只能望而却步,因为它要求学历至少是985的硕士。

也因为这个要害,我在大三的暑假开端预备考研,花了一个月的时刻深思熟虑之后,挑选了华科作为我的方针院校。

所以,2016年的下半年,我成为了“两耳不闻窗外事,一心只读圣贤书”的考研党,回想起来那的确是玩命学习的半年时刻,每天稳定泡在图书馆8个小时以上,有时分学到宿舍都能学到晚上12点,那时分感觉自己彻底变了一个人似的,或许当一个人为了某个方针而尽力时,真的会变得纷歧样。终究我顺畅地考上了,令我意外的是,成果还挺不错。

研究生时期的方向挑选

关于即将读研的同学来说,一般有两件事很重要,一件事是挑选导师,一件事是挑选方向。

我在刚读研的时分最头疼的也是这两件作业。首要说明一下,我读的是专硕,所以实验室一般不搞科研,有部分导师会带项目,因为我不计划在实验室做项目(因为我更期望去大公司里训练几年),所以我其时本着想要找实习的想法挑选了导师,事实证明我的挑选仍是很正确的,我在研二有大段时刻去参与实习,让我在大厂里有足够的时刻去训练和学习。

而挑选方向这件事,我倒是折腾了良久。研一期间我做的最多的作业便是看书了,其时自己的方向还不明晰,所以找了许多书来看。当他人都在专研数据挖掘和机器学习时,我还在各种方向之间摇摆不定。

我在读研之前想做游戏开发和Android开发,但我曾经也学过Java Web开发。所以我在网上了解对应方向的资讯,发现游戏研制的作业面比较窄。

终究,我概括公司的岗位状况,个人兴趣,以及我之前的学习阅历等要素,选定了Java开发方向。

所以,我在校园的实训项目中挑选了Java Web项目,从此也真实含义上地踏上了Java的学习之路。

笨鸟先飞,熟能生巧

尽管我的入学成果是全学院的top3,可是,我发现,作为非科班出身的我,和许多科班同学比较,仍是有必定差距的。

大部分同学本科都上过核算机专业的相关课程,比方核算机网络,操作体系,数据结构等等,而我曾经连听都没听过,除此之外,他们一般都会几段比较完好的项目阅历,至少在Java Web方面现已算是比较了解了。而我在其时,只学了数据结构,别的触摸过一些Java根底,有一部分项目阅历,根本上便是入门水平。

所以我痛定思痛,决议好好补偿我的不足,平常一有空就去图书馆找些书来看,不论是操作体系,核算机网络,仍是数据库等本科课程,我都会找一些对应的书本来看,其时不太清楚其实有些课程其实不需求特别去补,以致于我连核算机组成原理,编译原理,软件测验等方面的书都特别找来看,现在想想也是挺逗比的。

因为咱们上的课比较水,所以上课时刻反而变成了我自学根底课程的大好时光了。所以我平常上课的时分都会带两三本书,一到两周内看完一本,尽管或许吸收的不是特别好,可是对其时的我来说仍是有很大协助的。

除此之外,有时分我还会偷偷去旁听有一些本科生的课程,这也是因为我在自学一些课程的时分遇到了困难,比方《操作体系》,《数据库原理》等等。所以我花时刻研究了一下本科生的课表,趁着自己没课的时分赶忙去旁听课程。有时分感觉自己在课堂中显得十分突兀,尴尬地想要逃跑,但总算是坚持地听完了一门数据库的课程。

此外,我还在各种视频网站上看网课,比亦或是看我国MOOC的核算机根底课程,里边的操作体系,数据库等课程也让我形象深化。

就这样,每天我都把自己的时刻填满,愣是在研一上学期看了好几本书,其时书的版别现在有的记不清了,首要是核算机网络,操作体系,核算机组成原理,别的还有软件工程,软件测验,规划方式,等书本。就这样,我靠着这段时刻的坚持把核算机根底课程补上来了一些。

含辛茹苦,终得实习

时刻来到研一下半页,这时分我刚刚完毕了校园的Java Web的项目实训课程,在做这个项目期间,我发现自己露出出了许多问题,技能实践才能不足,Java根底不扎实。这件作业也给我自己敲响了警钟,因为我计划在春招期间找一份大厂的实习,可是现在看来我的水平还远远不行。

压力之下,只要尽力一条出路。所以,从那时分起,我开端了“留守“实验室的学习日子。为什么要在实验室学习,一是因为学习气氛好,二是因为平常咱们也能够相互沟通问题。

每天早上9点到实验室打开电脑,晚上9点背电脑回寝室。大部分时刻我会花在看书上,这段时刻首要看的都是Java相关的书本,借鉴的是江南白衣大佬的“Java后端书架”,比方《深化了解JVM虚拟机》,《Java并发编程艺术》,《深化剖析Java Web技能内情》,《深化剖析Spring源码》等等。

别的一部分时刻我会用来看一些技能博客,我首要是依据面经上的常识点按图索骥,找到对应解说该常识点的文章,那时分首要仍是经过查找引擎来找文章,当然有时分看到一些要点难点也会自己写一些博客。不过这个时期并不是我大量写博客的阶段,首要仍是看一些解说面试常识点的技能博客为主。

除此之外在面试前几天我会花时刻去看这家公司的面经,搞懂每一个面经上的常识点,而且记载在我的笔记上,光是面经相关的笔记我就记了100多篇,这样的学习习气我一向坚持到了秋招,确保每个面试常识点都能被我记住,消化,直至彻底了解。

渐渐的,笔记越来越多,我参与面试的公司也越来越多,所以我开端不断完善自己的简历,总结自己的面试技巧,挑选适宜的网申时机。自始至终我大约花了3个月的时刻在找实习上,期间大大小小参与了20多次面试,我也从一开端面试一问三不知的菜鸟,逐步变成了面霸,到温习末期,我对Java常见面试常识点现已了然于胸,一起也越来越自傲,不论面什么大厂都不慌不忙。

这样的日子持续了好几个月,所谓世上无难事,只怕有心人。到终究,实验室里每个人都拿到了心仪的实习offer。

实习路上,我了解了许多

踏出校园大门,我的实习之路才刚刚开端。8个月左右的实习时刻,说长也长,说短也短。但阅历过这段实习之后,我才了解了许多作业。

在猪场实习的日子里,我第一次了解大公司的开发流程,亲身参与项目代码的开发,我的导师会和我提需求,会指导我怎样做得更好。在这儿的成长无疑是十分快速的,但我很快认识到我的问题所在,不了解部分技能栈,对许多Java Web的技能原理都不太了解,这段时刻我认识到了自己的常识深度和广度都或许都有待进步。

不过因为家里的一些作业。我提早离职了,所以在猪场呆的时刻很短,以致于我没来得及搞懂部分项目的技能架构就走了,这也让我在离开今后感觉很遗憾,所以我下定决心鄙人个实习单位要好好做。

离开猪场后我来到了熊厂。部分给我提的需求不算太难,大部分都是一些CURD的作业,可是这次很快就认识到了问题所在,便是我不太了解部分的全体技能栈,所以在需求借鉴他人代码时偶然会看不明白。后来部分又给了新的重构需求,此刻的我开端焦虑起来,是不是应该做出一些改动呢。

终于,我找到了新的方针,我要搞懂部分的项目架构,了解相关技能栈(咱们部分做的是私有云),一开端,我会讨教我的导师,尽量去了解项目的架构规划,除此之外,我还会运用一些时刻去看其他同事担任的代码,而且经过一些文档和PPT去了解这些代码的功用和含义。结合代码和文档,再加上和一起的沟通,我对部分项目的架构逐步了解起来,为了更好地了解每一块代码的效果,我还为一些模块的代码写了注释。

当然,光看代码和文档还不能解决一切问题,因为这个项目的要点难点不在Web运用,而是在底层技能,这个项目中包含了两套架构,分别是一套OpenStack集群和一套docker集群。为了学习这两块内容,我先是看了许多博客,然后在平台上跑虚拟机和容器来做实践,终究又看了这方面的一些书本,首要是《OpenStack规划与完结》,《docker技能入门实战》。

可是这还不行,虚拟化技能与Linux内核息息相关,又需求学习者对操作体系和核算网络十分了解,我自知这些内容我学得还不行深化,所以我花大量时刻看这方面的书,其时也遇到了几本的确不错的书,分别是《深化了解核算机体系》,《核算机网络:自顶向下办法》,还有一本没来得及看完的《Linux内核规划与完结》。尽管今后纷歧定会作云核算方向的开发,可是学完这些东西我仍是十分开心的。

到后来,我工位上的书越来越多,我对部分的技能栈也越来越了解,有时分我还会去听公司内各个团队组织的技能共享,有空的时分看看内网的技能课程,真实地完结了自己在技能广度上的拓宽。

有时分我觉得,实习日子是会哄人的,你佩戴着和正式员工相同的工牌,和他们做着相似的作业,会让你觉得你的水平现已和他们差不多了,但事实上是,在转正之前,你和他们还差得远,所以不要停下自己前进的脚步,抓紧时刻学习吧,掌握好你在公司里的时机,合理运用公司给你供给的资源。

秋招前的堆集与沉积

研究生期间我有一件作业一向在坚持,那便是做笔记和写博客。

做笔记,便是记载学习中大大小小的作业,或许是面试问题,或许是一周的学习计划,也或许常识一个常识点,总之都是值得记载的东西,对我来说,便是一种堆集。而关于博客,我从一开端只用于记载项目,到后来做转载,再到后来写原创,收拾系列文章,则更像是一种沉积。

可是在春招刚刚完毕的这段时刻,我发现一个问题,之前学过的东西忘掉了许多,特别是那些了解的不行深的常识点,总是特别简略忘掉。别的我发现,尽管我在笔记中记载了许多的常识点和面试题,可是往往我只看过一次,不会再去看第2次。

这也意味着,尽管记载的内容许多,可是真实消化吸收的内容很少,脑子里充斥着总是那些琐细的常识点和面试问题,关于完好的常识体系知之甚少。这些问题在春招期间也不断地露出出来,让我思考了好久。

面临如此窘境,我想做出改动,趁着现在时刻富余,我想要为这些内容做一次减法,而且借此时机,推翻自己原有的常识体系,重建新的常识结构。简略说来,便是重新开端学习Java后端,这次我要用一种更高效的办法,防止走之前走的弯路,要用最高效,最合理的办法去温习。因为我之前现已有根底,所以我对完结这一方针有决心,相应地我也为此做出了明晰且详细的学习计划。

我计划用几个要害词来描述这三个月的秋招温习。

“详细牢靠的学习计划”

在三个月的时刻里,我首要依照Java后端路线图组织好温习计划,每个常识点都会对应组织一段时刻,比方我或许花一天时刻温习“Java反射”,两天时刻温习“规划方式”,一周的时刻用于温习"JVM虚拟机”。我一般会在月初做好整个月的计划,然后依据进展做一些微调,可是根本上我都能够跟上进展,而且是在温习到位的前提下。

所以我觉得,关于秋招这一场苦战,指定计划尤为重要,一旦计划定下来,战略方针明晰,对应的战术拟定也会变得明晰,执行力也会随之变强。

“写博客整合常识点”

至于温习办法,我首要经过看高质量博客,而且结合代码实践的办法稳固这部分常识点,比方今天学习“concurrenthashmap”,我会去找两三篇比较好的博客先看看,首要是源码解读方面的,然后我会把它们进行整合,假如有遗失的常识点我会再进行弥补,有时分我还会自己去看看JDK源码,以便更好地了解博客内容,完结常识整合之后,我就会对应地收拾出一篇博客出来,发在我的个人博客上。

除此之外,当我完结了一整个专题的温习之后,我会把这些文章收拾成一个专题,比方上面说的“concurrenthashmap”,实际上属于Java并发包,所以我会专门做一个博客专栏,用来完结Java并发系列的文章专题。关于每一个文章专题,我都会先理清这个专题总共有哪些内容,然后再开端收拾。比方关于Java并发包,我会先写Java多线程根底的文章,再写JMM内存模型的文章,接着一步步着手写Java线程池,堵塞行列,东西类,原子类等等。这样一来这部分内容就温习完毕了,写系列文章的优点就在于,我能够自始至终理清脉络,而且关于每一部分的常识点都做了比较好的总结。

关于博客的挑选,我吸取了之前的教训,宁愿花半小时看一篇高质量文章,也不花10分钟看5篇烂文章。深度阅览的优点,便是能够让这部分内容更好地融入你脑内的常识体系,而不是像其他快餐文章相同转瞬即逝。

“做项目稳固实践才能”

因为之前在实习期间参与的项目都比较大,我触摸的模块也比较单一,没有对全体项目有一个很好的掌握,所以我决议趁这段时刻再稳固一下我的项目实践才能,这儿的才能首要是指的是对项目架构的掌握才能,以及对业务开发的熟练度,当然也包含对各种常用后端技能的了解程度。

我花了大约一个月的时刻完结了两个项目的开发,当然首要也是仿照两个开源项目做了,这两个项目都运用SpringBoot快速开发,而且用到一些常用的后端技能比方redis,云存储,以及一些常见Web结构,除此之外还触及到了solr,爬虫等技能。尽管项目不算很难,可是我在这段时刻里很快地了解了完好项目开发的流程,而且每天做迭代,经过Git来跟进版别,每个版别都会写清所做的内容,这也让我对项目的架构十分了解。

在项目之余,我也找一些常用的后端组件来跑一跑demo,以便让我对这些技能有一个直观的了解,比方面试常问的dubbo,zookeeper,音讯行列等组件。这些尝试也让我在了解它们的原理时愈加称心如意了。

“坚持刷题,重视办法”

算法题是秋招书面考试面试中的重头戏,每个研制同学都免不了阅历算法题的糟蹋,对我这么一个非科班同学来说,更是让人头大。正因为如此,我抛弃了刷大量LeetCode标题的办法,挑选了愈加卓有成效的刷题办法。

首要我重新刷了一遍剑指offer,而且对每道标题进行总结,尽量保证每一道题都能够记在脑子里,众所周知剑指offer中的题是面试时十分喜爱考的,所以先搞定这部分标题是最为要害的。

搞定剑指offer之后,当然还要刷LeetCode了,LeetCode标题这么多,怎样挑选呢,我没有依照tag刷,也没有依照次序刷,而是参阅其时一个大佬的LeetCode刷题攻略来进行刷题的,他把每个类型的标题都做了概括,每部分只放一些比较经典的标题。所以我前后大约刷了100多道LeetCode的标题,而且在第二遍刷题温习的时分,我也对这些标题做了一份总结。

除了上面两个经典题库,我还侧重刷了大厂的历年真题,这部分我首要是经过牛客网的历年真题题库来完结刷题的。说实话,真题是十分重要的,因为公司出的标题不像平常的那些算法题,或许会出得十分奇葩,所以你假如不提早习惯的话会比较吃亏。完结这部分标题之后,我对算法题的温习也根本告一段落了。

当我完结一切内容的温习时,提早批现已开端了。终于要上战场了,因为战前预备比较充沛,所以我对秋招仍是比较乐观的,但事实上,秋招不仅是攻坚战,而且是耐久战,要笑到终究,的确也不是那么简略的作业。

重建常识体系,对学过的东西做减法

前面提到我在秋招前完结了常识体系重建,那在这儿我也想跟咱们共享一下我其时大致的常识体系构成。就跟我前面说的相同,我挑选重新再学一遍Java后端相关的技能内容,因为我知道大致的学习方向,而且有必定的根底,所以看许多文章变得愈加称心如意,写文章和做总结也愈加有底气了。

首要在Java根底方面,我写了20多篇原创博客,首要是对Java核心技能的解析,比方“Java反射”,“Java序列化和反序列化”,“Java反常体系”等等。

在Java调集类方面,我原创了部分文章,别的整合了一些比较好的技能文章,其间最首要的便是关于hashmap的文章,其时我整合的文章几乎没有遗失任何一个常识点。

在Java并发编程方面,我首要参阅了并发编程网以及一些优质博客的文章,先搞懂了Java并发原理,再一步步学习JUC并发包的组件,其间要点看了chm,并发东西类以及堵塞行列等JDK源码的解析文章,除此之外,我还会在IDE中跑JUC相关的emo,究竟这方面的内容十分需求实践。

在Java网络编程方面,我先从最根底的socket下手,再讲到NIO,AIO,而且加入了几篇对Linux IO模型解析的文章,让整个常识体系愈加完好(因为NIO是基于Linux Epoll完结的),接着我又加入了对Netty的讨论,以及Tomcat中对NIO的运用,能够说是把Java网络编程一些比较重要的部分都包含进来了。为了更好了解这部分内容,我也在网上参阅了许多客户端和服务端通讯的demo,终究我分别用Socket,NIO,AIO以及Netty把C/S 通讯的demo都写了一遍。

在JVM虚拟机方面,我则依照《深化了解JVM虚拟机》这本书的行文脉络进行文章的收拾。在搞定JVM根本原理今后,我侧重了解了JVM调优和实践中常遇到的问题,而且收拾了常用的JVM调优东西,场景问题以及调优实践的案例,这也是因为面试中对JVM调优实践越来越重视了。

在JavaWeb方面,我从Java Web相关技能的发展下手,一步步了解了每种技能存在的含义,比方JSP,Servlet,JDBC,Spring等等,然后对每种技能进行了比较全面的了解,而且侧重地看了Spring和SpringMVC的源码剖析文章,别的一方面,我花了许多时刻去研究Tomcat的作业原理。除此之外,JavaWeb项目中常用的maven,日志组件,甚至是单测验组件,也纳入了我的系列文章里。

在数据库和缓存方面,我首要学习了MySQL和Redis这两种最常用的数据库。关于Mysql,我从简略的sql开端了解,然后开端了解sql优化,MySQL的存储引擎和索引,业务及锁,还有更复杂的主从复制,分库分表等内容。关于Redis,我也是从简略的api下手,然后去了解每一种数据结构的底层完结原理,接着尝试去学习Redis的耐久化办法,以及作为缓存常需求考虑的技能点,当然,也包含Redis的分布式锁完结,以及它的分布式集群计划。

终究一部分便是分布式相关的理论和技能了,这个也是困扰我好久的一块内容,我首要把这块内容分为两个部分,分别是分布式理论和分布式技能,理论方面,我先了解CAP,BASE等根本常识,然后开端学习一致性协议和算法,接着讨论分布式业务。关于分布式技能,触及的东西就更多了,例如分布式session,负载均衡,分布式锁等内容,这些常识点我都会用一到两篇文章去总结,关于分布式缓存,音讯行列,以及分布式服务等内容,我会花比较多的时刻去全面学习,然后总结出一个系列的文章出来。当然,关于这些技能的学习首要仍是停留在理论方面,在自己的项目中能用到的比较少。

至此,我的常识体系根本构建完结,这也是我在秋招中能够成功闯过那么多面试的原因。

秋招之路,砥砺前行

不论前期做了多少预备,到秋招的时分也不能漫不经心,从七月底第一次面试到9月根本佛系,中心阅历了大大小小的面试。

在完结常识体系重建今后,我把要点转向了别的几件事,一是完善和了解我的简历,以便在面试中能够比较好地发挥,二是持续刷题,保持对算法题和书面考试真题的手感和熟练度,三则是看面经查缺补漏,我一向认为看面经是很重要的一项温习内容。

就这样,我一边持续温习,以便开端了一场接一场的面试接力。

起先,我面了几家小公司练手,接着阿里的提早批接踵而至,我战战兢兢地参与了阿里中心件部分的面试,面难难度还算适中,总共四轮面试,其时我的表现也还不错,问题根本都答上来了。面完不到一周今后我就收到了经过的音讯,其时还有点懵。没想到第一个offer这么快就来了。

这段时刻内,蚂蚁金服的两个部分也给了我面试时机,我都参与了它们的面试,而且顺畅地拿到了其间一个部分的offer。因为我对蚂蚁这边的业务比较感兴趣,终究挑选了蚂蚁金服的offer。

阿里提早批的成功的确是意外之喜,但也大大地鼓动了我,所以我又参与了百度和腾讯的提早批面试,因为百度的提早批不走流程,总共有四个部分面试了我,每个部分都有2到3轮面试,总计约为12次面试,到后来我现已快晕了,看到百度的电话就惧怕,因为面试次数太多,有时分发挥的确也不是很好,我也没有特别在意,只当是在训练自己了。

百度的面试难度每个部分纷歧样,可是每次面试必写算法题,一写算法题,时刻至少便是一个小时以上,每次面试完都有一种身体被掏空的感觉。

阅历了百度面试的糟蹋今后,我手写算法的速度也变快了,许多坑也被我填上了。接下来面临腾讯的面试,我也是既激动又担心,腾讯的面试难度比较大,关于操作体系和网络的常识喜爱深挖,问的东西也很有深度,面完前三面今后,第四面拖了3周才进行。其时三面面试官对我的评价比较好,也让我决心爆棚了良久。

在等待腾讯终面的期间,我参与了今天头条的面试,其时有幸拿到了一个白金码,免除书面考试,事实证了解金码效果真的很大。头条的面试难度和腾讯差不多,三轮面试,相同需求写各种算法,由所以视频面试,我能够清楚地看到,头条的面试官真的十分高冷啊。面完头条我的第一感觉便是应该挂了吧。没想到终究仍是给了offer。

完毕这几家大厂的面试之后,我觉得我的秋招现已挨近尾声了,不过因为之前投的比较多,所以我又面了几家大公司,如网易,华为,快手等。到9月上旬的时分,我连续收到了bat和头条,网易的意向书,阿里最早,腾讯最晚,每收到一封意向书我都很开心,没想到终究我真的能够集齐bat等大厂的offer。

9月今后,除了偶然和同学做几场大厂的书面考试,我根本就佛系了。直到后来一些外企例如亚马逊,大摩开端书面考试面试,我才又重新回到了状态。

截止现在,我根本上把该拒绝的offer都拒绝了,概括各方面要素的考虑,终究应该会签阿里,原因是部分是我自己喜爱的,一起给的评级也比较高。尽管腾讯也给了sp,可是终究仍是忍痛割爱啦。至于百度和头条,给的offer并不是很令人满意,所以就没有考虑了。

至此,我的秋招之旅总算圆满完毕。

书面考试阅历

提早批的书面考试其实不是许多,我参与了网易,网易游戏,拼多多等公司的书面考试,应该都是低分飘过。

我的算法根底比较一般,读研之前0根底,所以这方面学的比较艰辛,共享一些我的书面考试预备阅历。

1 打好数据结构和算法根底
2 先易后难,看一些根底的算法书本,比方《图结算法》,《啊哈算法》等等。
3 剑指offer刷起来,两到三遍,做到胸有成竹
4 LeetCode刷个200题左右,记得二刷,做好总结。
5 到牛客网做公司的历年真题,了解题型,保持手感。

面试阅历

面试首要考的仍是你的根底常识,需求你对Java后端技能栈有一个大局上的掌握,详细说起来就太多了,详细温习计划能够参阅文章后面的内容。

我个人也总结了一些面试方面的阅历,首要是一些技巧。

1 做好毛遂自荐和项目总结,掌握你发言的主动权
2 搞清楚简历上的技能点,兵来将挡水来土掩
3 注意分点答题,思路明晰,也更简略讲清楚原理。
4 压力面下保持镇定,不要回怼面试官
5 HR面试注意常用技巧,能够提早预备。

Java后端技能专栏
关于校园招聘来说,最重要的仍是根底常识。

这些专栏中有一些文章是我自己原创的,也有一些文章是转载自技能大牛的,根本都是是我在学习Java后端的两年时刻内陆续完结的。
总的来说算是比较全面了,做后端方向的同学能够参阅一下。

深化浅出Java核心技能

本专栏首要介绍Java根底,而且会结合完结原理以及详细实例来解说。一起还介绍了Java调集类,规划方式以及Java8的相关常识。

深化了解JVM虚拟机

带你走进JVM的国际,整合高质量文章以阐述虚拟机的原理及相关技能,让开发者更好地了解Java的底层运行原理以及相应的调优办法。

Java并发攻略

本专栏首要介绍Java并发编程相关的根本原理以及进阶常识。首要包含Java多线程根底,Java并发编程根本原理以及JUC并发包的运用和源码解析。

Java网络编程与NIO

Java网络编程一向是很重要的一部分内容,其间触及了socket的运用,以及Java网络编程的IO模型,比方BIO,NIO,AIO,当然也包含Linux的网络编程模型。

了解这部分常识关于了解网络编程有许多协助。别的还弥补了两个触及NIO的重要技能:Tomcat和Netty。

JavaWeb技能国际

从这儿开端打开去往JavaWeb国际的大门。什么是J2EE,什么是JavaWeb,以及这个生态中常用的一些技能:Maven,Spring,Tomcat,Junit,log4j等等。

咱们不仅要了解怎样运用它们,更要去了解它们为什么出现,其间一些技能的完结原理是什么。

Spring与SpringMVC源码解析

本专栏首要解说Spring和SpringMVC的完结原理。

Spring是最流行的Java结构之一。

本专栏文章首要包含IOC的完结原理剖析,AOP的完结原理剖析,业务的完结源码剖析等,当然也有SpringMVC的源码解析文章。

重新学习MySQL与Redis

本专栏介绍MySQL的根本常识,比方根本架构,存储引擎,索引原理,主从复制,业务等内容。当然也会解说一些和sql句子优化有关的常识。

一起本专栏里也介绍了Redis的根本完结原理,包含数据结构,主从复制,集群计划,分布式锁等完结。

分布式体系理论与实践

本专栏介绍分布式的根本理论和相关技能,比方CAP和BASE理论,一致性算法,以及ZooKeeper这类的分布式协调服务。

在分布式实践方面,咱们会讲到负载均衡,缓存,分布式业务,分布式锁,以及Dubbo这样的微服务,也包含音讯行列,数据库中心件等等。

后端开技能杂谈

本专栏涵盖了大后端的许多技能文章,当你在Java后端方面有必定根底今后,再多了解一些相关技能总是有优点的。

除了Java后端的文章以外,还会触及Hadoop生态,云核算技能,查找引擎,甚至包含一些数据挖掘和AI的文章。
总的来说选取了一些不错的根底类文章,能让你对大后端有一个更直观的认识。

Java工程师必备书单

我之前专门写了一篇文章介绍了Java工程师的书单,能够这儿要点罗列一些好书,引荐给咱们。

完好内容能够参阅这篇文章:

《核算机网络:自顶向下》这本从运用层讲到物理层,感觉这种办法学起来更轻松。

《图解算法》《啊哈算法》
这两部书本十分合适学习算法的入门,前者首要用图解的方式覆盖了大部分常用算法,包含dp,贪心等等,能够作为入门书,后者则把许多常用算法都进行了完结,包含查找,图,树等一些比较高档的常用算法。

《剑指offer》这本书仍是要强烈引荐的,究竟是面试题常常参阅的书本,当然最好有前面根本的衬托再看,或许收成更大,这本书在面试之前一般都要嚼烂。假如想看Java版别的代码,能够到我的Github库房中检查。

《Java编程思维》这本书也是被誉为Java神书的存在了,可是对新手不友好,合适有些根底再看,当然要挑选性地看。我其时大约只看了1/3

《Java核心技能卷一》
这本书仍是比较合适入门的,当然,这种厚皮书要看完仍是很有难度的,不过比起上面那本要简略一些

《深化了解JVM虚拟机》
这本书是Java开发者有必要看的书,许多jvm的文章都是提取这本书的内容。JVM是Java虚拟机,赋予了Java程序生命,所以好好看看把,我自己就现已看了三遍了。

《Java并发编程艺术》
这本书是国内作者写的Java并发书本,比上面那一本更简略易懂,合适作为并发编程的入门书本,当然,学习并发原理之前,仍是先把Java的多线程搞懂吧。

《深化JavaWeb技能内情》
这本书是Java Web的集大成之作,涵盖了大部分Java Web开发的常识点,不过一本书显然无法把一切细节都讲完,可是作为Java Web的入门或许进阶书本来看的话仍是很不错的。

《Redis规划与完结》
该书全面而完好地解说了 Redis 的内部运行机制,对 Redis 的大多数单机功用以及一切多机功用的完结原理进行了介绍。这本书把Redis的根本原理讲的一览无余,包含数据结构,耐久化,集群等内容,有空应该看看。

《大型网站技能架构》
这本淘宝系技能攻略仍是十分值得推崇的,能够说是把大型网站的现代架构进行了一次简略的总结,内容涵盖了各方面,首要讲的是概念,很合适没触摸过架构的同学入门。看完今后你会觉得后端技能本来这么博大精深。

《分布式服务结构原理与实践》
上面那本书讲的是分布式架构的实践,而这本书更专心于分布式服务的原了解说和对应实践,很好地叙述了分布式服务的根本概念,相关技能,以及解决计划等,关于想要学习分布式服务结构的同学来说是本好书。

《从Paxos到Zookeeper分布式一致性原理与实践》
说起分布式体系,咱们需求了解它的原理,相关理论及技能,这本书也是从这个视点出发,解说了分布式体系的一些常用概念,而且带出了分布式一哥zookeeper,能够说是想学分布式技能的同学必看的书本。

《大数据技能原理与运用》
作为大数据方面的一本教材,厦大教授写的这本书仍是十分赞的,从最根底的原理方面解说了Hadoop的生态体系,而且把每个组件的原理都讲得比较清楚,别的也加入了spark,storm等内容,能够说是大数据入门十分好的一本书了。

技能大牛引荐

1 江南白衣

这位大大绝对是我的Java启蒙导师,他引荐的Java后端书架让我收获颇丰。

2 码农翻身

刘欣,一位作业15年的IBM架构师,用最浅显易懂的文章解说技能的那些事,力荐,他的文章帮我解决了许多困惑。

3 CoolShell

陈皓教师的博客信任咱们都看过,干货许多,酷壳应该算是国内最有影响力的个人博客了。

4 廖雪峰

学习Git和Python,看它的博客就够了。

5 HollisChuang

阿里一位研制大佬的博客,首要共享Java技能文章,内容还不错。

6 梁桂钊

阿里另一位研制大佬,博客里的后端技能文章十分丰富。

7 chenssy

这位大佬共享的Java技能文章也许多,而且有许多根底方面的文章,新手能够多看看。

8 Java Doop

一位魔都Java开发者的技能博客,里边有一些不错的解说源码的文章,数量不是许多,可是质量都挺不错的。

学习资源共享

学习Java后端两年的时刻里,触摸过许多的材料,网站和课程,也走了不少弯路,所以这儿也总结一些比较好的资源引荐给咱们。

0 CSDN和博客园,干流的技能沟通平台,尽管广告越打越多了,可是仍是有许多不错的博文的。

1 importnew 专心Java学习资源共享,合适Java初学者。

2 并发编程网,首要共享Java相关进阶内容,合适Java进步。

3 推酷 一个不错的技能共享社区。

4 segmentfault,有点像国内的Stack Overflow,合适沟通代码问题的当地。

5 掘金,一个很有极客范的技能社区,强推,有许多技能大牛共享优质文章。

6 开发者头条,一个整合优质技能博客的社区,里边根本上都是精选的高质量博文,合适技能学习提升。

7 v2ex,一个极客社区,除了沟通技能以外还会有许多和程序员日子相关的话题共享。

8 知乎
这个就不用多说了。

9 简书
简书上有些技能文章也很不错,有空咱们也能够去看看。

10 Github
有一些GitHub的项目仍是十分不错的,其间也有库房会共享技能文章。
跋文

秋招完毕今后,我就把首要精力花在做这个大众号上了。当然,剩余要处理的作业还有许多,毕业论文,毕业旅行,还有作业前的常识储藏等等。果然,人的一生需求不断的修行,刚刚闯过了一关又马上要迎候下一轮应战,你不能停下脚步,究竟咱们都在往前走。

期望还在求职路上的各位少侠好好加油,在未来也能够顺畅地拿到自己想要的offer!

你可能感兴趣的:(圈T社区)