It took me a month to ask all the big guys around me about the route to self-study Java from scratch, suitable for programmers to get started & advanced, Java learning route, 2024 new version

As a Java programmer who aspires to become a Java programmer, you may be at the beginning of your technical career, or you may have already gone through the entry-level path and are looking forward to crossing the threshold of advancement?

No matter what stage you are at, a clear learning route is crucial. By asking for advice from many industry leaders, repeated exploration and practice, we have summarized a set of Java learning routes that are suitable for self-learners with zero basic knowledge in the four years of university, and are also suitable for those starting from scratch. Learning route from junior to R&D expert.

Below is a detailed map of the route that will hopefully help you get started on this journey and continue to progress in the years to come. 

Q1 - Can you introduce yourself?

Hi, everyone, I am Xiao Ming (Xiao Ming’s java inquiry path), a back-end R&D expert at a major Internet company, 2022 Blog Star TOP3/Blog Expert/CSDN Back-end Content Partner, InfoQ (Geek Time) signed author, Alibaba Cloud signed bloggers with 50,000 fans on the entire network.

A veteran with 8 years of development experience, he focuses on interviews/back-end/source code/architecture/algorithms, and is good at interviewing high-security/availability/concurrency/performance architecture design and evolution, system optimization and stability construction.

If you think this article is useful to you, please follow , collect , and like it ~

Q2 - Overview of Java full-stack knowledge system

Overview of Xiaoming’s Java knowledge system

Q3 - What kind of people are suitable for learning?

  • Job seekers : Help quickly establish a knowledge system and systematically attack to get offers faster
  • Interviewer : helps to quickly identify candidates
  • Beginners : Establish a knowledge system and win at the starting line
  • Current employees/want to advance in the company/plan to change jobs : after years of development, the knowledge system has not yet been established.

Q4 - Knowledge Brain Map [There is a lot of content, it is recommended to save it first and then read it]

Computer Architecture and C Language

  • Computer architecture: principles of computer composition, computer architecture (ISA instruction set, intel development manual), CSAPP (in-depth understanding of computer systems), assembly language, compilation principles (ELF, assembler), operating system
  • C language: pointers, structures, C language in assembly language (compilation principles, instructions)

Data Structures and Algorithms

  • Data structure: linked list, queue, stack, hash table, tree, graph, string, monotonic stack, dictionary tree, line segment tree, union lookup set
  • Algorithms: sorting, selection, string API, greedy, dfsbfs, recursion, backtracking, dynamic programming, exhaustiveness, iteration, double pointers

Java language features

  • Basic Java syntax: arrays, object-oriented programming, advanced features of classes, exception handling, common data structure APIs
  • Java advanced features: Lambda, Stream, flow programming, functional programming, reactive programming, asynchronous programming, network programming AIO/BIO/NIO
  • Java threads: Thread, ThreadLocal, Synchronized, Runable, java.util.concurrent, Lock, Executor, ConcurrentHashMap, LinkedBlockingDeque, Java threads and Linux threads

JVM

  • HotSpot: HotSpot kernel, HotSpot startup, HotSpot system initialization, HotSpot Oops module, Klass framework, object identification mechanism
  • JVM specifications: OOM (OutOfMemoryError), StackOverflowError, garbage collection algorithm, garbage collector, instruction set, interpreter, JIT, bytecode instruction set, bytecode execution engine, object memory layout, class loading, linking, initialization, creation Object's process, runtime data area (program counter, jvm stack, local method stack, heap, method area, runtime constant pool, direct memory)
  • Virtual machine monitoring tools (optimization practice): Attach, Heap Dump, jhat, jstack
  • Java memory model and threads: JMM, thread implementation, thread scheduling, state transition, thread safety, lock optimization

MySQL

  • MySQL basics: MySQL data types, locking mechanisms, transactions, MVCC (multi-version concurrency control), storage engines (Innodb, MyISAM)
  • MySQL advanced features: MySQL statement performance analysis, indexes (unique, covering, clustered...), index data structure, optimized SQL performance, partitioned tables, views, cursors, character sets, full-text indexes, distributed transactions, cache
  • MySQL actual combat: data distribution, load balancing, backup and recovery, failover, master-slave replication, monitoring, sub-database and sub-table

