java练级攻略

文章目录

    • 0. 概述
    • 1. 初阶
      • 1.1 Java核心知识
      • 1.2 数据结构与算法
      • 1.3 TCP/IP协议
      • 1.4 操作系统(OS)
      • 1.5 数据库MySQL
      • 1.6 数据库Redis
      • 1.7 Git & Github
    • 2. 进阶
      • 2.2 JVM
      • 2.3 Java并发与多线程
      • 2.4 数据结构与算法进阶
      • 2.5 TCP/IP协议进阶
      • 2.6 操作系统(OS)进阶
      • 2.7 数据库MySQL进阶
      • 2.8 数据库Redis进阶
    • 3. 综合
      • 3.1 面向对象与设计模式
      • 3.2 项目(应用)
      • 3.3 项目进阶(底层研究)

0. 概述

在**《2019秋招经验谈》**这篇文章中,我通过我的练级之路篇介绍了我是如何转行的,开启Java后端开发工程师之路的,通过认知思维篇讲述了在开启练级之路之前你需要具备的心态以及思维,通过专业技术篇介绍了Java后端开发工程师需要掌握的核心知识,通过面试技巧篇介绍了作为一个技术人如何在别人面前展示自己的能力,通过面试篇介绍了多家公司的面经,学习资料篇则介绍了一些非常经典的学习资料,但是只是资料的罗列,并没有指明应该如何系统地开始学习,本文将系统的介绍Java开发工程师的练级攻略。

在正式开始介绍Java练级攻略之前,我需要强调以下几个问题:

  • 时刻保持自信。即使遇到困难,也是暂时的,不要因此泄气,跳过它,继续学习,待你学完后面的知识,你便会豁然开朗。
  • 始终保持思考。一定要学习思考,思考为什么要这样,而不是那样。当你具备一定知识的时候,还要举一反三的思考,将知识融汇贯通,变成能力,最终构建出自己的知识和能力体系。
  • 一定要动手。无论示例多简单,都一定要自己手过一遍,好记性不如烂笔头,大量的思考笔记,大量的编程实践是永远少不了的。你可以读的少,但是不能码的少。
  • 不要犹豫。既然选择了一条路,你就坚持走下去,不要想这条路对不对,你只有走了才知道对不对,不要犹豫,开始了,就有收获,走下去,就有结果。
  • 迭代学习。不要想着一口吃成个胖子,要讲究迭代学习,即首先了解知识结构,然后再逐层深入,一层层深度逐渐解决问题,这样的迭代学习,不仅会让你的效率提高,而且会让你对知识有不同层面的理解。

接下来,正式开始Java练级攻略。

1. 初阶

初阶的学习,主要是全面了解各个科目的整体的知识结构,在脑海中对每个科目的知识结构能有个全面的印象,主要解决的是怎么做的问题

1.1 Java核心知识

作为Java后端开发工程师,Java是我们的武器,因此精通Java是必须的。首先我们需要整体掌握Java的知识结构,在此推荐以下2本书(任选其一即可):

  • 书籍:《Head First Java》:具有大量插图,非常适合入门
  • 书籍:《Java核心技术(卷一):基础知识 》 :sun公司官方出版,与《Java编程思想》齐名的Java图书泰斗

1.2 数据结构与算法

数据结构与算法是一个工程师的内功,当我们掌握了Java的核心知识之后,开始数据结构与算法的学习,是一个不错的选择,一来掌握数据结构与算法,二来也强化Java核心知识的理解,为Java的进阶打下坚实的基础。

关于数据结构与算法,在这里推荐以下资料:

  • 书籍:《算法·第四版》
  • 视频:CS61B
  • 刷题:算法练级计划

1.3 TCP/IP协议

TCP/IP协议族对于Java后端工程师来讲,是必不可少的,因此,在学习数据结构与算法的同时,可以开启计算机网络的学习,在这里推荐以下2本书(任选其一即可):

  • 书籍:《TCP/IP详解·卷1》
  • 书籍:《计算机网络:自顶向下方法(原书第6版)》

1.4 操作系统(OS)

操作系统的学习对于我们认知计算机系统是非常有必要的,在这里推荐以下的材料:

  • 书籍:Operating Systems: Three Easy Pieces》(非常非常好的书,强烈推荐)
  • 视频:操作系统(清华大学)
  • 视频:Linux学习视频

1.5 数据库MySQL

对于Java后端工程师来说,数据库必不可少,以下推荐:

  • 视频:与MySQL的零距离接触
  • 书籍:《MySQL必知必会》

