Cultivate the professional standards of a programmer (Lin qingzhong _ original signature)

Source: Internet
Author: User

Http://blog.csdn.net/baselive/article/details/306412

 

Abstract:


Lin qingzhong graduated from Kunming Institute of Technology for computer software in 1990, and then graduated from Nanjing University in 1999 to complete a master's degree in software engineering. He now works in an industry software R & D center under CNPC, because I have read many experienced software developers on the Internet to write a good post, and I am also making an article about it.

 

Suppose you are an undergraduate majoring in software. How can you cultivate yourself into a professional programmer, this article attempts to summarize my thoughts on software development over the past 15 years and hopes to help those who wish to become professional programmers, I would like to take this opportunity to thank the former teachers of the computer department of Kunming Institute of Technology, Mr. hezhi Ling and Mr. Zhang huaining. I am particularly grateful to my master's tutor and Professor Zheng Guoliang from the computer department of Nanjing University.

Note: The words in this post are sharp because of the temper of the author. If you look angry, please forgive me and let go.

 

A program is a series of step-by-step operation sequences with many levels, for example, the lowest-level microprogram, the lower-level assembler program, the higher-level programming language programs, and the highest-level scripting language programs may not be listed by me, but it doesn't matter, what I want to talk about is that no matter what level of program, its essence is the logical sequence of operations. Most systems and applications are built on advanced programming languages, such as C, C ++, C #, Fortran, bisic, and Java, let's focus on this level of programming capability. Therefore, if a programmer has low logic capabilities, he will never be a qualified professional programmer. We will discuss all aspects of programming capabilities below, the ultimate goal is to maximize and implement the logic capabilities of a programmer.

 

I. Basic Knowledge: continuous accumulation of windows in the past 16 years

After 16 years of study, you must complete the following professional courses after graduating from a software major in elementary school at the age of 7: computer composition, operating system principle, assembly language, data structure, compilation principle, database principle, software engineering, structural design language (Pascal, c), object-oriented design language (C ++, C #), computer network, etc, you 'd better understand some postgraduate courses such as algorithm analysis, distributed systems, computer graphics, formal logic, AI principles, software design patterns, software architecture/framework, etc. Over the past 16 years, in addition to knowledge, what you accumulate is more important to form the learning and working methods that best suit you. These are the basic skills you have for a programmer's professional level. Don't be influenced by legends like computer software geeks. It's just a small probability event. Even if these geeks haven't read software undergraduate and graduate students, they often learn most professional courses by themselves, which may be better understood than the students studying at school for the essence of these courses, and their work methods and ways of thinking are particularly efficient, however, it is difficult to imitate because of its poor universality. Well, now you only need to ask yourself, have you learned and mastered all those courses and knowledge? If yes, you are ready to practice it.

 

2. Improvement in practice: become a high-level coder

Well, after you graduated, you did a good job in school and got a professional counterpart. You want to expand your mind, but don't worry. Your wings are not hard enough, if you don't believe it, let's take a look.

Generally, you will use a fixed operating system and programming language development environment in your work, such as Windows, UNIX, and Linux, for example, the development environment and programming languages such as Vc, VB, Pb, delph, Java, Motif/XWindow, QT, OpenGL, and openinventor are used. As for the development environment you are studying at school, the gap between you and your work is probably not small. When an operating system and programming language environment become your job, you should not and cannot evaluate your abilities with the vision and requirements such as passing the course/certification exam, even if you can score 100 points. You need to thoroughly learn all the content of the various development manuals in the operating system and programming language environment. You will say that most of you cannot use them. In fact, you are both right and wrong, from the perspective of usage alone, you do not need to use most of the content of the Development Manual, such as a large VC development class library and a complex development environment, you cannot use 1/10 or 1/5 of the total number in your actual work. What's wrong is that the part you use is not isolated and they are part of the entire system, only by having a complete understanding of the entire system can you make full use of what you use with ease and as you like, you are initially qualified for coding in this development environment (far from a programmer's career level), and this is just the beginning. How can we grasp the full knowledge of a development environment? The most primitive method is to read the Development Guide/tutorial and reference manual. Generally, when learning the Development Guide/tutorial, if you are a serious person, you will complete 5/10 ~ If you want to become a professional player, you should complete more than 7/10 of the learning and exercises. The reference manual is different. Most so-called "programmers" are used only to flip the pages. This is too far away. You should read every step like reading the Development Guide/tutorial, for example, for VC, every class and every function of the class in the reference manual must be read several times. They are often used together by a young guy, at the beginning, you will have no clue or worry about it. If your development environment is fully installed, there will always be demo examples by developers, then you enter another realm. At the beginning, you pay attention to the specific technologies in the demo. Later, you find that all the demo programs are well written, and the structure is simple but reasonable. If you are really careful, you will surely find that some of the demos are the best, and the program logic structure presented by them is not designed by you. Now you are more concerned about its program design architecture, more than paying attention to your original purpose (some related technologies/techniques), you started to change from a coder to a programmer, you can't help looking at the source program provided by the developer, for example. H and. CPP, usually you will find all. H program, you know Said, wow! A lot of things are not mentioned in the reference manual. You have to learn too much and have no time to take into account other hobbies. Now you know why programmers are young people's careers, you need enough time, even if your IQ is 160. If you go to this step, someone in your team will often ask you technical questions and often ask you for help in debugging. You are already a recognized "master, don't be proud of it, because you are still a coder. Why do you say this? Think about it. You have learned a lot about the skills in this development environment and know how a coder can make good use of these things, but can you design something for the coder? Well ......, If you think about it, it may not work too well. By the way, you are a programmer in the personal realm. It is essentially a coder, and of course it is already a high-level coder, however, you need to enter the room further to become a real programmer.