frame

  • SpringBoot: SpringBoot starter principle, core source code, automatic configuration
  • Spring, SpringMVC: Spring core process, common annotations for Spring work, circular dependencies and Bean definition analysis, IOC container source code, AOP source code, declarative transaction source code interpretation, tomcat's SPI mechanism to load springmvc container, RequestMappingInfo and HandlerMethod mapping relationship, handlerMapping and HandlerAdapter Relationship, HandlerInterceptor's pre-, mid-, and post-filter principles, HandlerAdapter's parameter parsing principle, springmvc's calling process combing, and responsive programming - WebFlux
  • SpringCloud alibaba: Nacos-Discovery service discovery, configuration center Nacos-Config; SkyWalking link tracking overview, AssemblyPlugin, Sentinel current limiting, fuse, Seala distributed transaction
  • SpringCloud Netflix: Zuul routing gateway detailed explanation and source code analysis, Ribbon client load balancing principle, Feign declarative service invocation, Eureka registration center, Config configuration service center and svn, git integration, Hystrix service circuit breaker and service degradation, Bus/Sleuth/Stream , microservice logs, custom distributed configuration center
  • MyBatis: configuration usage, execution process, source code analysis, connection pool
  • Dubbo: Dubbo architecture principles and core, Dubbo SPI principles, Dubbo I0C and AOP principles, Dubbo dynamic compilation, service publishing principles, service reference principles, cluster fault tolerance design, service degradation design, network communication architecture, network communication encoding and decoding
  • Zookeeper: Zookeeper instructions, zkclient, curotor, cluster election, distributed lock

middleware

  • Redis: Redis cache avalanche, cache breakdown, cache preheating, hotspot key, cache downgrade, short link, distributed lock flash sale, pre-stock reduction, off-heap cache + Redis architecture design, Redis dynamic refresh, Redis and DB double-write consistency nature, expired deletion strategy, cluster data skew
  • Redis core source code interpretation, String/Hash/List/Set/ZSet data structure, Kernel and Epoll multiplexing mechanism
  • RabbitMQ, RocketMQ, Kafka, message publishing and consumption trade-offs, message rejection, application decoupling practice, clustering and mirror queue practice
  • RocketMQ: message storage mechanism, multiple message modes, high availability mechanism, provider and consumer load balancing mechanism, message filtering TAG/SQL and class filtering mode
  • Kafka: Kafka's producers and consumers, advanced features, and clusters. Practical combat: How to handle message retries (sequential/out-of-order/dead letter queue), solve consumption idempotence problems often encountered in projects, build reliable data transmission clusters, peak load reduction and valley filling, integration with Spring, and mirror queues
  • ngnix: Nginx process model and configuration, location rules, rewrite analysis and other dynamic and static separation, reverse proxy and cross-domain
  • tomcat: HTTP request parsing and processing process, Tomcat core components, class loading mechanism and source code analysis, BIO/NIO source code, Tomcat cluster and session replication solution
  • Sub-database and table: mycat: implements MySQL read-write separation, database sharding, global tables, ER tables, and sharding mechanism analysis; sharding-jdbc: engine principles and data sharding, read-write separation, orchestration management, and distribution Transaction and data desensitization
  • kubernetes (K8S): Kubernetes cluster management solution in action
  • docker: basic operations, Docker File, network storage, Docker Compose, microservices and Docker integration to achieve dynamic expansion
  • Elastic: ElasticSearch: principles, distributed CRUD, index management, sharding, search optimization; elastic-job

 Architecture

  • System design: high availability, high concurrency, high performance, high scalability, high security, and prevention of capital loss
  • Architecture design: selection, load balancing, current limiting, circuit breaker, downgrade, clustering, failover, disaster recovery and backup, monitoring logs, data security
  • Monitoring:Grafana、CAT、Kibana、LoadRunner、Logstash、Pinpoint、ZipKin、JMeter
  • Integration: Nginx, DNS, Kubernetes, Docker, Tomcat, JenKins, Maven, JBOSS, Gradle, Git, SVN, Alibaba Cloud, Huawei Cloud, Tencent Cloud

 Soft skills

  • UML usage
  • PPT assembly, speech, technical design document writing, requirement understanding, requirement communication, architecture document writing
  • Use of technical terminology, managing up, performance-oriented/leadership programming

 Summarize

It seems like a lot, but a few months may be enough for a preliminary understanding. Of course, this is just a rough road map. Everyone’s learning rhythm and points of interest will be different. In this learning process, you must understand what it is. Well, know how to use it, understand its underlying principles, understand its common problems, be familiar with the solutions to the problems, etc.

Let’s talk about it, no matter what stage you are at, you must maintain curiosity and enthusiasm for technology, take the initiative to explore and practice new technical fields, and have the courage to try and perseverance are essential qualities to reach the top.

Guess you like

Origin blog.csdn.net/FMC_WBL/article/details/135318746