Java之神:技能树(Skill Tree)

■■ 卷一:Java - 工程师修炼

■□ Stage01:JavaSE

        ■ 零、Java预热

                ● 计算机发展历史

                ● 编程语言概况与分类

                ● DOS常用命令

                        ★ 咱从DOS命令说起吧,建议有时间学一下批处理技术,不少地方还是可以用得上的,至少看得懂:  

玩DOS,当然是在Windows系统环境

■□ 打开CMD命令窗口 

        按 Win + R,打开“运行”输入框,输入cmd 回车即可打开CMD命令窗口

■ 修改CMD窗体透明度

        在CMD窗体标题栏上,右键 > 设置 > 到处点点,找到窗体背景或背景图片及其透明度的设置项,尝试调整一下。

■□ DOS命令1

        ■ help              #显示DOS命令清单及基本说明

        ■ help 命令      #显示命令帮助信息

        ■ 命令 /?         #显示命令用法,功能类似"help 命令"

        ■ color             #设置屏幕颜色

            ▲ 其实你不必一直使用黑屏的CMD窗口,可以给屏幕和文字来点颜色,搭配方式很简单,那就是屏幕和文字颜色采用对比色,就会比较好看了,比如输入 color 8f,即设置背景为8(绿色),前景(即文字)为f(亮白色)。当然,你还可以结合调整CMD窗体背景或窗体背景图片的透明度,会变得更漂亮美妙一些。

            ▲ color /?    #显示color命令用法

        ■ cls                #清屏命令

        ■ ctrl + c          #终止当前命令进程

        ■ exit             #退出CMD终端

        ■ echo           #显示消息,或将命令回显打开或关闭

        ■ notepad       #打开记事本程序

        ■ mspaint         #打开画图程序

        ■ calc            #打开计算器程序

        ■ ver       #显示win系统版本

        ■ shutdown   /s   #系统关机命令。s=stop或shutdown。可以指定关机前的超时秒数:/t 秒数

        ■ shutdown   /f   #强制关机

        ■ shutdown   /l   #系统注销命令。l=login。

        ■ shutdown   /r   #系统重启命令 。r=restart或reboot。

        ■ shutdown   /h  #系统休眠命令。h=hibernate        

        ■ more  # 逐屏显示输出

■□ DOS命令2

        ■ dir                #显示目录文件(详细)---相当于 查看 - 详细信息

        ■ dir /b            #显示目录文件(简明)---相当于 查看 - 列表

            ▲当你想复制某个目录下的目录文件名称清单时,这条命令挺有用的

        ■ cd                #切换目录  cd = change directory,是chdir命令的别名

        ■ cd ..             #切换到上一级目录

        ■ mkdir 目录名  #创建目录(或文件夹)

        ■ rmdir 目录名  #移除目录(或文件夹)

        ■ md 目录名  #创建目录。md是mkdir指令的别名

        ■ rd 目录名   #删除目录。rd是rmdir指令的别名

        ■ touch a.txt   #创建一个空文档a.txt

        ■ echo >a.txt  #创建一个空文档a.txt,或清空a.txt内容

        ■ echo Hello World >> a.txt   #给a.txt追加文本Hello World

        ■ notepad a.txt #使用notepad(即记事本程序)打开文件a.txt

        ■ del 文件       #删除至少一个文件

        ■ erase          #删除文件,功能同del

        ■ type a.txt     #查看文本文件(a.txt)的内容

        ■ ren 文件名1 文件名2  #重命名文件。ren是rename命令的别名

        ■ copy           #用于复制文件

        ■ xcopy      #复制文件和目录树

        ■ move  #将一个或多个文件从一个目录移动到另一个目录

        ■ attrib 文件名   #显示或更改文件属性

        ■ ipconfig /all    #显示配置的IP地址、子网掩码、默认网关等信息

        ■ ping IP地址   #连通测试

                ▲ping 192.168.133.133

                ▲ping www.baidu.com -n 5     #可以指定必须有回显反馈的请求次数

        ■ netstat -ano  #显示网络连接及相关统计信息

        ■ find    #在一个或多个文件中搜索一个文本字符串

        ■ findstr "xxx"   #查询字符串。在多个文件中搜索字符串

                ▲netstat -ano | findstr "8080"

        ■ tasklist        #任务列表

        ■ taskkill/pid -f       #杀死指定进程ID的进程

        ■ tracert www.baidu.com   #路由追踪

        ■ time #显示或设置时间

        ■ date #显示或设置日期

        ■ tree nodeStudy    #显示nodeStudy目录的目录树结构

        ■ replace    #文件替换

