Java System Programmer's Way of practicing

Source: Internet
Author: User

Starting from 2002 to touch the Java Society HelloWorld such a classic program to now unknowingly has been 10 years, ten years in my own ears heard a lot of Daniel's speech, saw the project of the man-in-the-man on the keyboard to fly the speed of the programming, then was shocked. When programming becomes more and more physical, can we still have our own ideas and be able to practice Java system-level programmers? Learn and cultivate the following knowledge and skills to help you reach your wishes at an early date.

One: Java language learning

For Threading (thread), serialization, reflection, network programming, JNI Technology, containers (Map,list, Iterator), class loaders (ClassLoader), input and output streams, garbage collection mechanisms , there is a deeper understanding, At least have done project application. Have experience in the performance optimization of Java Project , at least master the use of a performance monitoring tool , familiar with JVM parameters , at least know that the JVM can be started to specify a different garbage collection mechanism, and the differences between different garbage collection mechanisms, familiar with JVM parameter optimization.

II: the Java EE aspect

It's a good idea to know what the JDBC Specification is about, and if the Oracle database tells you that the JDBC driver is not available, you also know that the OCI driver is available. Master Common SQL statements, familiar with JMS, Jndi and other components, Master a set of Web development patterns , from the foreground to the backstage, have the ability to integrate such a framework. Understanding and mastering the MVC idea , like SSH has already implemented the MVC hierarchy, hardly need you to implement again, assuming you develop a simple swing program, you can MVC to show that you really mastered the essence of MVC. Ability to build your own MVC pattern in Java EE front-end development, know what WEB2.0 is, what SOA, SaaS, SAAP, etc. mean

Three: Understanding and reasonable use of design patterns, UML modeling

Know and understand the design patterns contained in several basic principles such as: The Richter replacement principle, open and close principle, synthetic reuse principle, the dependency inversion principle has a good understanding, and can be illustrated. For common design patterns such as Factory mode, singleton mode, observer mode, responsibility chain mode, bridge mode, etc. know the flexibility to use and understand what callbacks are (Callback). Finally with an expert words to summarize the design pattern, it is to make the software easier to read by others, easier to maintain and produce, design mode is the nature of communication between programmers, if a with Factory mode design a module B to replace, a as long as the module is a Factory mode implementation, b maintenance should be much easier, So design patterns are about communication, not about code. Avoid abusing design patterns. Learn to familiarize yourself with at least one URL modeling tool using UML modeling tools .

Four: Focus on user experience, master the kiss principle, know the principle of the Europa Razor

The customer is the slogan of God. We have been shouting for n years, the work of the programmer ultimately need to convert to service to provide customers, user experience is very important, often see the scene is the function of implementation, software is difficult to use, programmers have a very good reason I am not art, Actually pay attention to the user experience and art eight poles also can not hit together, foxmail success in a great extent is the user experience of success, friendly, clear user tips, strong fault tolerance and error correction design is to get a good user experience only way. Shoot camera as the name implies that fools will use, this on the famous Kiss principle (Keep it simple and stupid) meaning UI design to be straightforward, a fool to see how to use, think of what we do out of things, control instructions do not know how to use. Another is the most famous example of the iphone design, which is the typical Europa razor design principle to accomplish human-computer interaction.

V: Automated testing and software configuration management (SCM) implementation

Know what is software configuration management, know Hudson –http://java.net/projects/hudson/Use the tool SCM, know how to get test code coverage, Java valid code line number (NCSS), Complete firebug, Jdepend and other tools to integrate Ant/maven. Familiar with and focus on the use of JUnit unit tests in the development process to understand white box test specifications.

VI: Familiar with the common network communication Protocol

For the HTTP protocol , know what the difference between post and get is, and read the HTTP-related RFC document. Learn to use the Sniffer tool to view packets, help find and Debug programs, know the difference between TCP and UDP, know and understand e-mail to send and accept protocols such as SMTP, POP3,IMAP and other protocols, understand MIME and Base64 encoding. Know how the multicast is going to happen.

Seven: Market-oriented, always eager for new technologies

With the rapid development of computer technology, as the IT industry's software developers to constantly recharge their own, update their technology and the times to keep pace, while also facing the market, Huawei President Ren said-"Huawei's technological innovation must face the market", as programmers should also have market awareness, Many people regret that they did not focus on learning when Android came out. Many programmers who have been concerned about the development of Android for so long are rewarded. Now HTML5 get more and more browser manufacturers support, you have to follow the footsteps, start learning.