Let's continue. Generally, you started from a refined programming environment. Suppose you are already proficient in developing software with VC in windows, in terms of technology and skills, you will face one challenge and two challenges. The first challenge is that if the company/organization changes the development environment, such as using the QT interactive language tool in Linux, you just need to repeat the VC process. Because you have experienced the VC tool learning process subjectively, there are too many similar aspects in various development environments objectively, this time, you should have mastered it quickly. Be careful. At this moment, the first temptation opens, because you feel good, look! This is so fast, I have mastered the new development environment, and you are starting to focus on other similar environments that are not currently available, such as VB, delph, and Java, you are eager to master various development tools and prove your learning ability and value. But you forget that you are still a coder, just a coder that can be programmed in many development environments, just as you are living in China, so you are proficient in Chinese, and you need to master English again for your work, then you can work hard to put Russian, Japanese, Arabic, Latin, and so on, I can only say that it's a bit BT. You forget that you are a professional. You need to learn the same type of things only when they are used in your work. Too many coders like to compare and show off together. They will master several development tools, if you don't believe it, you'll find out what you asked for during the recruitment process, sigh! The vast majority of them will always be able to stay at this level, and will never become a real programmer in their life. To sum up, what you need at this time is confidence in your ability to master the new development environment, rather than repeatedly proving yourself. The second challenge is that you understand that it is not enough to master VC. You find yourself a little thin. You may use many things, but you do not know much about them, you are not familiar with many aspects that support VC programming, for example, the source code of the operating system, network protocol knowledge, Windows Registry, basic knowledge of processes and threads, hardware driver knowledge, ActiveX, Windows huge API, and so on, etc, it takes a lot of time to learn and master these basic knowledge. Once again, you feel that time is too short, because at this time you may have a lot of things, so I am a little frustrated. I don't need to mention how many new things are being released in the IT industry every day. Kao will never keep up with it. Ah! Don't be discouraged. Let's cheer up. You still forget that you are a professional. Since you have never had a chance to use many things at work, why should you learn? You can learn what you want, predict what you want to use at most, and learn what you want first. You must know that no one is a real general practitioner, unless you are a god, but if you are still patient with this article, you must be an individual.

OK. In year 35 after your work, you experienced the above process, withstood the temptation and test, and finally understood the truth: What you want is a strong ability to learn knowledge, it is a deep understanding of a certain software knowledge/skill, a deep understanding of its root depth, rather than the types and quantities of skills that have been mastered. No matter how many skills he has mastered, it's useless to scare you. You only have to despise him. After several years of study and work, you must remember the most important thing, always the most important: self-confidence in your IT knowledge and ability. A programmer must continuously perform intensive learning throughout his life, ask yourself if you are confident? Don't lie to yourself with vanity. If you don't have it, you don't have to spend your precious time reading it. I would like to thank you for your patience. Now I suggest you close this article and stay young, just take a break!

Iii. Logic-oriented: become a professional programmer