■□ DOS命令3:

        ■ systeminfo   #显示计算机的特定属性和配置

        ■ path         #显示路径变量。当然也可以用于设置

        ■ set          #显示、设置或删除 Windows 环境变量

        ■ format     #格式化磁盘

        ■ chkdsk    #检查并报告磁盘健康状态

        ■ label  #创建、更改或删除磁盘的卷标

        ■ vol   # 显示磁盘卷标和序列号

■□ DOS命令4:

        ■ for  #为一组文件中的每个文件运行一个指定的命令

        ■ if #在批处理程序中执行有条件的处理操作

        ■ break

        ■ pause

        ■ shift

        ■ sort   #对输入排序

        ■ mklink  #创建符号链接和硬链接

■□ DOS命令5:

        ■ net

        ■

■□ DOS命令6:其它

        ■

                ● 学习方法与学习笔记及笔记工具

                ● JDK/JRE安装与配置

                ● 第一个Java程序:HelloWorld

        ■ 一、Java基础

                ● 变量、字面量等

                ● 变量类型&类型转换

                ● 运算符&优先级

                ● 流程控制

                ● 方法

                ● 数组

        ■ 二、Java核心

                ● OOP

                ● 包

                ● 异常处理

                ● 集合框架

                ● 常用API

        ■ 三、Java高级

                ● GUI

                ● 文件IO

                ● 多线程

                ● 网络编程

                ● Java8新特性

                ● XML&DOM4J

■□ Stage02:MySQL + JDBC

        ■ MySQL

                ● MySQL

                ● MySQL客户端

        ■ JDBC

                ● JDBC

                ● JDBC封装

                ● 数据库连接池

                ● DBUtils

                ● 事务

                ● JNDI

■□ Stage03:Web前端

        ■ HTML

        ■ CSS

        ■ JavaScript & AJAX

        ■ jQuery

        ■ Bootstrap

■□ Stage04:JavaWeb

        ■ HTTP协议

        ■ Web服务器:Tomcat

        ■ JavaWeb

                ● Servlet

                ● JSP

                ● EL + JSTL

                ● Filter

                ● Listener

        ■ 阶段项目Skills

        ■ 补充

■□ Stage05:Linux基础 + Java基础加强

        ■ Linux基础

                ● Linux入门基础

                ● Bash特性

                ● 用户管理

                ● 权限管理

                ● 文件目录管理

                ● 文本处理

                ● 文本编辑:vim/vi

                ● 文件查找

                ● 磁盘管理

                ● 解压缩与归档

                ● 包管理

                ● 进程管理

                ● 网络管理

                ● 启动管理

                ● Shell编程

                ● SELinux

        ■ Java基础加强

                ● JavaSE高阶知识点

                        ◆ 枚举

                        ◆ 注解

                        ◆ 反射

                        ◆ 序列化与反序列化

                        ◆ 字节码

                ● 几个第三方常用类库

                        ◆ 单元测试:JUnit

                        ◆ 日志系统:Log4j

                        ◆ Bean处理:Lombok

                ● 几个常用设计模式

                        ◆ 单例模式

                        ◆ 工厂模式

                        ◆ 门面模式

                        ◆ 代理模式

                        ◆ 观察者模式

                ● JVM双亲委托模式

                ● 文本处理与正则表达式

■□ Stage06:主流框架阶段

        ■ 数据库

                ● RDB:Oracle

                ● NoSQL:Redis

        ■ 软件工程

                ● 项目构建:Maven

                ● 版本控制:SVN

        ■ 主流框架

                ● Hibernate

                ● Struts2

                ● Spring

                ● MyBatis

                ● SpringMVC

■□ Stage07:项目实战技能

        ■ 数据建模:PowerDesigner

        ■ 安全框架:Shiro

        ■ 邮件发送:JMail

        ■ 远程调用:HttpClient

        ■ 报表处理:POI

        ■ 定时任务:Quartz

        ■ Web Services:CXF

        ■ 数据缓存:Redis

        ■ 消息队列:ActiveMQ

        ■ 发送短信:阿里短信

