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.