Len's Study-Log

集中一点,登峰造极!

0%

来自自称京东老Java的大佬的初学java路线建议

  • 本文转自:https://tieba.baidu.com/p/7087223785

首先,你需要明确自己的求职目标,大厂还是小公司,每个人可以根据自己的实际情况去选择,不同的求职目标对应着不同的学习路线,小公司侧重业务能力,需要准备语言和框架的实践能力,一入职就可以很快的产出,他们并不需要太高的要求,只要能写代码就行,而大公司必须侧重准备基础,计算机基础,语言和框架基础,这里的基础可能偏向原理那方面,大公司看重的是应届生的可塑性,他们可以花很大的成本培养你,前提你的基础过硬,我个人认为,如果你满足以下条件的一两个,就可以试一试大公司:

  1. 学历特别有优势:211,985,研究生
  2. 有一两个实习经历
  3. 有长期坚持的高质量博客4. 拿过ACM等算法比赛类奖项5. 学习的比较早,大一开始积累有良好的计算机知识体系,对java语言和开发框架理解透彻,基本满足社招要求。

学习路径规划:java后端岗位主要考察以下几个知识点:

  1. 计算机专业基础课
  2. java语言基础
  3. 框架以及中间件(熟读源码,知晓原理)这是大公司的标准,小公司只需要第二点和第三点即可,并且第三点的标准不需要括号的补充,只需要了解框架怎么用即可;大家如果不提前确定自己的目标和规划自己的路线的话,很难在大三暑假的校招准备好,建议大家提前一年规划,秋招之前复习即可,下面我详细介绍下,这些知识点该如何学习,介绍的可能不是太具体,后续有问题的话可以私信我。

对于计算机专业基础课的准备,只针对求职大公司的同学,如果只想找个小公司的工作,这一章的内容可以无视,CS基础主要包括几个课程:操作系统,计算机网络,数据库,算法与数据结构这些课程计算机专业的基本都会教,但是考虑到很多跨专业求职的同学,在这里补充下这些课程该如何准备。操作系统和计算机网络推荐B站的王道考研的系列课程,操作系统主要学习进程,内存这两个章节,在学习完传统操作系统后,你再去学习JVM和Linux的话,会非常的,如丝般顺滑。计算机网络主要学习HTTP,TCP/IP,推荐《图解HTTP》,《图解TCP/IP》,这两本书写的非常友好,一点都不劝退,除此以外还要了解下Socket相关知识,BIO,NIO,多路复用这一块,以上是计算机网络重点考察的知识点。算法与数据结构是整个面试过程的重中之重,可以占到面试成绩的一半以上,这里推荐先看一门数据结构入门的书籍,《大话数据结构》,在学习完数据结构后去leetcode,刷个三五百道题目,应该会水到渠成。数据库的学习,首先要学习SQL语法,推荐《My SQL 必知必会》,书上的例子最好手写一下,因为面试的时候会考察手写SQL语句,学习完SQL语法后,需要学习数据库管理系统相关的知识,至少理解关系型数据库管理系统,失误,范式等内容,这些学习完应该差不多了,如果你还想在秋招面试中变得更秀的话可以在看一本《My SQL 技术内幕》,重点关注InnoDB存储引擎,索引,锁,事务,性能优化等内容,保证你秀的一笔

如果从来没有学过java,建议先阅读《JAVA核心技术》这本书中的前面几章,可以帮你了解基本的java语法,在学习完基础的语法后,就可以学习设计模式相关的内容,设计模式我推荐《Head First设计模式》,设计模式的学习是为了后面框架的学习和理解做铺垫,因为java 框架的源码中使用了大量的设计模式,只有学习了设计模式才能更好的理解这些框架的设计思想,单纯的看源码并没有太大的意义,必须结合设计模式去理解,学习完设计模式后可以学习一下Java的高阶特性,这里我推荐《Java编程思想》,高阶特性了解后,另外两个比较大,也比较重要的部分:并发和虚拟机,这里并发相关的书籍我推荐《JAVA并发编程实战》,虚拟机相关的书籍可以看《深入理解JVM》,国内最经典的JVM书籍,如果看完上面的书,我个人认为,在java语言基础这一方面,你可以达到大公司的要求了,一共五本书,学习的越深入越好,所以越早准备越好吧,

在学习完JAVA语法基础后,就应该学习框架了,现在主流的主要是Spring系列,以及中间件的重点缓存和消息队列;Spring框架的入门推荐《精通Spring 4.x》,如果学有余力的同学,再推荐看一看《Spring揭秘》这本书,会让你对于AOP和IOC有深刻的了解,缓存中间件主要是Redis,推荐《Redis实战》和《Redis设计与实现》这两本书,消息队列可以看看《RabbitMQ 实战指南》;这一部门的内容可能比较难,建议先学会使用,然后找一两个项目练练手,等熟练使用了后,再去学习里面的源码思想,设计模式,记住,大厂只问原理,小公司只要你会用,这部分学习的如何是决定你去大公司还是小公司的决定因素之一(还有算法);再多说一句,多写代码,多做项目,practise makes perfect

重点讲下项目该怎么准备,首先要明白一个误区,项目并不是越多越好,不是功能越多越好,校招面试考察项目的主要目的是了解你对业务的理解,侧面反映你产出的能力,还有就是你对项目中使用的技术的掌握程度;知道这两点,我们可以例举出项目这一块的着力点:1. 从业务角度分析项目的难点,面试经常会问你的项目有什么难点2. 多使用热门的技术:Spring,Redis,集群,消息队列3. 做高并发项目使用热门技术和高并发项目会增加面试官对于你项目的感兴趣程度,愿意花时间跟你讨论下去JAVA系列的指导就到这里,如果各位在学习的过程中遇到什么问题,可以私信给我,看到都会回复的,按照我这个路径学习完,如果你找不到20万得工作来找我,不,来砍我