■□ Stage08:微服务

        ■ SpringBoot(脚手架)

        ■ Spring Cloud(微服务套件,HTTP方式)

                ● 服务注册:Eureka(呀找到了)

                ● 负载均衡:Ribbon(飘带)

                ● 服务容错:Hystrix(豪猪)

                ● 服务调用:Feign(伪装)

                ● 服务网关:Zuul(祖鲁)

        ■ Spring Cloud Alibaba(微服务套件,HTTP方式)

                ▲ Nacos(服务注册与配置中心)

                ● OpenFeign(远程调用)

                ▲ Sentinel(限流降级熔断)

                ● Gateway(网关路由)

                ▲ Seata(分布式事务)

                ● Sleuth(链路追踪)

        ■ Dubbo + Zookeeper(微服务套件,RPC方式)

■□ Stage09:微服务项目技能

        ■ 前端高阶

                ● JS高阶

                ● CSS语法糖:LESS

                ● 模块化开发

                ● ES6

                ● Vue.js框架

                ● Vue框架UI库:Element-UI(饿了吗)

                ● 项目构建:WebPack

                ● 语法检测:ESLint

                ● 数据模拟:Mock.js

        ■ Java后端

                ● 负载均衡:Nginx

                ● 远程调用:HttpOk3

                ● 跨域解决:CORS

                ● 全文检索:ELK = ElasticSearch + Kibana + Logstash

                ● 安全框架:Spring Security + JWT + OAuth2

                ● 报表处理:EasyExcel

                ● 图片存储:FastDFS

                ● 定时任务:Spring Task

                ● 消息队列:RabbitMQ

                ● 媒体管理:阿里VOD

                ● NoSQL:MongoDB

                ● 缓存:Redis

                ● 短信发送:阿里短信

                ● 在线支付:微信支付

                ● 内网穿透:花生壳

■■ 卷二:Java - 构架师修炼

■□ 内功心法

        ■ 设计模式

                ● 设计原则

                ● 设计模式:GoF23

        ■ 数据结构与算法

                ● 数据结构

                ● 算法

        ■ 多线程与并发编程

                ● 多线程

                        ◆ 多线程基础知识

                        ◆ 线程池

                        ◆ 并发理论知识

                        ◆ 并发工具

                        ◆ 模式

                        ◆ 应用

                        ◆ 面试相关

                ● JUC

                ● Netty

                ● Vert.X

                ● 响应式

        ■ 调优

                ● JVM调优

                        ◆ 参数

                        ◆ CLI指令

                        ◆ GUI工具

                        ◆ GC算法

                ● Tomcat调优

                ● MySQL调优

                ● 代码调优

        ■ 编程规范

                ● 阿里Java编程规范

        ■ 源码阅读与分析

                ● Spring

                ● MyBatis

                ● SpringMVC

                ● SpringBoot

        ■ Java新特性

                ● Java5

                ● Java6

                ● Java7

                ● Java8

                ● Java9

                ● Java11

                ● ...

■□ 架构设计(理论)

        ■ 架构概述

        ■ 架构思想

        ■ 架构原则

        ■ 架构模式

        ■ 架构实践:略

