怒肝!2022年最全JAVA学习路线一条龙

前言 想像自己还是一名刚接触计算机的的小白,如何去学习呢,当然是从互联网开始啦,如何让我们的学习路线不偏航呢,下面就给大家梳理一条“捷径”,让你快速走上人生巅峰,迎娶白富美。
由浅入深的你会了解到

互联网相关的协议
基本的前端知识
操作系统相关的知识
学习一门语言
版本控制工具
数据库相关
API相关
缓存相关
网络安全知识
测试相关知识
持续集成、持续交付
设计和开发原则
架构模式
搜索引擎
消息队列
WEB服务器
【怒肝!2022年最全JAVA学习路线一条龙】容器化技术
可扩展性
互联网
互联网是一个全球性的计算机网络,它们相互连接,通过一组标准化的协议进行通信。
HTTP协议
  • 什么是HTTP协议
  • HTTP协议是如何运作的
  • 如何自己实现一个网络协议?要注意哪些点?
DNS协议
  • DNS协议是如何运行的
  • 什么是域名?
  • 域名是如何运作的
基本的前端知识
  • 学习HTML
HTML是网络的通用语言,一种简单、通用的全置标记语言。

  • 学习CSS
CSS全称为Cascading Style Sheets,中文翻译为“层叠样式表”,简称CSS样式表,是一种用来表现HTML或XML等文件式样的计算机语言,是一种标准的样式表语言,用于描述网页的表示,即布局和格式。

  • 学习JavaScript
一种具有函数优先的轻量级,解释型或即时编译型的编程语言

操作系统和基本常识
  • 终端的使用
  • 操作系统是如何工作的
  • 进程管理
  • 线程与并发
  • 基本的终端命令
grep, awk, sed, lsof, curl, wget,tail, head, less, find, ssh, kill

  • 内存管理
  • 进程间的通讯
    管道、信号、消息队列、共享内存、信号量、套接字

  • I/O
  • POSIX基础知识
stdin 输入 stdout 输出 stderr 异常 pipes 管道

  • 网络基本概念
当你了解了以上的概念之后呢,你就可以开始着手学习一门计算机语言了,学习的同时你要着重关注它的细节、核心概念,例如并发、内存模型等等。
开始学习一门语言
  • Java
  • C#
  • PHP
  • JavaScript
  • Python
  • Ruby
版本控制系统
知道它们是什么,为什么你应该使用它们
  • Git的基本使用
  • 仓库托管服务
GitHub,GtiLab,Bitbucket

关系型数据库
  • PostgreSQL
  • MySQL
  • MariaDB
  • MS SQL
  • ORACLE
    熟悉SQL语法,了解各种数据库的优劣,多尝试复杂SQL,需要具备一些数据库的调优方式。
非关系型数据库
  • 文档数据库 MongoDB CouchDB
  • 列数据库 Cassandra
  • 时间序列数据库 InfluDB TimescaleDB
  • 实时数据库 Firebase RethinkDB
更多数据库相关
  • ORM
  • ACID
是指数据库管理系统(DBMS)在写入或更新资料的过程中, 为保证事务(transaction)是正确可靠的,所必须具备的四个特性: 原子性(atomicity,或称不可分割性) 一致性(consistency) 隔离性(isolation,又称独立性) 持久性(durability)

  • 事务 Transactions
事务是由什么来保证的 事务的传播特效 事务何时会失效等等

  • n + 1问题
  • 数据库范式
  • 索引Index相关
  • 数据复制 Data Replication
  • 分片策略
  • CAP理论
CAP 一致性(Consistency) 可用性(Availability) 分区容错性(Partition tolerance) 最多满足其中的两个特性。也就是下图所描述的。分布式系统要么满足CA,要么CP,要么AP。无法同时满足CAP。

API相关信息
  • HATEOAS
  • 开放API规范和Swagger
  • 身份验证
基于Cookie、OAuth、基于Authentication、TOKEN、JWT、OpenID、SAML