Well, let's move forward a little bit. You're about to become a professional programmer. Let's continue to complete this task! As we mentioned in the previous section, "you find that some demos are the best, and the program logic structure displayed by them is not designed by you, you are a little more concerned about its program design architecture than your original purpose (some related technology/skills ", in fact, you are paying attention to the thinking logic of the author of this demo program. The essence of all programs is logic. You have mastered the technology well, but you can become a professional programmer only by improving the logic capability. For example, you will be an 18-year-old martial artist, and you will never be able to go to the battlefield because you are proficient in knives, guns, and sticks, this effort is logical for programmers (it is essentially a person's mathematical cultivation, attention, not a mathematical knowledge ). The logic capability is gradually improved. At the beginning, you must use the intuitive logic capability for programming. If you want to edit the logic, you can change it if you don't want to. In the improvement process, you can improve your logic capabilities, it is normal to improve the intuitive logic capability to the abstract logic capability. Let's say one thing in advance. When we reach the highest level of logic capability, we can use mathematical languages to describe the solutions to problems and problems, which are highly abstract! Well, come back. The fastest way to improve your logic is to read a program with excellent structures written by others. Good code is a bit boring (I copied this sentence). Let's pay attention to some of these technologies and skills for the moment, what you need to deduce and learn is the logical structure of these good programs, which are carefully designed. You can cover this demo program, design a program structure with the same functions, and then compare the demo program structure. If the difference is large, you should not simply improve it, however, it may be a little difficult to restore the process designed by the demo author. But the more you do this, the faster you will become more comfortable, your logic capability is greatly improved. You may not start to have enough programs with excellent logical structures. The next step is to practice. Start from work. If you are idle, you need to do at least two types of exercises. One is algorithm exercises, and all the classic algorithms are classic logics, like a good student, every year's domestic and international programming competitions have very high logic requirements. You can choose only one or two difficult questions to do. When you can turn a complex single recursive Program (only a calls a) into a non-recursive program, if you can understand double recursive procedures (a, a, B, and B), I applaud you! You don't have to read it down. I'm a little embarrassed-you can get out of it! The other type is to re-design the programs that you were not satisfied with in your work. This is very important and time-saving, because you are familiar with the requirements and have no technical problems, the purpose is to improve the logic structure of the program. It is very cost-effective. The only thing you need to overcome is: you have a mental obstacle to the small achievements in your previous work. If you really want to be good, you can say a rough sentence: this mental obstacle is nothing more than a fart. It is a pity that I can only make rapid progress and let it go. production. the party declaration says: in this process, all you lose is the chain (the chain that bans your thoughts ).

Let's sum up, after self-denial, although you still have some nostalgia for the past "performance", you are already a programmer with a preliminary professional level, master the corresponding technologies and skills, and have a high Abstract Logic Thinking ability. The main characteristic is that you can consciously self-negate and constantly pursue a higher level of logic ability.

In this process, if you can pay attention to the following small aspects, your progress may be faster.

L understand the advanced languages you use in your work from the perspective of compilation principles. If you do this, there are at least two advantages. The first advantage is to avoid a lot of low-level repeated compilation errors. On average, a good coder should complete more than 200 lines of source code in one working day, and its compilation errors should be controlled below 5 lines. You need to know that these 200 lines of source code are not completed at once, therefore, in most cases, You need to implement a compilation. A professional programmer should further use tools such as purify to check the source code, there will be no serious memory leakage. The second advantage is that it can improve the readability and efficiency of the source code. Writing your code in a standardized manner makes your logic clear, because you understand that the compiler automatically recognizes the addition of several parentheses and empty lines, line feed alignment, and comments, it does not affect the efficiency of program execution. In turn, controlling recursive calls and if statements in the loop is the key to improving program efficiency. We must avoid recursion at all, but we must have a deep understanding of recursion, it is highly demanding to build a stack to convert recursive Programs into non-recursive Programs!

L avoid thinking traps. As long as you are a person, you must have your own thinking inertia, which will certainly be manifested in your program logic, sometimes you can't jump out of this inertia (everyone has this time), but you have to be aware of it, so you need help, it would be great if you have a few professional partners with similar levels or higher levels. When you encounter a bug that cannot be solved for 30 minutes, don't waste time looking for them, the most important thing is to be able to clearly and clearly express your problem. In this process, you usually have someone who solves the problem, either quickly or well. In addition, it is a blessing to have several professional partners that can compete well. 1 + 1> 2. You have your own strengths. You 'd better disclose your achievements in a timely manner, it is developing so fast that you are excellent, and there is nothing worth hiding at that point, so you can be technically or horizontally inadequate, however, you cannot despise your professional qualities and behaviors.

