It has been 10 years since I started to contact Java to learn such a classic program as helloworld.
I heard a lot of lectures from Daniel and saw the high programming speed on the keyboard.
Was shocked. When programming becomes more and more physical, we can still have our own ideas, but also cultivate for the Java System Level
Programmer? Learn and cultivate the following knowledge and skills to help you reach your aspirations as soon as possible.
I. Java Language Learning
Thread, serialization, reflection, network programming, JNI technology, container (MAP, list, iterator), Class Loader
(Classloader), input/output stream, and garbage collection mechanism. I have a deep understanding of the mechanism and have at least done project applications. Yes
Having experience in performance optimization for Java projects, at least master the use of a performance monitoring tool and be familiar with JVM parameters.
You can specify different garbage collection mechanisms and
Differences: familiar with JVM parameter optimization.
Ii. J2EE
It is best to know how the JDBC specification works. In the face of Oracle databases, if you tell you that the JDBC driver is unavailable, you
We also know that the OCI driver can be used. Familiar with common SQL statements, JMS, JNDI, and other components, master a set of web
Sending mode, from the front-end to the back-end, capable of integrating such a framework. Understand and master MVC ideas, such as SSH
Now we have the MVC hierarchy, and you almost don't need to implement it on your own. If you develop a simple swing program, you can
It means that you have mastered the essence of MVC. Ability to build your own MVC mode in J2EE front-end development.
What is Web2.0 and what is SOA, SAAS, and SAAP?
Iii. Understanding and rational use of design patterns and UML modeling
Understand and understand several basic principles contained in the design model, such as the Lee's replacement principle, the open and closed principle, and the synthesis and Reuse Principle,
The dependency inversion principle is well understood and can be illustrated by examples. For common design modes such as factory mode and Singleton mode
The observer mode, the responsibility chain mode, and the bridge mode know how to use them flexibly and what is callback ). Last use
To summarize the design model,It is designed to make the software easier to be understood and maintained by others.
Nature is the communication between programmersIf a designs a module B in the factory mode to replace it, a just needs to say that the module is
Factory mode implementation, B should be much easier to maintain, so the design mode is about communication, not about code. Avoid abuse
Use the design mode. Learn to use UML modeling tools to familiarize yourself with at least one URL modeling tool.
4. Focus on user experience, master the kiss principles, and understand the Occam Razor principles
The customer is God. We have been shouting for N years, And the programmer's labor results need to be converted to service.
To provide customers, user experience is crucial. It is often seen that functions are implemented, and software is difficult to use. programmers have
I am not an artist for a good reason. In fact, I can't beat the user experience together with the 8-pole artist, and Foxmail was successful.
To a large extent, the user experience is successful, friendly, and clear. The design of strong fault tolerance and error correction is good.
User Experience is a perfect solution. As the name suggests, dummies use a camera, which is famous for its usage.KISS Principle (keep it
Simple and stupid)It means that the uidesign should be simple and clear, and the dummies will know how to use it at a glance. Think about what we have done.
I don't know how to use it. The other is the most famous example of iPhone design, which is
Typical Occam Razor design principles for man-machine interaction.
V. Automated Testing and Software Configuration Management (SCM) Implementation
Know what Software Configuration Management is, know Hudson-http://java.net/projects/hudson/use the tool SCM,
Know how to obtain test code coverage, Java valid code lines (NCSs), firebug, jdepend, and other tools
Integrate ANT/Maven. Be familiar with and focus on using JUnit unit testing during development and understand white box testing specifications.
6. Familiar with common network communication protocols
For the HTTP protocol, I know what is the difference between post and get. I have read the RFC documents related to HTTP. Learn to use sniffer
Tool to view data packets, help find and Debug Programs, know the difference between TCP and UDP, know and understand the e-mail
Learn about mime and base64 encoding with accepted protocols such as SMTP, POP3, and IMAP. Know how multicast works
.
7. Market-oriented, always eager for New Technologies
With the rapid development of computer technology, software developers in the IT industry must constantly charge themselves and update themselves.
To keep pace with the times, while also facing the market,Ren zhengfei, president of Huawei, said: "Huawei's technical innovation is essential.
To the Market"As a programmer, there must also be market awareness. Many people regret that they did not give it when Android came out.
Focus on learning. Many programmers who have been paying close attention to Android development technologies have received great returns. Now HTML5
With the support of more and more browser manufacturers, do you keep up with the pace and start learning.
8. Be humble. You must be a teacher.
Qiao bangzhu said that he should keep his initial mind and study hard. I should be more modest and keep it developing with each passing day. In your eyes
The technology that is impossible to implement may already have some ideas. To be modest, you will have the opportunity to learn from others' strengths.
Cloud:Benefits. A well-known high man even said"Lower-level, upper-level intelligence. Never reject
Helps people around you solve problems. solving problems is the fastest way to progress. Don't give up any time to improve your skills
Skills and capabilities.
9. forming the habit of summing up and constantly reflecting on it
When I went to school, the teacher often asked me to write a summary and did not summarize it. That's why I didn't mention this issue any more after work,
We recommend that you have a summary for yourself after each project is completed, summarize what you have learned in the project, and ask if you can
Can you build such a system by yourself without the help of others, and be familiar with and familiar with the project.
Technology, even if some things are not completed by you, but nothing can block a mind for knowledge, the summary should be as detailed as possible
Record how you solve the problems one by one. Can you solve or avoid them quickly next time?
This is a problem. There is a summary to improve, Confucius said: Learning and thinking is not the case, if we only coding to vomit blood, no
Thinking, without summing up and improving, there will never be any essential improvement,Qin xiangli Si has cloud: "Taishan does not let the soil, so it can
As it grows, the river and the sea will not choose the fine stream, so it will become deeper"And gradually sum up to make quantitative changes lead to qualitative changes.
10. mathematical skills and algorithm knowledge
Developing applications in any programming language is inseparable from the support of Core algorithms. Many foreign software can only be written on the UI.
For a few years, people can imitate the program, but the real depth under the UI is different, I believe that you can do it without imitating it.
The reason is that we are becoming more and more sophisticated, because we have no core competitiveness. For programmers, algorithms and mathematics are obviously
Is one of his most important core competencies. Introduction to algorithms, programming Pearl, and other books are worth ten times. Microsoft Asia
In a speech, the head of the Visual Computing Group of the institute said that their recruitment criteria were"Good mathematics and Programming
Good attitude". But the common reality is-The Microcomputer principle is in crisis, so the assembly language will not change, and the real-time function learning will
10 times. Basic computer knowledge is widely ignored. Start learning from today ......
11. Java code decompilation and code protection
Java compilation generates bytecode, so it can be easily reverse engineering (decompiling). Microsoft's C # production dll can also be
To be easily decompiled. Due to this reason, many Java open-source code protection tools are generated, and proguard is
Among them, Google has been integrated into Android for Java code protection. visit here to learn more:
Http://proguard.sourceforge.net/
12: strive to become the backbone of an industry or field
In the face of a long career, if you do not want to be eliminated, you must have the ability to eat all over the world and choose what you are interested in.
The development of computer technology is very detailed today.
Framework or open source HTTP Server Source code, or have studied web crawler source code or WebKit kernel.
You. If you are a financial, enterprise ERP, securities, insurance, and mobile app developer,
Don't worry about work. This knowledge does not change with the language, and strives to be a core-competitive Java programmer.
13. Improve language and written expression skills and master basic project management knowledge
The ability to express documents and languages is the best way to present your skills to the outside world. Many programmers have high programming skills and express their skills.
In addition to the power of the network community, the success of Linux also benefits from
The big foundation writes letters and promotes the promotion. If there is no good written language skills, even if the Linux system is excellent,
But it cannot be accurately expressed. without the support of major foundations, Linux will be like today. So pay attention
Documentation, focusing on improving communication and expression capabilities, can become a Java System Programmer. Master the basic 2/8 principles and learn
The module will be allocated to different persons in detail, anticipate and control project risks, grasp the project progress, optimize the process, and make appropriate
Inter-management, knowledge of TDD, familiarity with agile development mode, and regular software development mode.
14. Good understanding of English and good reading and writing skills
English is the computer's mother tongue. mastering English is helpful for reading English materials and learning new technologies. My advice is to try my best.
Reading the original English version book may be difficult in terms of algorithms, but it may be difficult for others, such as design patterns, software engineering, and OO.
Programming ideas, etc. Try to read the original version, improve your English level, visit developers, code projects, programmers,
PC-magazine and other English it websites. English is definitely a skill you must cultivate and improve. In addition, English is good for foreign-funded enterprises.
It is particularly important that foreign languages are good enough to break through the professional bottleneck in foreign-funded enterprises and develop upwards.