What developers need to know

Source: Internet
Author: User

In view of the many silly questions that I often see, for example, what is the XX language used? Is the xxx language outdated? (To be honest, there are all these questions for beginners .)

Here I will talk about something developers should know. But these are just what I saw and thought of on weekdays. Some deviations are inevitable. Please forgive me.

Software development is a comprehensive design. Software development, not just writingCode. I learned how to use C.Programming LanguageProgramming is only the first step and the most basic requirement.

There are many other things. In my opinion,ProgramThere are roughly two types of members. When a job is assigned to a programmer, a programmer knows why. The other way is to know how to finish the job.

The difference is big. If you know why you want to implement it like this, it at least means that you can hold your tasks in the software engineering. If you only know how to complete it. That means you can finish the job. If you want to do well, you won't be able to do it. The first programmer must be able to do well. Optimal. Let's take a look at the following articles, hoping to help everyone.

First, what is the key to programming?

Programming can be done without implementing the code. I quoted my friend as saying, "programming is a balance ."

This is his explanation. "Balance is a very important part of the software. From the perspective of balance, thinking about programming will restrain you from using the latest technology, the latest system, and other ideas. From the perspective of balance, as long as your software has a bottleneck, your program will fail. The first thing you need to consider is how to eliminate some possible bottlenecks in the program. On this basis, you have the right to consider improving the performance of your program ". Even if you have the latest technology, the best system, if your code doesn't work. As long as your program has a performance bottleneck, nothing is done.

What I want to say here is that the program is written by humans. If your skills are not good, no good off-the-shelf technology can be used. Even if it is used, you may not be able to make it clear. Why is it used like this?

Second, how to program?

I think a lot of people will surely get rid of this problem in their hearts. I thought this kid was tired. It's okay. Now let me know. How to program is not to say how to write detailed code, but how your program is formed. I want to write it here. Someone once delayed me. However, writing code takes less time in the software production process.

I personally think it should include the following parts:

1. Market Potential Analysis: Can you sell the software you want to write, or what kind of software I want to write?

2. Competitive Analysis of similar products to see the advantages and disadvantages of your similar products, and design the selling points of your software. (If there is no selling point, there is no need to continue)

3. Write out detailed software processes and data processes for software design. MainAlgorithm. Software Architecture

4. Do not write the code. 5.bug testing and trial run. 6. Sell.

These are market, system analysts, and programming. But in many small companies, the principle of doing things in small companies must be respectful. If you know more about it, there is no mistake.

For example. Suppose I want to write a shared software. What should I do?

1. Think about whether the software I want to write has money. The time is between 15 days and 30 days. During this period of time, we must take a good look at the market. This is the most critical step.

2. Well, I have decided to write XXX software.

3. Find several similar software that is most threatening to XXX on the Internet and analyze their advantages and disadvantages. They need their advantages, not their shortcomings. Design your own software selling points.

4. According to the above analysis results, we will probably list the menus that xxx software should have.

5. Write the basic functions of version 1.0 and the functions of version 1.x. Don't do all the functions at once. In this way, your software will never be born :)