■□ 技术选型

        ■ 篇一:数据库

                ● RDBMS

                        ◆ MySQL

                        ◆ Oracle

                        ◆ SQL Server

                        ◆ DB2

                        ◆ PostgreSQL

                        ◆ SQLite

                ● NoSQL

                        ◆ Redis

                        ◆ Memcaced

                        ◆ MongoDB

                        ◆ SSDB

        ■ 篇二:中间件

                ● Web容器

                        ◆ Tomcat

                        ◆ Jetty

                        ◆ Nginxt/Tengine/OpenResty

                        ◆ WebLogic

                        ◆ WebSphere

                ● 全文检索

                        ◆ Solr

                        ◆ ElasticSearch

                ● 消息队列

                        ◆ ActiveMQ

                        ◆ RabbitMQ

                        ◆ RocketMQ

                        ◆ ZeroMQ

                        ◆ Kafka

                        ◆ ...

                ● 缓存

                        ◆ Redis

                        ◆ Memcached

                ● 分布式文件系统

                        ◆ FastDFS

                        ◆ MooseFS

                        ◆ GlusterMS

                        ◆ GridFS

                        ◆ CephFS

                        ◆ HDFS

                        ◆ ...

                ● 数据库中间件

                        ◆ MyCAT

                        ◆ Sharding-JDBC

        ■ 篇三:其它技术选型

                ● 安全框架

                        ◆ Shiro

                        ◆ Spring Security

                ● 定时任务

                        ◆ Quartz

                        ◆ Spring Task

                        ◆ xxl-job

                        ◆ Elastic-Job

                ● 报表技术

                        ◆ Excel&Word:POI,EasyPOI

                        ◆ Excel:EasyExcel

                        ◆ 导出CSV:OpenCSV

                        ◆ Word转PDF:Jacob

                        ◆ PDF定制:JasperReport (基于iText) & IReport

                ● 统计图表,图表可视化

                        ◆ 基于JS - 前端渲染:HCharts & ECharts ...

                        ◆ 基于Java - 后端渲染:JFreeChart

                ● 单元测试/自动化测试/集成测试

                        ◆ JUnit5

                        ◆ Mockito/Mock

                        ◆ PowerMock/Mock

                        ◆ TestNG

                        ◆ Selenium

                        ◆ Robot Framework

                        ◆ Cucumber 

                        ◆ ...

                ● 压力测试/基准测试/性能测试

                        ◆ JMeter

                        ◆ AB

                        ◆ ...

■□ 专题研究

        ■ 分布式专题

                ● 分布式应用

                ● 分布式系统

                ● 分布式缓存

                        ◆ 分布式缓存失效 - 缓存穿透:请求一个永远不存在的key

                                - 解决方案:返回并缓存null值

                        ◆ 分布式缓存失效 - 缓存雪崩:大面积key同时失效

                                - 解决方案:(失效时间)加随机值

                        ◆ 分布式缓存失效 - 缓存击透:高并发击穿热点key

                                - 解决方案:加(分布式)锁

                ● 分布式锁

                        ◆ 基础数据库

                        ◆ 基于Redis

                                - 分布式锁框架:Redission

                        ◆ 基于Zookeeper

                ● 分布式事务

                        ◆ 理论

                                - CAP定理:艾瑞克·布鲁斯定理 #三缺一

                                        + C:一致性  # 指数据一致性

                                        + A:可用性  # 指应用可用

                                        + P: 分区容错性  # 指网络分区

                                - BASE定理:坐一(P)望三(+C+A),鱼(C)和熊掌(A)不可兼得

                        ◆ 实现方案

                        ◆ 相关算法

                        ◆ Seata

                ● 分布式文件系统

                        ◆ FastDFS

                        ◆ GlusterFS

                        ◆ GridFS

                        ◆ Ceph

                        ◆ HDFS

                ● 分布式数据库

                        ◆ TiDB

                        ◆ OceanBase

                ● 分布式存储 - 商业服务

                        ◆ 阿里OSS(对象存储服务)

                        ◆ 七牛云存储

                ● 分布式计算

                        ◆ 分布式计算概述

                        ◆ 典型应用场景

                        ◆ ...

        ■ 微服务专题

        ■ 多级缓存专题

        ■ 高性能

        ■ 高并发&高可靠

        ■ 数据采集与监控

        ■ 安全编程

        ■ 服务网格(Service Mesh)

■□ DevOps修炼

        ■ 项目构建

        ■ 代码托管

        ■ CICD

        ■ 质量保证

        ■ 容器化部署

■□ 软件工程

        ■ 项目管理:目标管理,计划管理,团队管理,工具管理,信息管理,风险管理等

        ■ 开发方式:精益敏捷开发(Scrum, XP等),传统瀑布模型等

        ■ 应用原型:

        ■ 数据建模:

        ■ 开发工具:

        ■ 版本控制:

        ■ API 网关

        ■ 负载均衡

        ■ 任务调度:

        ■ 监控系统:

        ■ 项目构建:

        ■ 软件测试:

        ■ 部署上线:

        ■ 日常运维:

        ■ 客服系统:

        ■ 

