Angry liver, the most complete JAVA learning route in 2022

Posted by Mahfouz on Wed, 19 Jan 2022 01:12:28 +0100

preface

Imagine that you are a little white who has just come into contact with the computer. How to learn? Of course, it starts from the Internet. How to make our learning route not yaw. Here is a "shortcut" for you to quickly go to the peak of your life and marry Bai Fumei.

From shallow to deep, you will understand

Internet related protocols

Basic front-end knowledge

Operating system related knowledge

Learn a language

Version control tool

Database related

API related

Cache correlation

Network security knowledge

Test related knowledge

Continuous integration, continuous delivery

Design and development principles

Architecture mode

Search Engines

Message queue

WEB server

Containerization Technology

Scalability

internet

The Internet is a global computer network. They are connected to each other and communicate through a set of standardized protocols.

HTTP protocol

  • What is the HTTP protocol
  • How does the HTTP protocol work
  • How to implement a network protocol? What points should we pay attention to?

DNS protocol

  • How does the DNS protocol work
  • What is a domain name?
  • How does a domain name work

Basic front-end knowledge

  • Learning HTML
 HTML It is the general language of the network, a simple and general all set markup language.
  • Learn CSS
CSS Full name Cascading Style Sheets,Cascading style sheet,abbreviation CSS style sheet,It's a way to show HTML or XML File style computer language,Is a standard style sheet language,A representation used to describe a web page,Layout and format.

  • Learn JavaScript
A lightweight, interpretive or just in time programming language with function priority

Operating system and basic knowledge

  • Use of terminals
  • How does the operating system work
  • Process management
  • Thread and concurrency
  • Basic terminal commands
grep, awk, sed, lsof, curl, wget,tail, head, less, find, ssh, kill
  • memory management
  • Interprocess communication
Pipes, signals, message queues, shared memory, semaphores, sockets
  • I/O
  • POSIX Basics
stdin input
stdout output
stderr abnormal
pipes The Conduit
  • Basic concepts of network

After you understand the above concepts, you can start to learn a computer language. While learning, you should focus on its details and core concepts, such as concurrency, memory model and so on.

Start learning a language

  • Java
  • C#
  • PHP
  • JavaScript
  • Python
  • Ruby

Version control system

Know what they are and why you should use them

  • Basic use of Git
  • Warehouse hosting service
GitHub,GtiLab,Bitbucket

Relational database

  • PostgreSQL
  • MySQL
  • MariaDB
  • MS SQL
  • ORACLE

Be familiar with SQL syntax, understand the advantages and disadvantages of various databases, and try more complex SQL. You need to have some database tuning methods.

Non relational database

  • Document database MongoDB CouchDB
  • Column database Cassandra
  • Time series database includb timescaledb
  • Real time database Firebase RethinkDB

More database related

  • ORM
  • ACID