6. Select a programming language (let's take a look. The programming language is only available here)

7. Search for similarSource code, Algorithm. RFC standard documentation. Thoroughly understand. The good reuse of software code and algorithms will make you get twice the result with half the effort.

8. Write detailed design documents for XXX based on your selected language, algorithm, and standard documents. The document must be used. Otherwise, your planning will be poor. Planning is not strong, so it is more random. The software is prone to failures.

9. write code according to design documents 10. Test and sell

Third, where are the materials and standard documents?

The world of code is ever-changing. Before you start a new project, you can find code with similar functions. In this way, you can better improve your program. Sometimes it can speed up the process. When the new technology comes out, you need to take a look at the relevant documents. Although do not fully understand its functions and benefits. But you must at least know where new technologies can be used. How to use it. What other technologies can be used together to better play its role. Not all of the software is written by yourself. Many features are a standard, maybe a standard algorithm. Encryption and decryption algorithms, such as graphics, multimedia, and encryption. Some are a standard file format, such as various image files and multimedia files. There is also a standard convention. Common network tools such as email and telnet.

So you need to know where you can find the information you want. I wrote everything I know here.

Source code andTechnical materialsSite www.vchelp.net GBHttp://www.csdn.net/GBHttp://www.codeguru.com/
EnHttp://www.codetools.com/EnHttp://www.dexv.com/En msdn.microsoft.com enHttp://www.programmerheaven.com/
EnHttp://www.freshmeat.net/EnHttp://www.sourceforge.net/En www-900.ibm.com/?works/
GB forum and standard, organized by www.linuxaid.com.cn GBHttp://www.linuxbyte.com/GBHttp://www.aka.org.cn/
GBHttp://www.rfc.org/En GB various maillist, IRC

Fourth, tools and knowledge tools to be mastered can make your work more efficient and error-free.

You may have used the following tools, but you may not have used them. But it does not matter. Fellow laruence will teach us how to use it. (Write whatever I think. No order issues)

1. The database creation tool of the database tool represents the powerdesigner database analysis tool. Many large databases will carry.

2. flowchart design stands for Visio 2000, smartdraw

3. The CASE tool represents rose

4. Code Analysis tools represent bounderchecker (for VC Delphi), smartcheck (for VB )......

5. the editor represents VI, Vic, and ultra edit 6. source code management stands for VSS and CVS 7. programming tools. Don't let me talk about it. 8. I have never used other tools, but I may have used many tools in a certain industry. (Nonsense :))

Knowledge, because the development direction of each person is different, the knowledge structure of most people is different. But there are several points that should be the same.

1. The main New Technologies of English proficiency, documents and materials are all started in English. If you want to learn better updated knowledge and skills. You cannot understand English. And don't expect someone to translate it for you. Generally, people who understand the materials do not need to translate them. People who do not understand the materials cannot translate them. Translated by people who do not understandArticleI don't think you can. Therefore, most of the documents are in the original English text. Of course, many people are translating these articles, but for so many materials, the translation is only a small part. Asking for help is not as good as asking for help. There is no error in learning more English.

2. design capability though, in general, formal corporate systems analysts do design (I guess ). But 70%-80% of small companies are not necessarily. Know a little about software engineering and how to use some document design tools. Or you need to know which design documents should be available. It is also very beneficial. If you have learned these things, it's your own. And these are the benefits of higher salaries. A lot of money. :)

3. Chinese writing ability as a programmer, most of the time is writing code. However, coding comments, various documents, test reports, instructions, and user manuals all require good writing skills. When using tools such as email, BBS, and QQ to communicate with people, if they are unclear, the communication will be even more difficult. It is also a problem to improve the level.

4. Not many people have learned how to work. This is not very realistic. At present, society does not allow this. It is common to study while working. Maybe many people learn to do something at work. This is also true for many skills. In addition, many new projects are coming. The arrival of new technologies requires us to adapt to the new working environment and new work requirements. If you do not have a good study, it is easy to be kicked off by a project. Haha.

In addition, when your boss asks you to do something you don't know, you need to tell him that you don't know, but you will fix it within XX days. It doesn't matter. learning is also a kind of outstanding performance.

5. Know what you want to do, what you want to learn, and what you want to develop.

In the world, software technology is as much as the hair of nine cows, and maybe more. If we want to know everything. Oh, my God, I don't want to live anymore.

As a software engineer or a beginner. It is important to know where you want to go. Otherwise, it is easy to starve to death in the software technology maze. In the end, I had to leave this line. This is not good.

Generally, as a software engineer, you can master the development capabilities of one or two languages. In addition, unless you want to develop software technologies (these jobs are the richest and most popular in large companies ). If you are not doing software technology R & D, but writing general applications, you don't need to pay too much attention to what new technologies are coming out today, and what new technologies will be coming out tomorrow. You only need to know these things. You can understand this. It is not too late to pay attention to the useful areas in the future. Select a development direction and strive to move forward. Don't be tempted by a variety of new technologies. To tell the truth, many so-called new technologies, such as how they are good, how they are excellent, and many times there are commercial behaviors in them. You must make your own decisions. If you cannot determine what to do, see the following.

Sixth: I know that the most troublesome thing for beginners is how to choose one kind of studious and promising software technologies (Qian Tu ), the technology that can do some great things to open up the unknown field of software development. This troublesome problem is rarely solved. If you can meet a good teacher, it is your blessing and you must seize this opportunity. If you have to make this decision by one person, you can only proceed with caution. However, C and C ++ are a good choice.

Another troublesome problem for beginners is that many of the new technologies and new changes that I have made when I chose them. What should I do. This is basically unknown. You can only slowly accumulate data by yourself. Once you understand what these new technologies are for, and what those new changes are. You will not be afraid of these new things.

I always insist that if I know more, my strength will be even greater. I will not be afraid of changes. If you are unable to judge something because of insufficient information, do not forcibly judge it. It is not good for you.

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.