How can a Java programmer achieve an annual salary of 1 million and become a top architect in just 3 years?

Preface

As we all know, Java is one of the most widely used network programming languages.

It is simple, object-oriented, stable, platform-independent, explanatory, multi-threaded, and dynamic.

The average JAVA programmer may be able to deal with it only by knowing some JAVA grammatical structure. But it is not easy to become a JAVA (senior) engineer, so what is a qualified senior (senior or management) JAVA engineer? Pay attention to the public account: Kylin changes the bug, and you can also receive a detailed Java core technology mind map !

So today I will list the following points for my friends:

Note: The following content is not compulsory or compulsory, some of the content already belongs to the deeper content, just understand it.

1. Macroscopically

1. The breadth of technology

At least you must be proficient in multiple open source technologies, and have studied the source code of struts spring.

2. Project experience

I have followed several large projects from beginning to end. The beginning refers to the demand stage, including demand investigation.

The end refers to after the on-line delivery, including the maintenance phase.

3. Architecture experience

Have experience in the architecture and development of distributed systems. He has extensive experience in cross-system structural optimization and data storage performance indicators. What caching, the vertical segmentation of the database, the abstraction and horizontal segmentation of the business, these should all be familiar.

4. Industry sector

At the very least, you have to be proficient in one or two businesses. The so-called proficiency is, for example, in financial securities business, waiting for at least half of the financial analyst. If you are in the power business, you should wait at least half as a power engineer.

5. Personal cultivation

There are some unique insights of my own, which will not be heard by others.

Second, at the micro level

1. Proficient in object-oriented analysis and design (OOA/OOD), involving mode (GOF, J2EEDP) and integrated mode. You should have a good understanding of UML, especially class, object, interaction, and statediagrams.

2. Learn the basics of JAVA language and its core class libraries (collections, serialization, streams, networking, multithreading, reflection, event, handling, NIO, localization, and others).

3. Understand the basic working mechanism of JVM, classloaders, classreflect, and garbage collection. You should be able to decompile a class file and understand some basic assembly instructions.

4. If you are going to write client programs, you need to learn WEB applets, and you must master the ideas and methods of GUI design, as well as SWING, AWT, and SWT of desktop programs.

You should also have an understanding of the JAVABEAN component pattern of UI widgets. JAVABEANS is also used in JSP to separate business logic from the presentation layer.

5. Learn java database technology, such as JDBCAPI and use at least one persistence/ORM architecture, such as Hibernate, JDO, CocoBase, TopLink, InsideLiberator (domestic JDO red factory software) or iBatis.

6. You should understand the meaning of the impedance mismatch of object relationships, and how it affects the interaction of business objects with relational databases, and its operating results, and you also need to master the application of different database products, such as racle, mysql, mssqlserver.

7. Learn JAVA's sandbox security model (classloaders, bytecodeverification, managers, policyandpermissions, codesigning, digitalsignatures, cryptography, certification, Kerberos, and others) and different security/authentication APIs, such as JAAS (JavaAuthentication and AuthorizationService), JCE (JavaCryptographyExtension) , JSSE (JavaSecureSocketExtension), and JGSS (JavaGeneralSecurityService).

8. Familiar with mainstream web frameworks, such as JSF, Struts, Tapestry, Cocoon, WebWork, and their related modes, such as MVC/MODEL2.

9. Learn Servlets, JSP, and JSTL (StandardTagLibraries) and optional third-party TagLibraries.

10. Learn how to use and manage WEB servers, such as tomcat, resin, and Jrun, and know how to extend and maintain WEB programs based on them.

11. Learn distributed objects and remote APIs, such as RMI and RMI/IIOP.

12. Master various popular middleware technology standards and implement it in combination with java, such as Tuxedo, CROBA, and of course javaEE itself.

13. To learn at least one kind of XMLAPI, such as JAXP (JavaAPIforXMLProcessing), JDOM (JavaforXMLDocumentObjectModel), DOM4J, or JAXR (JavaAPIforXMLRegistries).

14. Learn a lightweight application framework, such as Spring, PicoContainer, Avalon, and their IoC/DI style (setter, constructor, interface injection).