Database management system( DBMS)In the process of writing or updating data,
To ensure transaction( transaction)To be correct and reliable, it must have four characteristics:
Atomicity( atomicity,Or indivisibility)
Consistency( consistency)
Isolation( isolation,(also known as independence)
Persistence( durability)
  • Transactions
What is the guarantee of the transaction
 Propagation effects of transactions
 When the transaction will fail, etc
  • n + 1 problem
  • Database paradigm
  • Index related
  • Data Replication data replication
  • Partition strategy
  • CAP theory
CAP
 Consistency( Consistency)
Availability( Availability)
Partition fault tolerance( Partition tolerance)
At most two of these characteristics are met. This is described in the figure below. Distributed systems either meet CA,or CP,or AP. Cannot be satisfied at the same time CAP. 

API related information

  • HATEOAS
  • Open API specification and Swagger
  • Authentication
be based on Cookie,OAuth,be based on Authentication,TOKEN,JWT,OpenID,SAML

How OPENID works

The client applies for an OPENID account from the authentication server, and then logs in with OPENID on the website that supports OPENID authentication. This website will request your authentication server to verify your identity. The authentication server is legitimate, and the website accepts your identity

  • JSON API
  • SOAP
  • gRPC

Cache correlation

  • CDN
  • Server processing

The full name of CDN is Content Delivery Network, that is, content distribution network.
Its purpose is to add a new network architecture to the existing internet,
Publish the content of the website to the edge of the network closest to users, so that users can be nearby
Get the required content and improve the response speed of users visiting the website.

Redis,Memcached
  • Client processing

Then you should have some network security knowledge

Safety knowledge

  • MD5 and why not use it
  • SHA family
  • scrypt algorithm
  • bcrypt algorithm

test

  • Inheritance test
  • unit testing
  • functional testing

CI/CD

Continuous integration, continuous delivery

Design and development principles

  • GOF design pattern
  • Domain Driven Design DDD
  • Test Driven Development
  • SOLID principle
Single responsibility principle( SRP)A class should be responsible for only one thing
 Open and closed principle( OCP)Closed for modification and open for extension
 Richter substitution principle( LSP)All references to the base class must be able to transparently use the objects of its subclasses
 Interface isolation principle( ISP)Do not rely on unwanted interfaces
 Dependency Inversion Principle( DIP)Decoupling, relying on abstraction rather than concrete
 Dimitri principle( LOD)One object should have minimal knowledge of other objects
  • KISS principle (Keep It Stupid Simple or Keep It Simple,Stupid)
    Principle of simplicity and clarity
  • YAGNI (You Ain't Gonna Need It)
  • DRY (Don't repeat yourself)

Architecture mode

  • Monomer application
  • Microservices
  • SOA
Service governance, service oriented architecture( SOA)Is a component model,
It splits the different functional units of the application (called services),
And through well-defined interfaces and protocols between these services.

  • CQRS and Event Sourcing
  • Serverless

Search Engines

  • Elasticsearch
  • Solr

Message Brokers

  • Kafka
  • RabbitMQ
  • RocketMQ

Containerization

  • Docker
Docker The goal of the project is to achieve a lightweight operating system virtualization solution.
Docker The foundation is Linux Container( LXC)And other technologies, shielding many underlying details,
Let the user operate Docker The container is as simple as operating a fast, lightweight virtual machine.
  • RKT
Rkt Born in December 2014, it is a kind of Docker A similar container engine,
from CoreOS Company led, got Redhat,Google,Vmware
 With the support of other companies, we are more focused on solving problems such as security, compatibility and execution efficiency.
  • LXC
Provide lightweight virtualization to isolate processes and resources,
Moreover, there is no need to provide instruction interpretation mechanism and other complexity of full virtualization.

Understand their origin and function, systematically study them, be familiar with their ecology, and try to understand the underlying principles.

GraphQL (graphical data)

  • Apollo
  • Relay Modern

Graph database

  • Neo4J

WebSockets

agreement

Web server

  • Nginx
  • Apache
  • Caddy
  • IIS

Know the advantages and disadvantages of various servers, know how to deploy applications, and be able to select appropriate servers according to the actual business scenario,

Scalability

Building sustainable product value

  • Mitigation strategy
Elegance, degradation, throttling, back pressure, load transfer, circuit breaker
  • Visual monitoring
Instrumentation, monitoring and telemetry
  • Migration strategy

  • Horizontal and vertical expansion

  • Observability

It has observable indicators and can find problems in time before they occur,
Or locate the problems that have occurred in time.

summary

There is no shortcut to success, please keep learning~

❤️/ Thank you for your support/

The above is all the content of this sharing. I hope it will help you_

If you like, don't forget to share, like and collect~

Welcome to official account occupation bus, the three brothers from bytes, shrimp skins and silver merchants, sharing programming experience, technical dry cargo and career planning, helping you to walk in the big factory without any detours.

Topics: Java Back-end