■□ 工具链簇

        ■ 前端工具

                ● 原型:Axure

                ● 骨架图、线框图:Pencil

                ● 后期处理/切图:PhotoShop、Fireworks

                ● 绘图/制图(流程图):亿图、ProcessOn(在线绘图)

                ● 浏览器:Chrome、Firefox、Edge

                ● 文本编辑器:EditPlus、Sublime Text3、Notepad++、EmEditor、UltraEditor

                ● IDE/准IDE:WebStorm、VSCode、Atom、Bracker、HBuilder

                ● 打包构建工具:WebPack、Grunt、Gulp

                ● Mock数据:Mock.js

                ● LESS编译工具:Coala

                ● 抓包工具(Win):

                ● 其它:

        ■ Java后端开发工具

                ● Java开发套件:JDK(含JRE)

                ● 企业级服务器:GlassFish、WebLogic、WebSphere等

                ● Web服务器:Apache、Nginx

                ● Web容器:Tomcat服务器

                ● IDEA(集成开发环境):NetBeans(偏桌面GUI应用开发)、Eclipse/MyEclipse、IDEA

                ● 虚拟机:VirtualBox、VMware

                ● SSH远程登录:XShell、PuTTY

                ● FTP客户端:FileZilla、Xftp

                ● 终端工具:CMD/DOS、PowerShell、CMDer

                ● 包管理器:Chocolatey(Win)、NPM(Node.js的包管理器)、NPM、YUM

                ● WAMP/LAMP(PHP开发四件套):phpStudy

                ● UML统一建模:Rotional Rose、PowerDesigner(PD)、StarUML

                ● 关系型数据库客户端GUI工具:SQLyog、NaviCat、PL-SQL

                ● NoSQL客户端GUI工具:RDM(RedisDesktopManager)、Robo 3T

                ● 报表PDF模板制作工具:JasperSoft Studio

                ● 接口调试:Postman

                ● 基准测试:JMeter

                ● 反编译:JadX

                ● JVM调优(监控&诊断):JMAT、JConsole、VisualVM

                ● 白盒测试/单元测试:JUnit

                ● 黑盒测试/自动化测试:Selenium 

                ● 项目管理/错误跟踪:禅道、JIRA

                ● 持续集成(流水线):Jenkins

                ● 代码审查:Sonar/SonarQube

                ● 项目构建:Maven、Gradle、Ant

                ● 自建代码托管服务器:GitLab

                ● 代码托管在线平台:Gittee(码云)、GitHub(传说中的同志哥好基友)

                ● Git客户端(GUI):Git for Windows

                ● SVN客户端(GUI):TortoiseSVN

                ● 中间件(Broker)及相关工具:

                        ◆ Lucene搜索GUI工具:Luke

                        ◆ 搜索引擎服务器:Solr、ElasticSearch

                        ◆ ES搜索GUI工具:Kibana

                        ◆ 消息队列服务器:ActiveMQ、RabbitMQ、RocketMQ

                        ◆ 注册中心服务器:Nacos

                        ◆ 数据缓存服务器:Redis

                        ◆ 静态文件缓存服务器:Nginx

                        ◆ 安全中间件:CAS

                        ◆ 其它:

                ● 分布式文件系统(服务器):FastDFS、Ceph

                ● Maven私服:Nexus

                ● 大数据:Hadoop

                ● 虚拟机上传下载工具:lrzsz

■□ 项目管理

        ■ 团队管理:人员的组织与管理(团队建设,工作纪律,任务分配,激励机制等)

        ■ 质量管理:软件质量保证,软件度量,软件过程与能力评估等

        ■ 时间管理:工作时间安排,任务进度管控,团队运作协同,时间管理方法与工具等

        ■ 计划管理:软件项目计划,总体目标,目标拆解,任务细分,进度计划,后备方案等

        ■ 信息管理:信息沟通,信息保密,数据库管理,配置管理,文档管理,经验分享等

        ■ 资金管理:专款管理(如设备采购),资金池管理,现金管理,风险后备金等

        ■ 资产管理:设备资产,软件资产,信息数据资产等

        ■ 风险管理:天灾人祸,资金不足,人员流失,功能缺失,技术漏洞,进度违约,法律禁忌等

        ■ 配置管理:

        ■ 文档管理:

        ■ 