L has its own Debug Features. The author of the following statements cannot be too certain. It is just an experience. Even in a highly sophisticated open environment such as Vc, you should still require that you debug the program only by printing the statement. There are also two advantages. The first advantage is that you will think about the problem seriously when encountering a bug, instead of using the debug tool to track where the problem is stuck step by step, the way you locate the bug range is from large to small, from rough to refined. This is a top-down way of thinking, which is tracked by tools, it is easy to form a bottom-up way of thinking. This is not a good idea. You should first see the forest and then see the trees. I have repeatedly mentioned that a program is a logical process. Most programs start from the main function, it is a logical process of a tree structure composed of data structures and function subprograms (it should be recognized that even the object-oriented programming language is the same), and its execution process is given priority in depth, however, if you locate a bug, it should be breadth-first. Think about this, huh? The second advantage is to force you to think and remember, instead of using tools to see the call process. Your brain's abstract logical thinking ability is the same as the strength of the muscles on your arm, if your bug is caused by a logic error in the program structure, this is very important. By the way, the most difficult bug is the bug caused by the logic structure error. If you realize it clearly, I will have nothing to tell you. In short, the programmer's professional level: production efficiency and program quality mainly depend on the number of bugs in the source code and the speed of debugging, rather than the speed of writing the source code. I will give you a custom metric for a professional programmer: a qualified professional programmer. If the programming time is counted as one, the accumulated debugging time cannot exceed one, the accumulated debugging time of real experts should be limited to less than 0.5. How can this problem be solved? You close the door and ask yourself, what is the ratio of time you spend on programming and debugging? If you take programmers as your career, you should always remember that you are pursuing a good programmer with zero bugs! This is an ideal for anyone who wants to become a professional programmer. Please believe that the indomitable pursuit of this ideal will make you outstanding!

L do a good job in program unit testing, which is another required indicator to check whether you are a qualified professional programmer. In fact, when you get the requirement, you need to prepare unit test cases, and these cases will directly affect your detailed design (the software design should have been discussed in section 4 ). For example, when you get a requirement, in addition to analyzing its static functions, you should also specify its dynamic operation/execution process, the dynamic process is clearly drawn using a flowchart, for example, ~ Step 26 of Z, where a can be further divided into A1 ~ Step 5 of A5. For example, if step A3 cannot be broken down, you should list the normal operations of step A3 and all kinds of abnormal operations to ensure that normal operations are correct, during abnormal operations, at least the program does not exit. In this way, you have to write a lot of test cases. To tell the truth, I have never written them! However, I usually make an outline. For example, step A3 has five normal operations: A, B, C, D, and E, abnormal operations include 9 items in total: F, G, H, I, J, K, L, M, and N. You should perform the unit test again, such programs do not dare to say how good the quality is, but at least it can be said that it is relatively stable! If you want to perform fast and efficient unit tests, you should design the judgment of all normal and abnormal operations in step A3 during detailed design, when programming A3 steps, make the program structure reasonable and efficient, right? Therefore, if you look at software engineering in a separate way from the needs, analysis, design, programming, testing and other aspects, I am afraid the level is very limited! However, if you can see test problems and improve the design and implementation when analyzing requirements, make appropriate preparations. Hey hey, you will be much more efficient throughout the software development process, generally, you are highly confident in a development team. You have crossed the realm of being a biased and explicit master and become a calm master, this is the best in the best !, In the words of Zhou xingli: He is a master of the experts, because others cannot see where you are, and have never seen you have any tips or special tips, but you are doing fast, good, and effort-saving. There are still many complicated methods for conducting unit tests. This article only mentions the most basic point. The purpose is to make your work well-organized and orderly, no one can eat for you!

L if you are using C ++ programming, I will talk about a little bit about the release of the inner layer, that is, to print statements in the constructor and destructor for all the classes you have written, calculate the structure and structure of each class when running the program. If the class is paired, at least the inner layer at the object class level is not released at the end of the program running, then you can delete the print Statement, which is useful even though it is useless!

