Good start is half of success, this book will first try to tell you what is programmer? Why do you have such a program? What is the correct entry method?
Programmers can only improve their skills faster, and then start the design of the program. In fact, for a software developer, the truly important thing is not to write this line of code. How should the code write, the key is the problem of thinking, and the idea is actually experienced. Experience is a process that enables you from the original closed thinking to finally form an open thinking. Tell readers some experience in my more than ten years of career, making everyone less walking and I want to write the main purpose of this book.
1.1 program ≠ software
Now many people think that the program is software, software is the program. In fact, software and procedures can also be said to be equal in the 1980s, or that they may be equivalent in non-PC fields, such as an embedded software, software and programs may be equal. However, in the field of PC, the current program is no longer equal to software. What does it mean?
Software development
In the 1980s, PC was born. At this time, there are still few people in China to write procedures. So, if you write a program, others can use it. The program at this time can generate value, this program is directly equivalent to software.
However, the software industry has developed to now, and here is China's situation (US in the 1980s, the procedure is not equal to software), the procedure is not equivalent to software. Because it is easy to write the program now, but what kind of business significance can you make this program, you can't produce what value, which is difficult to change directly into the software. To make a program directly into software, the middle is facing a high threshold problem. This threshold problem comes from the formation of the entire industry.
Now, after you write a program, you have to face a commercial process. You have to promote, you have to let users know that you have to build a distribution channel, you have to spend a lot of time to persuade others to use your things. This is a process of program to the software. This threshold has been higher.
When we chatted with the sales channel of the domestic big salesman, our boss said that the threshold for software in these years is quite high. If you don't have five or six million software, it is "play" can't get up. of. I said: "You have made the threshold very high." He said: "It is certain. If you write a" bad "program, you will be closed tomorrow, your things also account for my library, I still don't know Search who is going to retreat. My warehouse is money! Now the software is so much! "
So, if you don't have a certain asset, the dealer ignores you. This is the case, if your company is small, there is nothing famous, your product puts it in the dealer warehouse, then he will temporarily send you, the product is not moving, usually will be returned for 20. Because now there is still room for dealers, there is already a lot of software. And the procedure is more, and the program wants to become a software, who said that he is "gold". But only to experience the user's inspection, you can become a real "gold".
This is why the United States has almost no new software companies in the 1990s. Just the original software company in the 1980s merged with each other, I swallowed you, you eat me. However, there are many people in writing programs, and the threshold for the US programming software may be higher than us, so many people have written the program to throw online, form sharing software.
2. Shareware
Sharing software is a way to avoid business channels. It avoids the barriers of the business, because the threshold in this industry is very high, and it will not be easy. I wrote a program to lose online, you can use it, this time the program is equal to the software. Sharing software is caused by there is no way. If the program is directly equal to the software, no one will easily throw the program to go online. People who start to share software do not think that it can make money, but there are more people who have used it, someone pays him. Sharing software makes the distance from programs and software, but it will be further pulled with the distance from commercial software. The function of commercial software and the goals you want to achieve are not a person who can "play". The software at this time is not a few people, and a group can make it. This is why new software companies in the United States cannot produce. For example, Netscape Net View is a new software company produced in 1995 to 1996, but it won't see it for two or three years.
1.1.1 Formation of business software threshold
1. Formation of business software threshold
The formation of commercial software thresholds is an inevitable result of the development of the entire industry. The threshold for any industry is very low, however, as long as it is developed to a certain stage, its threshold will inevitably raise. For example, it is difficult to produce cars in China now, but in the 1950s ~ 60s, you installed 4 wheels, plus diesel engines, etc. At that time, the Lite brothers were install a propeller, plus two wings, and they can do a plane. When the entire industry has not yet formed, it will definitely do this, but when you form a whole industry, you can't do it. All industries are like this.
Why do you have to squeeze it when you come out? This is also because of the beginning, it seems very low, everyone can do it. As long as there is a server, the root network cable can be a website. This industry is in the initial stage, the situation is like this. But after this industry is formed, you can't easily "play".
The same is true for domestic software development. Domestic software has been formed by this industry since the formation of software dealers. Is there a channel that judges whether or not a industry has formed a very important link. Any industry will have a distribution channel. If the channel is formed, then this industry has formed. The first dealer was established in 1994 to 1995, that is, the Chinese software industry is probably formed in 1995, and has experienced the development of eight years.
There is an impetuous idea that the Chinese software industry should soon catch up with the United States. The US software industry is formed in the 1980s and has been developed for more than 20 years. The Chinese software industry is only 8 years. 8 years is a kind of child, 20 years old is a strong youth, then their strength is wrong. But it is also necessary to see that when the 8 years old becomes 15 years old, its real energy will reflect.
2. The impact of software thresholds on programmers
The Chinese software industry is now being formed. So, now make a programmer must have patience, because it is no longer equal. You must make all the questions and then do the program.
For programmers, the best working environment is the most prone to success in existing or initial companies. Personal Single Punor is very difficult. Even now, two shared software can be called online, but it is already more difficult. Because people doing software now have a lot. This also shows that the software is not equal to the program, and the program is not equal to software.
The program is to become software, which is a commercial process. There is no threshold, it doesn't have this business process, and now there is this industry, and there is a commercial process in the middle. The process of this business is not a person who can "play".
If you start to do a type of software, others have made it, then you decide to do it again, then you have to spend double strength to catch up with others.
The current business software is often consisting of many modules, and the module is part of the entire system. Individuals should be almost impossible to write a business system completely. After the software enters the Windows platform, it is already very complicated. When you are in DOS, you can sell two lines to sell, and you can sell it. In fact, the US commercial compiler is not a person who can "play". Now you may think it is very simple, and even Linux also has a GCC, and the source program is still there. You can change it once, do a VC to try it, see if it will be used? Can it become software? Even if you do an interface again, it is still a GCC, which is absolutely un commercialized as Visual C . It can be seen that the threshold for foreign software industry is much higher than China. I don't think that our China will do this again, there is not much sense. You can't catch this threshold. Not only do you have to spend double strength, and in such a short period of time, you have to complete the work that others have completed, including the test work made by others. Only in this way can you make your software competitive and compare it with it.
1.1.2 Recognize your development
If you don't even know above, you are likely to think that you can buy a book such as a MFC master, you can become a software master. It is like these books "gold", I learned two times, I learned VC, MFC, I can do a software to sell. This idea is not good, and finally it will be, but you have to be patient, you have to have an opportunity. The opportunity is generated from patience, the more patience, the more opportunities. You have to work hard, spend a lot of energy, may have a lot of detours.
If you start from the MFC, or start with VB, you will take a lot of detours if you want to make a real software that can apply a personal field. Direct shortcuts is definitely not walking these two roads. These two roads look very quickly, and in many companies doing this thing, for example, this company is integrated with another company, then I need this kind of thing, I don't care how you specifically Realization, I only need to reach this goal.
Any software implementation will have n types, even if you are implementing the worst way, there is no problem, and finally it can still run. Even if there is a problem, change it again. However, doing universal software, it is not a lot, you have to face the whole country, if you will come from trade to Hong Kong, it is good to sell abroad, the entire product can sell to the world. At this time, all the work made by General Software is not so simple. Therefore, the correct way to get started is critical.
If you just want to make a meal to eat, find a job, you may teach you a book that has become MFC's master is enough. However, if you want to do a good software, you can not only meet your meals, but also make you name, and finally your software can become a lot of people, and you still want to use it as a career. Then, this is a very important thing. At this time, you will definitely find a MFC or find a VB's book, but start from the bottom of the bottom, start from the most basically.
1.2 How is the master practicing?
1.2.1 Six stages of master growth
How can programmers achieve the highest realm? The highest realm is definitely not you to edit the two lines of code, or you can write a few lines of code, or use what the so-called visualization tool produces the least code, this is not a real master realm. Even this master, it is also an ignorant self-seating.
I think that a programmer's growth can be divided into six stages.
? The first stage
This stage is primarily able to use some languages skilled. This is equivalent to the routine and rack of these surfaces. ? second stage
This phase can be well connected to an interface based on a platform (eg, the API function we now useful for WIN 32) and its own library functions of the corresponding language. After arriving at this stage, it is equivalent to practicing real shed, and can do some applications in practice.
? The third phase
At this stage, you can understand the bottom layer of a platform system, which has already had the ability of primary internal strength, which is "there is a sword in his hand."
? 4th class
This phase can be directly developed on the platform. Basically, it can be said to have entered a high level. At this time, I entered the cultural strength cultivation. For example, the kernel of the VXD or operating system can be modified.
At this time, there is no longer a constraint, and the language is just a tool. Case. In general, it is more difficult to transition to the fourth stage from the third stage. Why is it difficult? This is because many people's thoughts can't come.
? Fifth class
This phase is no longer limited to simple technical problems, but can grasp and design a relatively large system architecture from the overall situation, from the kernel to the outer interface. It can be said that "there is no sword in your hand, there is a sword in your heart." After this stage, you can analyze any software on the market, and can be designed according to your own requirements, even if it is a large software such as MS Word, as long as there is sufficient time, it will be designed.
? Sixth class
This stage is also the highest realm and reaches "no stroning and stroning." At this time, any problem will become a problem with a thinking, not what code can be expressed. That is, "There is no sword in your hands, and there is no sword in your heart."
At this point, for those who practice, he doesn't have to learn what less Lin Boxing, just look at the battle of Shaolin, you can use this box. This is the real master's character. At this time, Win 32 or Linux is not different in your eyes.
Each stage is developed to develop upwards. First, the second stage can be completed by self-study, as long as you use more heart to study, you can learn patiently.
If you want to transition from the second phase to the third phase, there is a good learning environment. For example, there is a master lead or have a good practicing environment. After two, three years of accumulation can reach the third stage. However, after some people reach the third stage, it is often difficult to break through the realm. They will have a concept, thinking that software is nothing more, thinking that they have not been. In fact, if you encounter big or hardware software, they often don't start.
Most of our country is now between the second and third. Most of them are self-study, but such programmers generally can complete some software modules in software companies.
However, there is also a large number of programmers at the first stage. They usually play VB, when doing programs, find a bunch of control integration a software.
Now a popular statement is that China Software Talents are now an olive talent structure, with a large number of secondary programmers, while primary and advanced programmers are relatively small. And I think that most of China now is a primary programmer, and there are few intermediate programmers, and the advanced is less. Therefore, the current talent structure is a "square tower" shape, which is a faulty structure. The real mature software talent structure should be smooth triangular structure. In this way, primary, intermediate, advanced programmers can sufficiently consider. The three talent structures are shown in Figure 1.1.
Figure 1.1 Comparison of three talent structures
1.2.2 The difference between primary programmers and senior programmers
Generally, for a problem, the primary programmer and advanced programmers consider this problem is definitely different. For example, when the primary programmer phase, he will feel that VB can also make an app, and it looks good. However, when he arrived at the intermediate programmer, he may not choose VB, it may use MFC, at this time, it can also make a good program.
When you go to a senior programmer, he will definitely choose the above tools, VB is good, VC is good, these are not what he considers. What is absolutely considered at this time is a method of solving the problem with the fastest efficiency and the most stable performance.
Software and other products are different. For example, in the software to reach a target, there is n types, but in n methods, only one method or two methods are the best, and others are very. Therefore, to be a good system, it is very patient. If there is no patience, there will be no fine, and there is a fine thing is a good thing. I think it is the case, and it is true that it is necessary to invest.
When the programmer arrived at the highest realm, I thought "I am a program, the program is me." At this time, I have to be a software, and I will not have my own subjective ideas, but consider the problem with the idea of the machine, that is, it is to think about the program in the way of thinking, not to design the program. Thinking procedure. This is not understandable if it is less than a high level.
Your design is not what you think, and then do it in your own ideas?
In fact, it is not. When I design this program, I am equivalent to me "drill" into this program. At this time, I don't have any thinking, all my thinking is this program, how can it go this step, how to go, what is it possible? When I move this part, don't I interfere with it, maybe I will hang it, how is it interacting between them?
Only when you arrive at this realm, your program can really write well, absolutely not doing any visualization. Visualization itself is "I designed this procedure", and the real program master is "I am program", these two methods are definitely different. For example, I want to design a program with VB, and I itself is a program's way of thinking, it is not the same. Others may think that the operating system is very affectionate, very complicated, in fact, if you reach the master state, you are the operating system, you can do any procedures.
There is a comprehensive analysis method to treat the software, and the theory is useless. If you have not passed the first, second, third, fourth stages, it will never reach the high realm. Because the theory of the air-building Pavilion is useless, these must be made step by step.
A senior programmer should have open thinking, and all knowledge from the outside can understand. Then, I can see the world's latest technology will be able to master it right away. In fact, there is no separate in technology to reach the highest realm. Anything is connected, as long as you arrive at this realm, you will understand what questions will be understood. At first glance, you can seize the core problems, the most fundamental, and will not be confused by other branches or appearances. Being succeeded after this step.
From the programmer itself, after it arrives in this step, he has formed an open thinking. He has this kind of open thinking, he can do strategic decisions, which is good for him to do anything in the future. In fact, after proceed, there will be a method of analyzing problems. How to learn the appearance of the problem, see its essence. At this time, you encounter any specific problem, as long as you give some time, you can easily resolve. In fact, for the development of computer software, there is no software that can't do it, all software can do, just see if you have time, have any patient, have no funds to support. In these years, especially in these two or three years, it is estimated that by 2005, software companies in this industry in this industry can be formed. It is already formed, such as UF, after it is listed, and the status is more secure. Other large software companies will grow up quickly in the past few years. At this time, including circulation channels, the distributor's channel will grow up quickly. In other words, by 2005, the threshold for China's software is much higher than that now, and there will be no difference in the United States. At this point, China software really reflects its power. If you are a member of these power, it is already very powerful.
Others may know that Bill Gates is a master of negotiations. It is a master of selling things. In fact, Bill Gates fundamentally is a program master, which is fundamental. He is very sensitive to all the technologies, and he can see the nature at a glance, and he can also make a program, often look at the program. Now he does not make a chairman, and be a chief designer. At this time he is more close to the essence of the program. Because he himself has a very open thinking, in depth, he knows the direction of technology. This is very important for people who are such a company.
If he judges a wrong step, it is hard to turn back later. The competition of the computer is very intense, and it cannot take a short half. Many companies have seen very fire before, and later
The sales disappeared, just because it went wrong, then it would not. Why will it go wrong? Because he does not understand where the essence of technology is, where is the development direction of technology.
Bill Gates Because parents are learning laws, he is very "", very persuasive, and he is doing technology, which is very clear, so he can grasp the direction. Very accurate, the company is getting bigger and bigger. And other companies only fire a while, but he will still fire. Even if Microsoft is huge, you will finish it if you don't grasp the forefront of software technology. Just like Intel grasping the latest technology of the CPU, we can guarantee that you are the industry boss. Technical determines its future.
Therefore, the programmer must achieve such a goal, there is a very strong patience and very good opportunity to make. In fact, the opportunity now is very good, and the opportunity before 2005 is very large, and the opportunity will be relatively small. However, if you have patience, you will still have a chance, and the opportunity is in patient. I remember that "Half of ambition is patience", I think two-thirds of the ambition are patient. If you have a ambition, you have to be patient, your ambition is likely to be realized. If you have a ambition, there is no patience, it is a cranky, others can see it. Finally, in the competition, the opponent saw your intention, then what else can you compete?
1.2.3 Is the programmer to eat youth?
Many people think that the programmer is a career before the age of 30. After the age of 30, it should not be a programmer. Nowadays, many programmers have this idea, I think this idea is not right.
At the end of the 1980s, until the end of the 1990s, the software did not form a industry, and the programmer could not use this as a means of making a living, you must go to the line, because you don't have to consider the problem of eating, "play" every day Yes, but it will be impossible later. As far as I understand, the masters of Microsoft are almost forty or five years old, and they are all underlying. They are "playing" procedures in the 1970s, so they are too clear for the entire computer. Now some people are subjective, I hope that Microsoft is going down the next day, but that is too small. Because those programmers start from the CPU 4004, play now Pentium IV, no generation, they have not experienced.
Do you know what they are playing now? 64-bit CPU is now playing. Do you say that your ordinary programmer has this patience? Without this patience, you can't do it, you can't do it. Why can he do it? Because he is not only playing, but he is very patient, every step of the technology, he is with him, so there is no difficulty and pressure to him.
Because computer technology is not mutated at all times. Its difference between this year and last year will not be very big, but go back to see the situation before three years, and now the distance is very large. So, if you follow the technological progress every year, your pressure is very small, because you can master the latest technology. However, if you fall, don't say ten years, it is three years, you can't catch up.
If you can't get up, you will feel very hard; if you can't catch up, you will lose the direction; if you lose the direction, you feel that the computer doesn't taste, the more you do it. When you just have a thinking, someone else's products have been made, because your level is too far from others, people have already thought about the problem, you have only started to know. The higher the level, the farther, then his thinking is more open; the lower the level, the narrower it is.
64-bit CPU is one of the most important technologies for this decade and next ten years. Whoever seizes this opportunity, who can seize the business opportunities that make money in the future. The CPU is Intel design, and he is sure to know this. For example, if you look at the current 32 bits from the perspective of 64-bit, just look at DOS from now. Do you say that DOS is complicated? When you are in the Dos era, you will feel that DOS is complicated. Do you say that now Windows is not complicated enough? Windows is too complicated, but when you arrive at 64, you will see Windows, just like you now look at DOS.
The entire 64-bit system platform and thinking, ideas are more open than now, to say more, now I can open NOS windows in Windows, each DOS window can run a program. When arriving at 64, the operating system can actually open N x86, open N Windows 98, and then open N Windows 95, there is no problem, the system can do this, even N Windows NT has no relationship. This is the difference between 64-bit and 32 bits. Therefore, the few "old men", four and fifty-year-old people are now playing these things. Do you say that Microsoft's technology does it be advanced? Is there any players in Linux?
Microsoft's technology is very strong, the latest technology of the world computer is absolutely concentrated in these individuals. And these people's thinking patterns are very open, and there is no real thing, he has already started doing it. Now the 64-bit CPU has been coming for more than a year. Do you say anyone to do these applications? No, some is the use of the UNIX manufacturers to use it. Therefore, when pursuing the highest realm of technology, it is actually no age limit. For me, now I have thirty-three, I have never thought of exiting this line, I think I can play, there is no problem in playing retirement. I want to keep the foremost at the foremost in technology, so that I don't have any feelings for me.
Many people say that the program is not a human, and it is a non-person treatment. In this way, once they set up a company, make a little grade, and immediately consider exiting when glorious. Because they are too bitter, stay up late every night, burning two packs of smoke every night, there is still enough, and the room is simply lack of oxygen, it seems that I haven't solved the problem.
Sleeping during the day, work at night, of course, exhausted, this is yourself to toss yourself. So, the programmer must have a normal mentality, that is, when you are making a program, don't give your own life three down four. If you don't have to burn a lot of cigarettes in the evening, you will definitely toss less than 30 years old, and the body is bad after 30 years old.
In fact, I basically didn't stay up late because of the program. I have only experienced three nights, once when I was in school, when I just contacted my computer in 1986, I was playing games in computer indoor one night. I have been studying for a long time. I have been in the same time. This is the first time. . Then make a program on 286 before graduation. Another time is that the super-sacred list, then the company has blown very much, and I can't sleep this evening.
In general, I am also sleeping twelve o'clock, and I will start at 7 o'clock the next day. So, only have normal life, normal rhythm, only normal mentality to make programmers, so your idea is normal, only normal things can last long. In the fatigue war or black and white, it will not be turned back after a long time. If you play, you don't want to play.