Learning the way to Java development

Basic knowledge of

  • Programming language: Java Python C
  • The basic algorithm
  • Basic network knowledge: TCP/IP HTTP/HTTPS
  • Basic design patterns

tools

  • Operating system: Linux (CentOS, Ubuntu)
  • Code management: SVN/Git
  • Continuous integration (CI/CD continuous deployment) : Jenkins
  • Java project management tool: Maven/Gradle

Framework for

Application framework

  • ssh spring + struts + hibernate
  • SSM: Spring + SpringMVC + Mybatis
  • spring boot

Various middleware

  • MQ message queue
  • RPC communication framework gRPC Thrift Dubbo SpringClooud
  • Elasticsearch Database search engine

The database

  • SQL: MySQL/PostgreSQL
  • NoSQL: Redis/Memcashed/Mongodb/Elasticsearch

Framework for

Distributed/microservice architecture

  • spring cloud
  • dubbo
  • RPC communication

Virtualization/containerization techniques

  • Docker container,
  • K8s kubernetes

Focus on source code/performance

  • JDK source code and some design ideas
  • The Spring source
  • JVM details and troubleshooting
  • High concurrency/high availability