15. Learn how to use JAVAAPI and tools to build WebService.

例如JAX-RPC(JavaAPIforXML/RPC),SAAJ (SOAPwithAttachmentsAPIforJava),JAXB(JavaArchitectureforXMLBinding),JAXM(JavaAPIforXMLMessaging), JAXR(JavaAPIforXMLRegistries),或者JWSDP(JavaWebServicesDeveloperPack)。

16. Familiar with different J2EE technologies, such as JNDI (JavaNamingandDirectoryInterface), JMS (JavaMessageService), JTA/JTS (JavaTransactionAPI/JavaTransactionService), JMX (JavaManagementeXtensions), and JavaMail.

17. Learn enterprise-level JavaBeans (EJB) and their different component modes:

Stateless/StatefulSessionBeans, EntityBeans (including Bean-ManagedPersistence[BMP] or Container-ManagedPersistence[CMP] and its EJB-QL), or Message-DrivenBeans(MDB).

18. Learn how to manage and configure a J2EE application server, such as WebLogic, JBoss, etc., and use its additional services, such as cluster classes, connection pools, and distributed processing support. You also need to understand how to package and configure applications on it and be able to monitor and adjust its performance.

19. Familiar with different useful APIs and frame work to serve you. For example, Log4J (logging/tracing), Quartz (scheduling), JGroups (networkgroupcommunication), JCache (distributed cache), Lucene (full-textsearch), JakartaCommons, etc.

20. Familiar with aspect-oriented programming and attribute-oriented programming (both are abbreviated as AOP), as well as their mainstream JAVA specifications and implementation. For example, AspectJ and AspectWerkz.

21. If you are going to dock or be with an old system or local platform, you need to learn JNI (JavaNativeInterface) and JCA (JavaConnectorArchitecture).

22. Familiar with JINI technology and its related distributed systems, such as mastering CROBA.

23. JavaCommunityProcess(JCP) and its different JavaSpecificationRequests(JSRs), such as Portlets(168), JOLAP(69), DataMiningAPI(73), etc.

24. Familiar with a JAVAIDE such as sunOne, netBeans, IntelliJIDEA or Eclipse. (Some people prefer VI or EMACS to write files. Whatever you use:)

25. JAVA (to be precise, some configuration) is verbose, it requires a lot of manual code (such as EJB), so you need to be familiar with code generation tools, such as XDoclet.

26. Familiar with a unit testing system (JNunit), and learn different generation and deployment tools (Ant, Maven).

27. Be able to understand and proficiently operate and configure different operating systems, such as GNU/linux, sunsolaris, macOS, etc., as a cross-platform software developer.

28. Familiar with some software engineering processes often used in JAVA development. For example, RUP (Rational Unified Process) and Agilemethodologies.

29. Keep up with the pace of java development, such as in-depth study of javaME, and the application of various new Java specifications and technologies, such as the new web rich client technology.

30. Some understanding of opensource, because at least many technologies of Java are directly driven by open source, such as java3D technology.

Three, architecture technology learning

1. Team development

Techniques and learning skills summarized by a highly paid Java programmer with 25K or more

2. B2C mall actual combat

Techniques and learning skills summarized by a highly paid Java programmer with 25K or more

 

3. Architect Gong Ji topic

Techniques and learning skills summarized by a highly paid Java programmer with 25K or more

4. Topic on Microservice Architecture

Techniques and learning skills summarized by a highly paid Java programmer with 25K or more

 

5. Topic on Open Source Framework

Techniques and learning skills summarized by a highly paid Java programmer with 25K or more

6. Topics on high-performance architecture

Techniques and learning skills summarized by a highly paid Java programmer with 25K or more

Pay attention to the public account: Kylin changes the bug, and receives and obtains the previous Java advanced architecture materials, source code, notes, and videos. Dubbo, Redis, design patterns, Netty, zookeeper, Spring cloud, distributed, high concurrency and other architecture technologies. Finally, anyone who likes me can get a good offer~

Guess you like

Origin blog.csdn.net/QLCZ0809/article/details/112500108