L there are other good habits. Here I will write some articles. If you have different opinions, please smile. The indentation should be aligned during programming. One indentation uses a tab key and generally contains four spaces. It is also important to strictly abide by the Programming specifications of the development team. A subprogram should not exceed 30 rows (not empty rows), and its multiple loops should not exceed three layers; otherwise, it should be split into two subprograms, and individual algorithm programs can be longer, but not more than 200 rows. Generally, the sum of all member functions of a class should not exceed 1500 rows. If there are more than rows, we should consider splitting them into two classes (this work is best done at design time ). Every time a short program is completed, for example, 15 ~ In the last 30 lines, compile and run the program immediately. Do not pretend to be a master. First, knock on a bunch of programs and compile and run the program. If you want to succeed, you will experience a fake, vain pleasure, or show off to others, this can only prove that you are a real dumb, just cool. As long as one failure occurs, you will spend a lot of time to tune the program. The progress of others will far surpass you at this moment. It's just a matter of saying, do it! Sun Tzu's Art of War has a clear explanation of this point. I will not cite it, but I suggest you do not do this unless you are such a genius that always succeeds, what else do you want to read this article? I didn't write it to you for these days. Then I learned to buy good books and read good books. There are too many books on computer and software, and the time is limited. For example, there is a guy named Hou jie who writes almost every book well, zhang Guofeng's c ++ programming is also good. This is just my personal opinion. There are many good books, and I will not say much if it is listed as many times longer than this article. There is another trick. If you are lucky enough, you can get the source code of some famous software systems and read it well. Here I can only tell you that some of the Linux operating system's source code is good and open, you can obtain it legally. Do not say that I suggest you infringe on the copyright of your knowledge!

Iv. inherent power: Become A System Analyst

This article has basically completed the task to discuss how to become a professional programmer. However, "Cai Gen Tan" has the following words: It seems like a drop in the sky, poor Xuan debate, if not put too much. Now that we are enjoying this, why not let alone the truth? The author is not doing anything, just forget it.

If you are lucky, you directly enter a software enterprise that strictly regulates production for employment. At the beginning, you should implement Programming Based on the software design done by others, you can have the opportunity to directly learn software design. When you have accumulated enough, you can propose good improvement suggestions for some of the designs, and gradually develop your work, I believe that one day you will become a software designer (not a software product designer) and step into the ranks of system analysts. However, this requires other conditions and self-cultivation. If you work in an nonstandard software enterprise, it's good. You may have the opportunity to design, develop, test, or even define your own requirements, take all the steps in the software development process one by one. Of course, this is more demanding for you, and you are not easy to get timely and useful guidance. In normal distribution, you should have grown slowly. However, no matter what the employer is, if you are determined to become a top professional software player, you will not be blocked by any objective difficulty. However, your personal factors may prevent you from moving forward. The points put forward below are just your own opinions. The authors apologize in advance for the hurtful and self-esteem points, and suggest that you simply read section 5 or put it down without having a strong interest in this article. The ugly words are already at the beginning. The fact that the development process of various software development organizations has proved that only a few programmers can become system analysts. I don't think this is what I wrote, therefore, if you feel angry when looking at the next part, you will not be able to understand it, because the author is only explaining his own point of view. You can try to understand it at most, it indicates your contempt, but there is no reason to swear!

I did not have an interview with Microsoft, but I am in the software industry. Of course I have heard about many of Microsoft's stuff, it is said that Microsoft has to hire five programmers for an interview and has become a one-vote interview for Microsoft programmers. It is also said that most interview questions are not programming, but logical and intellectual questions, the author has also done a lot of Microsoft interview questions in private, and thinks this practice is true. The essence of a program is logic, so some people proposed decades ago that programming is an art, and art depends on heaven, which is rarely opposed. A person's logical ability can be continuously improved, but the level of ultimate logical ability that he can reach must be limited by his natural intelligence, which is unacceptable. Funny! People can publicly admit that they do not have one or all of their artistic talents, but they must say that they do not have enough logic. In other words, they must admit that they are stupid and their IQ is not high enough, what is the difference? I suggest you skip this section if you are not confident enough. Just look at section 5, OK?

Now, let's talk about it. You have become a qualified professional programmer. If you want to become a professional system analyst engaged in software system design, the first thing is to quietly find a website or other channel for the standard IQ test and strictly test your IQ. If the IQ is lower than 130 (the normal IQ is 110 ), don't bother, let alone the idea of becoming a system analyst! Good! Good! Please calm down and think about it. In fact, Microsoft is testing your IQ and logical mathematics quality during the interview. This is why the title of this section is "born with power, because the design is to create from scratch, both in the software and other industries, can be used for reference, there is no ready-made, design is to create! If you have more than 130 IQ and are determined to become a professional software system analyst, you just have to prepare for a better taste. What is vanity?

