The students who just came out of the school mostly only know about the programming language itself, which is better able to master the knowledge and characteristics of programming language. In reality, enterprises need not only the skills of the programming language itself, but the techniques used in the actual projects, and the ability and experience that can be reasonably solved when problems are encountered. Experience ability needs to accumulate for a while, how to learn and master the techniques commonly used? After learning the language, we should continue to follow the direction of how to go forward? Look at the information about recruiting senior Java engineers, we can often see structs, Spring,hibernate,uml and other words, what is the relationship between them, how to use the most concise words to explain their relationship? I hope the experienced brother can give some advice, so that beginners can eliminate the doubt.