What developers need to know about the classic net pick

Source: Internet
Author: User
Tags documentation manual writing rfc

In view of often see a lot of silly questions, such as XX language for what, XXX language is not outdated? But to be honest, these questions are for beginners. )

I'm here to talk about some of the things that developers should know. But these are just the things I see and think about in weekdays. Inevitably some deviations, please forgive me.

Software development is a comprehensive one. Software development, and not just writing code. Learned to use C these programming language programming is only the first step, a most basic requirements.

There are plenty of other things to ask for. In my opinion, programmers can be roughly divided into two categories. When a job assignment is assigned to a programmer, a programmer knows why to do so. The other one knows how to get the job done.

And that's a big difference. If you know why you want to do this, this at least means that you can grasp the location of your task in software engineering. If you just know how to finish him. It just means that you can finish the job. If you want to do well, you won't be able to do it. And the first programmer is sure to do well. Do the best. Look at the following lines, I hope to help everyone.

The first thing to say, what is the key to programming?

Programming is not the implementation of the code is OK. Quoting my friend's word, "programming is a whole balance." ”

That's how he explains it. "Balance, a very important part of the software, thinking about programming from a balanced perspective, suppresses the idea that you want to use the latest technology, the newest system, and so on." Because from a balanced point of view, as long as your software has a bottleneck appears, your program is a failure. The first thing you should consider is how to eliminate some of the bottlenecks that may exist in your 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 is not. As long as your program has a performance bottleneck, it's equal to nothing.

What I want to say here is that the program is written by people. If your level is not good, the best ready-made technology will not be used. Even if you use it, you may not be able to explain why it is used in this way.

The second to say, how to program?

I think a lot of people see this problem, will be in my heart to scold the pieces of the pieces. I thought the boy was tired of living. It's no harm to scold. Listen to me for a moment. I say how to program is not to say how to write detailed code, but your program finally how to form. I want to write here again someone put me to the mausoleum late. But actually writing code is in the software production process to occupy a relatively small piece of time.

I personally feel that there are several parts to be included:

1. Market potential analysis and analysis of the software you want to write can not be sold, or say I want to write what kind of software?

2. Competitive analysis of similar products look at the pros and cons of your products and design the selling points of your software. (if there is no selling point, there is no need to continue)

3. The software design writes out the detailed software flow, the data flow. The main algorithm. Software architecture, etc.

4. Write code not to mention the 5.bug test and trial run 6. Sell

These things, some of the market, some system analyst, and some programming. But in many small companies, in the small business must be respectful of the principle of doing things. It is not wrong for us to know a little more.

To give a specific example. If I want to write a shareware. What am I going to do?

1. Think about the software I have to write there is no "money" way. Time in 15 days-30 days or so. In this period of time must do a good job of market research. This is the most important step.

2. OK, I have decided to write the XXX software.

3. Find some of the most dangerous software for XXX on the internet and analyze their advantages and disadvantages. To their advantage, do not have their faults. Design the selling point of your own software.

4. According to the results of the previous analysis, a general list of the XXX software should have the function table

5. Write the 1.0 version of the basic ability table, write 1.x function table. Do not do all of the functions at once, so that your software will never be born the opportunity:

6. Choose the programming language (see, the programming language comes out here only)

7. The Internet to find similar source code, algorithm. RFC Standard documentation. Digested The good reuse of software code and algorithm will make you more effective.

8. According to your selected language, algorithm, standard documents, write the detailed design document XXX. The document must be used, or your planning will not be strong. Planning is not strong, random on the big. Random, software is easy to fail.

9. Write code 10 According to the design document. Testing and selling

Third, where there is information, standard documents

The world of code is ever-changing, and before starting a new project, you can look for a code that looks like a feature. This will better improve your program. Sometimes you can also speed up your progress. And when the new technology comes out, you have to look at the relevant documentation. While not fully aware of its functionality, benefits. But you should at least know where the new technology can be used. How to use. With what other technology can better play its role. Writing software is not all things are written by themselves. There are a number of functions that are a standard, perhaps a standard algorithm. Like graphics, multimedia, encryption and decryption algorithm. Some are a standard file format, like a variety of image files, multimedia files. There is also a standard agreement. such as email, telnet and other common network tools.

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