OPENID工作原理
客户端向验证服务器申请了一个OPENID帐号,然后在支持OPENID验证的网站用OPENID进行登录,这个网站以它会请求你的验证服务器对你的身份进行验证,验证服务器验证合法,该网站接受你的身份
  • JSON API
  • SOAP
  • gRPC
缓存相关
  • CDN
  • 服务端处理
    CDN的全称是Content Delivery Network,即内容分发网络。
    其目的是通过在现有的internet中增加一层新的网络架构,
    将网站的内容发布到最接近用户的网络边缘,使用户可以就近
    取得所需的内容,提高用户访问网站的响应速度。
Redis、Memcached

  • 客户端处理
紧接着要具备一些网络安全知识
安全知识
  • MD5及为什么不用它
  • SHA家族
  • scrypt算法
  • bcrypt算法
测试
  • 继承测试
  • 单元测试
  • 功能测试
CI/CD
持续集成、持续交付
设计和开发原则
  • GOF设计模式
  • 领域驱动设计 DDD
  • 测试驱动开发
  • SOLID 原则
单一职责原则(SRP)一个类应该只负责一件事情 开放封闭原则(OCP)对修改封闭,对扩展开放 里氏替换原则(LSP)所有引用基类的地方必须能够透明地使用其子类的对象 接口隔离原则(ISP)不依赖不需要的接口 依赖倒置原则(DIP)解耦,依赖抽象而不是具体 迪米特原则(LOD)一个对象应该对其他对象保持最小的了解

  • KISS原则 (Keep It Stupid Simple 或 Keep It Simple,Stupid)
    简单清晰原则
  • YAGNI (You Ain’t Gonna Need It)你不会需要它 不设计用不到的功能
  • DRY (Don’t Repeat Yourselt)不要写重复代码
架构模式
  • 单体应用
  • 微服务
  • SOA
服务治理,面向服务架构(SOA)是一个组件模型, 它将应用程序的不同功能单元(称为服务)进行拆分, 并通过这些服务之间定义良好的接口和协议联系起来。

  • CQRS 和 Event Sourcing
  • Serverless
搜索引擎
  • Elasticsearch
  • Solr
Message Brokers (消息代理)
  • Kafka
  • RabbitMQ
  • RocketMQ
容器化
  • Docker
Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。 Docker 的基础是 Linux 容器(LXC)等技术,屏蔽很多底层细节, 让用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。

  • RKT
Rkt诞生于2014年12月,是一种与Docker类似的容器引擎, 由CoreOS公司主导,得到了Redhat、Google、Vmware 等公司的支持,更加专注于解决安全、兼容、执行效率等方面的问题。

  • LXC
提供轻量级的虚拟化,以便隔离进程和资源, 而且不需要提供指令解释机制以及全虚拟化的其他复杂性。

了解它们的由来和作用,系统的学习它们,熟悉它们的生态,尝试了解底层原理。
GraphQL (图状数据)
  • Apollo
  • Relay Modern
图数据库
  • Neo4J
WebSockets
协议
Web服务器
  • Nginx
  • Apache
  • Caddy
  • IIS
    知道各种服务器各自的优势和劣势,知道如何部署应用,能够根据实际的业务场景选取合适的服务器,
    可扩展性
构建可持续性的产品价值
  • 缓解策略
优雅、降解、节流、背压、负载转移、断路器

  • 可视化监控
仪器仪表、监测、遥测

  • 迁移策略
  • 水平和垂直扩展
  • 可观察性
具有可观察的指标,能够在问题发生前及时发现, 或者及时定位已经发生的问题。

总结 成功没有捷径,请保持学习~
??/ 感谢支持 / 以上便是本次分享的全部内容,希望对你有所帮助^_^
喜欢的话别忘了 分享、点赞、收藏 三连哦~
欢迎关注公众号 程序员巴士,来自字节、虾皮、招银的三端兄弟,分享编程经验、技术干货与职业规划,助你少走弯路进大厂。

    推荐阅读