2018 Programming Technology Learning list, 2018 Programming Technology list
Programming General Data Storage essential encoding essential compression essential encryption essential serialization essential CDN essential DNS essential Internet Protocol entry: reprinting protocols at various layers
The essence of CPU IO
Essence of CPU computing
Essence
Essence of concurrency
Essence of Data Types
Differences between disk and Memory Data Reading and computing
Performance Tuning https://www.toutiao.com/i6533104240003383822/
Essence of network communication
Essence of communication protocols
Comparison of Data Storage Methods: json, parquet, and xml
Cache
What is digital signature and digital certificate?
Architecture and concept web service Architecture-Java basics of render http://www.ruanyifeng.com/blog/2014/07/database_implementation.html
Basic Structure of Java classes
Access control permission
Class Loading Mechanism
Java data type Implementation Mechanism
Use of enumeration classes
Internal classes and callback Functions
Exception Handling Mechanism
The essence of IO streams: understanding IO streams from the design perspective
NIO: NIO (New Input/Output) class introduces an I/O Method Based on Channel and Buffer.You can use the Native function library to directly allocate off-heap memory.And then use a DirectByteBuffer object stored in the Java heap as a reference to the memory. This can significantly improve performance in some scenarios, becauseAvoid copying data back and forth between Java heap and Native heap (off-heap memory).
Generic Mechanism
Reflection mechanism
Annotation Mechanism
Usage of JDK Functions
JVM memory allocation, memory management, and underlying resource control
Garbage Collection
Concurrent multithreading: java. util. concurrent. forkjoin Learning
Network Programming
Data Structure and algorithm: Chapter 13 of java basic volume
How is the data structure implemented?
Java framework technology of application Recommendation System
Spring Ecosystem
Elastic Ecosystem
Hadoop Ecosystem
Communication Framework
Doctor container Technology
Basic functions of the Java framework
Reusability design modular thinking
I often hear such complaints from programmers who have been writing programs for several years and become skilled workers. Every day, I repeatedly write code without any new ideas. In reusability design, modular thinking means that programmers should think more about every functional module or function, rather than simply thinking about how to complete the current task, think about whether the module can be detached from the system, and whether it can be directly referenced in other systems and application environments by simply modifying parameters, which can greatly avoid repetitive development work, if a software R & D organization and working group can consider these issues during every R & D process, programmers will not delay too much time in repetitive work, more time and energy will be invested in innovative code work.
Log Module
Thread Pool
Connection Pool
Exception Handling Module ()
Technical Solution level
Callback
Transaction rollback
Design Problems
Design Mode
Multiplexing and modularization
Project-related
Test Methodology
1. Basic Java technology system, JVM memory allocation, garbage collection, Class Loader system, performance optimization, reflection mechanism, multithreading, network programming, common data structures and related algorithms.
2. Have a clear understanding of object-oriented software development ideas and be familiar with common design patterns.
3. Master the popular open-source frameworks (spring, springmvc, and ibatis), and have some knowledge of their core ideas and implementation principles.
4. Familiar with the development and design of Oracle, MySQL, and other databases, as well as the design and development of the cache system Redis or Memcached.
5. Familiar with underlying middleware and distributed technologies (including cache, message system, and hot deployment), message middleware: ActiveMQ, RabbitMQ, and workflow middleware: JBPM.
6. proficient in shell programming and familiar with Common commands such as awk, sed, grep, strace, tcudump, and gdb.
7. Experience in designing and developing large distributed systems, high concurrency, high load (large data volume), and high availability systems.
8. Have some knowledge about configuration management and agile R & D modes (svn and git ).
9. Familiar with common solutions and their principles: Single Sign-On, distributed cache, SOA, full-text retrieval, message middleware, Server Load balancer, connection pool, and streamcompute.
10. Be familiar with the features and business Bottlenecks of mainstream technologies on the market.