Practice begins with basic skills. The process is similar to a professional programmer. You must use design tools. At work, you basically encounter two types of design: one is structured design and the other is object-oriented design. In terms of personal experience, object-oriented design is better. If you have to adopt a structured design in your work, you must master the analysis and design of the data flow diagram and control flow diagram. Generally, if you have designed the data model used in a software, it is not difficult to design a data flow diagram for the functional process. However, the next step is to design a control flow diagram, if you do not have a well-designed control flow chart as needed, you or others will be unable to implement the control flow chart according to the design programming. No miracle will happen, we still have strict requirements in the design phase, but remember that rework is the slowest. When you design a control flow chart, do not think that the required personnel can give you clear instructions. Generally, if they can write the required functions and operation order completely, you should be grateful to Dai de. From the demand, it is your responsibility as a system analyst to sort out the functional and operational topological order and conditions. Look, if you don't have any basic knowledge of graph theory or topology, you are not a professional system analyst. Even if you have a good talent, the necessary mathematical and logical qualities are still indispensable. You don't need to be discouraged. There will never be the best design. Only a better design, repeated design iterations, and the courage to overturn the old design, you will make rapid progress. If you use object-oriented design in your work, it will be more advantageous. There are too many books on object-oriented design, so you don't have to worry about it, we recommend that you carefully read a classic book, such as the object-oriented analysis compiled by Bei Da, Yu Weizhong. Some methods and techniques may be outdated, but the basic logic principle is very correct, in essence, how do you understand the world logically? How do you design the software architecture, read other books, and create opportunities and practices on your own, success will naturally come. In short, whether it is structured design or object-oriented design, let's evaluate our software system design scheme. There are many indicators, such as whether it is even and balanced? Is local independence strong? Is there a different structure? Is there too many or too few layers? Is there a level that is too big or too wide? Is the logical structure complicated first and then simplified? It's still easy to design. (This is stupid. If it appears many times, please don't take it for granted. Let's change it )? Is it easy to understand, implement, and improve the most important aspect? You will get your own comments. If you have the opportunity to see other people's designs, do not miss out on the opportunity of learning. You can deduce it yourself. If you are more serious, you will benefit a lot.

At this step, you should pay attention to the design model. First of all, you should study it. There are some good books in this area, but generally the design model used in your work is relatively simple, try other design patterns. Secondly, you must understand that the design mode is not a design idea, nor can it replace the design idea. For example, if you want to build a path from A to B, the design mode is just for you to choose from, is it cement or asphalt? Whether it is a high-architecture road or an ordinary one, but the line must be set by yourself, and the line is the design idea. The model has an impact on the idea, but it cannot be replaced. So if your IQ is as high as 250, I believe that you can write Object-oriented Programs in assembly languages. Third, there is a trap here. Many system analysts have developed a rigid design model and have no idea how to integrate them. In your specific work, they often use a design model, supplemented by other models, it is the key to thinking without sticking to the form, and to prepare you for reaching a higher level of software design.

Alas! I don't know how to write it down, because it has reached the limit of the author's level. Let's just say something about it. The final layer of software design is that it is impossible to have the law, and unlimited to be limited. This is what Bruce Lee said, not what I said. Let's take a look at everyone's teeth and draw a story from the story. In the legend of "Yi Tian tu long", Jin Daxia talked about Zhang Wuji's learning of Taiji. The sign of his learning is that he forgot all the tricks he just learned, I remember the truth and spirit of Taiji, which is similar to Li Xiaolong. The same is true for software design. If I forget all the design patterns, designing whatever I want is the highest level, so how high the realm of software design you can reach will ultimately depend on your philosophical quality. This is really hard to write. You can understand it yourself! The author only has a blessing!

5. Ultimate goal of professionals: comprehensive cultivation and leader

This section is not easy to write and involves too many other non-technical factors, especially the cultivation of personal outlook on life and world outlook. If the click rate of this post exceeds the value that the author privately expects, then I will try my best to make up my face. Although we all know that software development is a team-based job, it is the instinct of a software engineer to pursue successful development of a large software system, as Napoleon said, the soldiers who do not want to be Marshal are not good soldiers, so they do not pursue software personnel that implement large systems, nor are they good professional software personnel, but you only have to become leaders, lead an excellent software development team to have the opportunity to achieve this ultimate career goal, right?

Well, no matter how you feel, thank you for reading this article! I'm not used to false apologies, so I don't want to talk about the limited level of the author. In this article, you are welcome to criticize such objective words, although the level of the author is indeed limited. So I think that although you have the right to smash bricks, there is really no need to reply, or scold, or things like the top. I just want to write a little bit of experience in software development over the years, therefore, I will go up without a badge and will not reply to any replies. Thank you again for your patience! I hope this article will benefit you and wish you success! Goodbye!

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.