1． You may often find that , After writing a piece of code , There are a lot of errors when compiling the program （ reason ： Not familiar with grammar ）
── don't worry , This is something that every programmer has to go through , You need to be more patient and careful , Read each line of code carefully and correct it , This is very important , This will develop your ability to understand code , So read the program often , Don't wait for the program to run before you know the results of your program .
── How to avoid it ： Before you write the code , To seriously study the grammar of computer language , Such as the key point , Fallibility , Easy to forget . At the same time, you should write your own test code , Try not to copy other people's code examples . Even copying , As like as two peas in every line, we should try to avoid copying each other . Instead, write different examples of code examples
such as ： At school java Knowledge point , You'd better build a project and write all the code into it , In order to control the analysis of learning
2. You may often find that , After writing a code , The compiler passed , However, there are many logical errors in the operation .（ reason ： Wrong understanding or logical thinking ── Improve logical thinking and understanding ability
3. Get a demand and don't know where to start ( Not very familiar with the system )
4. It often takes a long time for a small mistake , I don't know where to look , No results
5. What is often done is to have something but not to have something （ Incomplete consideration ）
6. Sometimes, for the realization of a special function module, I checked the working time but did not find out the result ( The information for future reference is incomplete )
7. Do you need the project manager to ask you to do something sometimes , You did something totally unnecessary ?（ Communication is not timely ）
8. Sometimes in order to complete a task ahead of time , Work late into the night , But tomorrow it's inefficient , It's better not to work overtime ( Pay attention to rest )
9. Sometimes I think I have measured it many times , It's guaranteed that there won't be a mistake , But after testing by the tester, there are many mistakes （ Lack of care or test method problems
10． Sometimes to avoid mistakes , It's often twice as long as writing code for testing （ Wrong method ）
11. Sometimes when a piece of code is written to quality management personnel, it is rewritten because the code is not standardized enough ?（ The code is not standard enough ）
It can be summarized as two key points ： One is to develop good programming habits , The second is to improve the content of knowledge for their own work .
One . Good programming habits
1. Make a draft before you write the program , Better on paper ： The purpose is to consider the implementation of the program as a whole .
If the company adopts a modeling approach , There are modeling tools （rose ,visio ） That's the best .
2． take a rest , Don't waste your rest time , Using their own time will not only write code because of inattention and often appear quality problems , Logic often goes wrong
We should be good at collecting relevant professional development information , In order to solve problems faster and better in the future . Advocate that the company can provide tools for internal knowledge communication （ Such as knowledge forum , Internal instant messenger ）; Promote the sharing of technical data within the company , Improve the ability to solve problems .
4． Improve the ability to grasp the overall situation of the modules written , In writing programs, it is best to design them in detail and then release them .
5． Learn to communicate with others, such as engineers , Learn different ways to communicate , Improve communication efficiency .
Two . Different goals, different knowledge emphases
( One ） target ： programmer
duty ： According to detailed design document , Or according to the senior programmer's design to carry on the related development .
1. Learn to read the relevant requirements documents and detailed design documents .
be careful ： You have to get the point by reading these documents , Key points , Correlation is easy to leak
2. If the company can use it UML To communicate with each other , You have to understand it UML Related knowledge of , Be careful not to be right UML In the case of a half known picture , Just write the code , That would be a terrible mistake .
3. Learn the basic knowledge of the corresponding computer language , as ： Program syntax , Key points , Fallibility , How to deal with the corresponding error , How can I write the key on the program stronger
4. If you use the contents of the database , At the Institute sql Under the premise of , Try to learn the relevance of database principles sql content , Of course, in order to improve the query ability, you can also add a little bit
If you use object-oriented language, you'd better learn some design patterns , This can increase the extensibility of the code , And maintainability , Be able to understand the design principles between modules in the detailed design, which can also improve the correctness of the content of the module .
6. You must learn the common coding standards within the company .
7. It's better to learn how to do unit testing . You must be familiar with the relevant unit testing tools .
8. To constantly summarize the relevant knowledge , At the same time, we must sort out and study the relevant materials , In the materials after learning, you can find the answer to the question more quickly when you encounter a problem .
9. In the development, you must record the common mistakes and solutions , This will help you avoid mistakes in the future
10. When you write code, you must keep it in mind , So you can get used to it , Speed up your code
11. When operating on the database , Try to share them Connection, And small to reduce Connection Number of
( Two ） target ： Senior programmer
duty ： Detailed design of system related modules for requirement document , And responsible for the programmer's support and guidance and related core module writing, so not only to learn the knowledge of the relevant programmer , At the same time, we should learn more difficult knowledge .
1． Knowledge of programmers , Such as design patterns, you must not simply read to understand , You also need to apply design patterns to the relevant modules for detailed design .
2． To learn relevant detailed design tools, do targeted , This can better improve the expression of their own design
3． In order to improve the operation efficiency of the system, the
a. How to build the table structure of database to make the application query sql
Faster . At this time, we should seriously study the same database principle , Don't think that the higher the database paradigm is, the better the efficiency of the system will be , Sometimes appropriate table redundancy can greatly improve the query efficiency of the system .
At the same time, index appropriately , view , Stored procedure is also one of the ways to improve the efficiency of database query
b. Learning multithreading programming , But don't think that the more threads you have, the faster you will run , After the number of general threads exceeds a certain number , Instead, the system will slow down .
In order to apply many threads , Operating system this book also about synchronization and related process and thread knowledge is essential .
A well designed program, a good algorithm , It's better than starting to solve the same complicated mathematical problem , It's much harder , So we should learn the knowledge of mathematics （ Such as linear algebra , discrete mathematics , probability theory , mathematical statistics ）. More in-depth calculation methods , And data structure , Let the math problem be solved by computer .
4． In order to make the system design more scalable , stability , Design patterns and software engineering are indispensable things . Therefore, design patterns must be used for pattern level design .
5. If the company uses Rose (UML) If we design , You're interested in UML
Must be very accurate , At the same time, you need to fully communicate with the procedures in the group UML Concept and application examples , Type map , Object graph , Write more notes on the meaning of the collaboration diagram to deepen your understanding of your design .
（ Three ） target ： System Analyst
duty ： Good relationship with customers , At the same time, we should have a correct understanding of the needs of customers , Choose the right development technology , At the same time, do a good job in communication with customers , Learn to persuade .
1. Learn to communicate with customers ： To ensure the correct communication between customers and ensure smooth communication .
2. To understand the needs to be able to correctly describe the pen down , And it's good for others . At this time, we should learn to use ROSE
The software modeling tool of etc . and powerdesign Database modeling tools such as . And related UML, Knowledge of data flow chart and related content .
3. We should not only have a comprehensive understanding of the customer's needs, but also have a considerable understanding of the possible changes in the requirements in the future .
4. After a comprehensive understanding of customer needs , Appropriate technologies should be selected for development ,：
At this time, we should learn all kinds of knowledge
a. First choice database ：db2,infomix ,oracle ,sql server,mysql Advantages and disadvantages of , You can choose the most suitable database and reasons .
Design database ： To be solid in the database theory （ Database principle , Database system design ） And related database design experience , Try to analyze the past database design as much as possible , Analyze the benefits of designing a database like this . This may be used
powerdesign And so on .
c. Write requirement specification document and outline design document , At the same time, we should learn to analyze the content of the relevant requirements specification document , How to calculate the employee hours , I usually use it project
To analyze the content of related projects .
d. Choose the appropriate program language and related architecture , The general mainstream architecture is J2EE and .net The corresponding advantages and the combination of them , If adopted soap
xml Carry out relevant combination , Or use java-com Bridge Call related functions . And the relative language advantages and disadvantages between them
e. According to the b/s,c/s Structure on the development of network impact related content to take
5. Learn to persuade , After all, customers are not all software experts , Sometimes their choice may not be right, so they learn to persuade each other , It is a necessary ability for system analyst .
Three ． example ：java Knowledge structure and learning process of programmers ：
( One ) Learn the necessary knowledge for related work
1．Java The basis of language （ Recommendation ：《 java Programming ideas 》） crux ：
（1.java Object oriented and corresponding program reality
（3.java network socket
（4. Application interface
2． Learn to use intelligent integrated development tools jbuilder,eclipse And so on , According to the content of the data , Write your own code similar to the routine , But be careful not to copy it directly , Be sure to write it yourself .
At the same time, it is better to write in a project for comparison .
3． If you use b/s Structure needs learning jsp Knowledge of （ Recommendation ：《 JSP 2.0 Technical manual 》）
（1． Interface processing ：
a . HTML—— Hypertext markup language : Used to display pages such as ： hyperlink , form , Various signs, etc .
b. CSS——— Cascading style sheets : A set of formats that control the appearance of text . For beautification HTML page .
Verify the correctness of the form input on the client side .
（2．jsp element : as java Code writing , Corresponding mark ---jsp:include,jsp:useBean,jsp:setProperty,jsp:getProperty etc .jsp Several pairs of
(3. javaBean And in the jsp Call and related applications in .
(4. Other Technologies ：
a. How to operate database — use jdbc（ You may have to add some knowledge of the database , as oracle ,sql server, This includes how to write efficient queries sql, Stored procedures, etc ） ,
b. How to send email— use javaMail,
c. How to learn how to upload and download files with , If you do composition
d. How to operate xml -- use jdom and jaxp（ It is necessary to learn at this time xml The grammar of dtd etc. ）
e. How to call a remote method — use rm
f. How to carry out message service --- use jm
5. Other companies will use it J2EE The architecture of EJB As business logic
(1.EJB We need to distinguish between them
(2. struts MVC
(3. Hibernate Operation data
6． It's better to learn UML Learning to use Rose modeling