Eight: Stay Humble, the three of us will have my teacher .

Amid said he wants to keep beginner's mind, study hard, I should keep humble, it technology development, in your eyes impossible to achieve technology, perhaps others have already had ideas. To remain humble, there is the opportunity to absorb the strengths of others, the Ancients have a cloud: Full recruit damage, modest benefit. A man of enlightenment is to say the "Next man, on the wisdom" of the Zen language. Never refuse to help people around you solve problems and solve problems is the quickest way to progress. Don't give up any chance to improve your skills and abilities.

Nine: Develop the habit of summing up, constantly reflect on

School when the teacher often let write summary, also did not summarize why, so that after work no longer mention this thing, suggest each project after you have a summary, summed up what they learned in the project, ask whether they can complete in the case without the help of others to complete the system to build their own, Whether you are familiar with the technology used in the project, even if some things are not you responsible for the completion of but nothing can stop a knowledge of the heart, summary to try to detail how you encounter those problems is how to solve the problem, the next time you meet whether you can quickly solve or avoid such problems. Have a summary to improve, Confucius said: "Learning without thinking is not the case, if we just coding to vomit, do not think, do not summarize the improvement, can never have the essence of improvement, Qin Reese Cloud:" Taishan does not let the soil, it can become its big, the river sea not choose fine flow, it can be deep ", drip accumulation constantly summed up can lead to qualitative change

Ten: Mathematics Knowledge and algorithm

In any programming language to develop applications, are inseparable from the core algorithm support, a lot of foreign software from the UI alone, I am afraid to write a few years of the program can be imitated, but the UI of those real depth, I believe it is not you want to imitate can imitate, why we increasingly cottage, because we have no core competitiveness, For programmers, algorithms and mathematics are clearly one of his most important core competencies. "Introduction to Algorithms", "Programming Zhu Ji Nanxiong" and other books are definitely worth reading 10 times. Microsoft Research Asia Vichier in a speech that they recruit the standard is "Miyoshi students – good math, good programming, good attitude." But the reality of the general situation is-the microcomputer principle of the crisis, assembly language will not change, real variable function 10 times. The basic knowledge of computer is universally neglected. Let's study hard from today ...

11: Java code Anti-compilation and code protection

Java compilation produces bytecode, so can be easily reverse engineering (anti-compilation), Microsoft's C # production of DLLs can be easily decompile. Officially because of this cause a lot of Java Open Source Code protection tool, and Proguard is one of the best, has been integrated in Android for Java code protection by Google, visit here to learn more: http://proguard.sourceforge.net/

12: Strive to become an industry or domain backbone

In the face of long career, want to not be eliminated, must have a recruit to eat all the world's ability to choose their own direction of interest, efforts and in-depth research, the development of computer technology to today has been subdivided very fine, Efforts to study a Java open source framework or open source HTTP Server source code or research the web crawler source or WebKit kernel, no one wants you. If you are very knowledgeable about finance, enterprise ERP, securities, insurance, mobile application Industry application development Business people, like not 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 communication skills, master the basic project management knowledge

Document and language ability is the best way to show their ability to the outside world, many programmers have high programming skills, the ability to express, Linux can succeed, in addition to the power of the network community, but also due to the Linux author himself to the major foundations of letters, promotion, Imagine if there is no good written language skills, even if the Linux system is excellent, but can not be accurately expressed, losing the support of the major foundations, Linux will be like today such a good situation. Therefore, it is possible to become a Java system programmer by attaching importance to the documentation and enhancing communication and expression skills. Master the basic 2/8 principles, learn to assign modules to different people, anticipate and control project risk, grasp the project schedule, optimize the process, reasonable time management, understand TDD, familiar with the agile development model, the general software development model.

14: Master English, good reading and writing ability

English is a computer's mother tongue, master English for reading English information learning new technology greatly help, my suggestion is to read the original English book, if the algorithm is likely to be difficult, but other like design patterns, software engineering, OO programming ideas as far as possible to read the original, improve their English level, a lot of access to developers, Code project, Programmer's Paradise, pc-magazine and other English it sites. English is definitely a skill that you must cultivate and improve. In addition, English is particularly important in foreign-funded enterprises, only foreign language is good enough to break through the professional bottleneck in foreign enterprises, upward development.

Transferred from: http://bbs.csdn.net/topics/390103026

Java System Programmer's Way of practicing

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.