1.6 数据库Redis

Redis广泛的应用于缓存和分布式系统中,因此对于Redis的学习非常重要,推荐以下材料:

  • 书籍:《Redis实战》
  • 官网:https://redis.io/(一定要把官网上的命令好好过一遍,把官网的文章好好读一下,非常好)

1.7 Git & Github

非常流行的版本控制系统,推荐以下资料:

  • 视频:GitHub&Git入门基础(牛客网)
  • 视频:廖雪峰Git教程
  • 动画:Learn Git Branching

2. 进阶

进阶学习的目的主要是从应用知识转向思考其底层,深入的研究各个科目的底层逻辑,主要解决的是为什么的问题?
2.1 Java核心知识进阶

掌握核心知识基础之后,需要掌握一些Java的高级用法,推荐以下材料:

  • 书籍:《Java编程思想》
  • 书籍:《Effective Java》

同时,在这里还需要阅读Core Java的底层源码。见《2019秋招经验谈》专业技术篇。

2.2 JVM

掌握Java核心知识之后,我们便需要掌握JVM,推荐以下材料:

  • 书籍:《深入理解Java虚拟机》
  • 视频:Java生产环境下性能监控与调优详解(选做)

2.3 Java并发与多线程

并发与多线程是Java一项很核心的能力,推荐以下资料 (2选1,建议选择后者) :

  • 书籍:《Java并发编程的艺术》
  • 书籍:《Java并发编程实战》

2.4 数据结构与算法进阶

数据结构与算法的进阶很简单,就是大量的刷题,推荐以下材料:

  • 书籍:《剑指offer》
  • 书籍:《程序员代码面试指南》左神
  • 视频:不想看书的,可以直接看左神的视频(我就不用多说了,懂的自然懂)
    • 视频:初级
    • 视频:中高级
  • 刷题:剑指offer
  • 刷题:leetcode
  • 刷题:算法练级计划(通过面试题刷算法)
  • 海量数据处理:
  • 博客: July博客
  • 书籍:编程珠玑》
  • 动态规划:经典动态规划问题

2.5 TCP/IP协议进阶

推荐以下材料:

  • 书籍:《图解TCP/IP》(若看完了初阶的书,这本书可以作为复习,或者选择不看)
  • 书籍:《图解HTTP》(若看完了初阶的书,这本书可以作为复习,或者选择不看)
  • TCP协议:
    • 上篇
    • 下篇

2.6 操作系统(OS)进阶

推荐以下材料:

  • 书籍:《深入理解计算机系统》
  • 书籍:《鸟哥的linux私房菜》

2.7 数据库MySQL进阶

推荐以下材料:

  • 书籍:《MySQL技术内幕 Innodb存储引擎》
  • 书籍: 《高性能MySQL》

2.8 数据库Redis进阶

推荐以下材料:

  • 书籍:《Redis设计与实现》

3. 综合

综合部分主要是介绍如何将前面学过的知识应用起来,即解决的是融会贯通,形成体系的问题。

3.1 面向对象与设计模式

推荐资料如下:

  • 视频:设计模式(马士兵)
  • 书籍:《Head First 设计模式》

3.2 项目(应用)

项目:叶神的高级项目课

  • 目标: 熟悉Java后端开发流程,搞定Java后端项目
  • 涉及技术栈:Spring Boot、MySQL、Redis、Nginx、Python、异步框架、全文搜索技术、排名算法、敏感词过滤算法、项目部署、项目设计、设计模式等
  • 面试相关项目问题:见帖子**《2019秋招经验谈》** 2.5节:招商银行信用卡中心(信息技术部)面试的问题,对这个项目问的非常详细,给大家一个参考。

至此,关于项目,从项目本身到项目在面试中可能遇到的问题,便都准备完毕了。

参考资料:

  • Spring官网:https://spring.io/
  • MyBatis官网:http://www.mybatis.org/mybatis-3/

3.3 项目进阶(底层研究)

推荐以下材料:

  • 书籍:《深入分析JavaWeb技术内幕》
  • 书籍:《大型网站技术架构·核心原理与案例分析》
  • 书籍:《Spring技术内幕》 (这本写的太好了)

最后分布式系统相关资料:

  • System Design Primer
    • CAP理论
    • 一致性模型
    • 可用性模式
    • DNS
    • CDN
    • 负载均衡
    • 反向代理
    • 应用层的微服务和服务发现
    • 关系型数据库和NoSQL
    • 缓存
    • 异步通讯
    • 安全等

你可能感兴趣的:(Java)