Source code and technical data site www.vchelp.net GB http://www.csdn.net/ GB http://www.codeguru.com/
En http://www.codetools.com/ en http://www.dexv.com/ en msdn.microsoft.com en http:// www.programmerheaven.com/
En http://www.freshmeat.net/ en http://www.sourceforge.net/ en www-900.ibm.com/developerworks/
GB Forums and standards, organization www.linuxaid.com.cn GB http://www.linuxbyte.com/ GB http://www.aka.org.cn/
GB http://www.rfc.org/ en gb various MAILLIST,IRC

The tools and knowledge tools you need to master can make your work more efficient and less error-prone.

The following tools you may have used, perhaps you have not used. It doesn't matter, though. The veteran will teach us how to use it. (I'll write whichever I want.) No order problems)

1. Database Tools build Database Tools, representing PowerDesigner database analysis tools. Many large databases will be brought in.

2. Flowchart Design represents Visio, SmartDraw

3.case Tool Rep Rose

4. The Code analysis tool represents Bounderchecker (for VC Delphi), SmartCheck (for VB) ...

5. The editor represents VI, VIC, Ultra edit 6. Source Code Control Representative Vss,cvs 7. Programming tools, don't let me say more. 8. Other, I have not used, but perhaps a lot of tools used in an industry. (nonsense:))

Knowledge, because each person's development direction is different, so most people's knowledge structure is different. But there are a few things that should be the same.

1. English proficiency The main new technology, documentation is used in English as a starter. If you want to learn better updated knowledge, skills. It is no good to know little English. And don't expect someone to translate it for you. Generally speaking, these materials, the people who understand do not need to translate, can not understand the people do not have the means to translate. I don't think you dare look at the articles translated by people who don't understand. So most of the information is in the original English. Of course, there are a lot of people in the translation of these articles, but for so many materials, translation is only a very small part. It is better to ask for oneself than for others. It's not wrong to learn a little more English.

2. Design capability although in general, regular companies have systems analyst to do the design (I guess). But 70%-80% of small companies, but not necessarily. Know a little about software engineering and know how to use some document design tools. or know what design documents you should have. is also very good. Compare these things if you learn, it's your own. And these are good things to raise wages. It's a lot of money. :)

3. Language writing ability as a programmer, most of the time is written in code. But the code notes, various documents, test reports, documentation, and the use of manual writing, all of which require writing skills. Also useful email, BBS, QQ these tools to communicate with people, if the words are not clear, that communication is even more. There is a problem with improving the level of progress.

4. Learning ability Few people are all learned to work again. This is not very realistic. At present, society is not quite allowed to do so. It is common to study while working. Maybe a lot of people learn to do something at work. A lot of skills will do the same. In addition, a lot of new projects are coming. The arrival of very new technology requires us to adapt to the new work environment, new job requirements. It's easy to get kicked out of a project without a good study. Oh.

Also, when your boss tells you to do something you're not, you tell him you won't, but you'll get it done within XX days. Will not have no relationship, learning is also a good performance to be motivated.

5. Know what to do, what to learn, what to develop.

The world's software technology is more like 9 of cows on the same as the hair, perhaps a lot more. If we have to know everything. Oh, my God, I don't want to live.

As a software person or as a beginner. It's important to know where you're going in that direction. Otherwise it's easy to starve to death in a software technology maze. In the end I had to quit the line. This is not very good.

Generally speaking, as a software personnel, master the development ability of one to two languages is OK. And unless you want to do software technology (these are the richest, most popular in large companies). If not to do the development of software technology, but the general application writing, do not pay attention to what the new technology today, what new technology will come out tomorrow. That's all you need to know. It's OK to know that this is the case. It is not too late to pay serious attention to the places that are useful later. You choose a direction of development, and strive to go forward. Don't be tempted by all kinds of new technology. To tell the truth, many of the so-called new technology how good, how how excellent, many times there are commercial behavior in the inside. You have to judge for yourself. If you can't judge what to do, look at the following one.

Sixth: Know more many beginners the most troublesome thing is how in so many software technology to choose a studious, but also have a future (Qiantu), and can do something great technology to open up software development this their unknown area. There are few solutions to this troublesome problem. If you can meet a good teacher, that is your blessing, you must seize the opportunity. If you have to make this decision by yourself, you can only be careful. But generally speaking, C and C + + are a good choice.

Another problem for beginners is that when I choose, there are a lot of these and that new changes in the learning process. What am I going to do. This is basically no solution. You can only slowly accumulate yourself slowly. Accumulate until you can understand what these new technologies are for, and what these changes are after. You will not be afraid of these new things.

I have always insisted that if I know more, my strength will be greater. I would not be afraid of change. If you can't judge a thing because you don't have enough information, don't force judgment. It's 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.