■□ Miscellaneous

        ■ Java官方文档&教材:

                ● Java8官方文档主页:

                        ◆ https://docs.oracle.com/javase/8/docs/index.html

                ● Java8官方教程

                        ◆ The Java™ Tutorials

                ● Java语言规范:基于JavaSE8

                        ◆ https://docs.oracle.com/javase/specs/jls/se8/jls8.pdf

                ● JavaEE8官方教程:基于JDK7

                        ◆ https://javaee.github.io/tutorial/toc.html

                                *目录:---------------------------------------------------------------------
                                *Part I:Introduction 【简介】
                                *Part II:Platform Basics 【平台基础】
                                *Part III:The Web Tier 【Web层】
                                *Part IV:Bean Validation 【Bean验证】
                                *Part V:Contexts and Dependency Injection for Java EE 【上下文和依赖注入(DI)】
                                *Part VI:Web Services 【Web服务】
                                *Part VII:Enterprise Beans 【EJB】
                                *Part VIII:Persistence 【持久化】
                                *Part IX:Messaging 【消息】
                                *Part X:Security 【安全】
                                *Part XI:Java EE Supporting Technologies 【JavaEE支撑技术】
                                *Part XII:Case Studies 【案例研究】

        ■ Redis学习

                ● Redis基本安装

                        ◆ Windows下安装

                        ◆ Linux下安装

                ● Redis命令学习

                        ◆ 基本命令(或常用命令)

                        ◆ 扩展命令

                        ◆ 高阶命令

                ● Redis客户端学习

                        ◆ GUI客户端工具

                        ◆ Java操作Redis

                                ▲ Jedis

                                ▲ Spring整合Redis

                                ▲ SpringBoot整合Redis

                        ◆ PHP操作Redis

                        ◆ ...

                ● Redis部署

                        ◆ 单机部署

                        ◆ 集群部署

                ● Redis配置与高级主题

                        ◆ 单机

                        ◆ 持久化

                        ◆ 集群部署与生产监控

                        ◆ 分布式运用与问题解决(缓存穿透、缓存雪崩、缓存击穿等)

                        ◆ 

        ■ 

■■ 卷三:Java底层加固

■□ 科目1:IT科技英语

■□ 科目2:高等数学

■□ 科目3:计算机原理

■□ 科目4:汇编

■□ 科目5:C语言

■□ 科目6:反编译

■□ 科目7:网络工程

■□ 科目8:软件工程

■■ 卷四:Java周边扩展

■□ 测试

■□ Linux运维

                ● 系统篇

                ● 服务篇

                        ◆ DNS

                        ◆ DHCP

                        ◆ (L)AMP

                        ◆ FTP

                        ◆ NFS

                        ◆ Samba

                        ◆ Syslogd

                        ◆ Xinetd

                        ◆ OpenSSL/HTTPS

                        ◆ Firewalld

                        ◆ NTP

                        ◆ ...

                ● 集群篇

                        ◆ Nginx

                        ◆ Keepalived

                        ◆ Varnish

                        ◆ ...

                ● 自动化篇

                ● DevOps篇

■□ 网络安全

■□ 大数据

                ● Hadoop

                ● Zookeeper

                ● Flume

                ● Hive

                ● Hbase

                ● Kafka

                ● Scala

                ○ Storm

                ● Spark

                ● Kylin

■□ 人工智能

■□ 区块链

■□ 其它语言

                ● JavaScript & Node.js

                ● PHP

                ○ Ruby

                ● Python

                ● GoLang

                ● C / C++

                ● C#

                ○ Object-C

                ● Swift

                ● Lua

                ● Groovy

                ● Rust

■■ 卷五:Java项目研究

■□ 传统项目

                ● ERP

                ● OA

                ● CRM

                ● BOM

                ● HRM

                ● 其它

■□ 现代Web项目

                ● 综合门户类

                ● 电子商务类

                ● 在线教育类

                ● 信息服务类

                ● 社交网络类

                ● 金融服务类

                ● 企业建站类

                ● 机构事业类

                ● 中介服务类

■■ 卷六:Java云水禅心

        ■ 面试心经

        ■ 团队管理

        ■ 书籍推荐

        ■ 心法禅意1:

                ● 内容日增,已独立成帖,请参见:《心法禅意:程序猿的参悟、觉悟、证悟之路》

                ● 

        ■ 综合信息

你可能感兴趣的:(Java,java,开发语言)