A programmer's learning course

xiaoxiao2021-03-06  78

A programmer's learning course

It has been more than four years in turn, and I have always wanted to find a time, but it is too lazy to do it. Today, I must force myself to write it out, not only for four years, but also to share with friends who work with the same technology and the upcoming scholars.

I graduated from college in 2000, I also thought about postgraduate research, because I lacked confidence in domestic education, I chose to work. Although it is hard to find, but that is very picky, aiming is a good job in the software development of a good company. These confidence stem from countless fugitive classes in the book management, computer technology (although there is no guidance In the case, many things don't understand, but forced yourself, even if you don't understand, you have to finish this habit, this habits developed, it also affects my learning method), and the get out of class is in the classroom. But more is to fight the star. With the confidence and luck of Aq, there is a hot computing technology in the year, I have entered a good software company. But unfortunately, don't do software development, but test. But for the curious and good salary of technology, it entered the company.

I have no longer sleep until you sleep, every day, the protocol information, such as hunger, learning everything you don't understand. When the first BUG of the product was found, the door of the test was finally opened. So starting a destroyer's process, devastating the results of the developer from a variety of perspectives. At that time, the company's code management was not very strict. By conducing the boss, I have made a development of the product code. From then on, I have a homework every morning is to read half an hour from the morning. I have written a little VC program in the university, in the product code of Military lines, as I entered a maritime sea. However, the method of college is also sent to the field, and I don't understand. I learned a few lines from the beginning of the day, I later read a function one day, and later it was the sky. About 7-8 months later, it is finally able to ran the code in the mind. So, start learning hacker thinking, looking for systemic defects and vulnerabilities from the code, so I became a product killer, endless problems exposed under my hand. The biggest gain during this period is to enhance reverse thinking ability and code reading ability. Now, many people engaged in computer will focus on watching a good book or learn a tool, if these are no problems with you, then the most important thing to do is reading code. Find the source code for the best representative of this field, then begin to read like a reading or reading a novel. Just starting to see what you can't understand, it doesn't matter, a sentence to read. The complex code is composed of basic syntax. I insist on every day, read 10 lines one day, then 100 lines, then 1000 lines, then 10,000 lines. Be sure to persist, seeing the code as a must-have homework every day, you will find that your programming and thinking skills are unknown. After reading millions of code, the code will be clear than any document. Just like NEO can see the world of numbers in an instant. This is my personal experience, I hope to help the xdjm who is still in the learning phase. However, there are too many technologies in this period, and the training of communication and communication skills is ignored, and there is a loss, see how you will go. In this process, the most books that look at the TCP / IP protocol detailed volume 1 (Internet principle), TCP / IP protocol detailed volume two (code implementation), these two books are now on my hand.

Suggestions for beginners: 1 No matter which field of the main computer, be sure to see the most authoritative learning materials in the field, do not waste time to the unbaudible so-called introduction of various new technologies. 2 As a programmer, the code is another language of communication. Be sure to learn the ability and habits of reading code, learn and progress from the code.

The days of testing have been very fast, but they can't live with the love of writing procedures. By playing reports, to complaining, they are ready to leave, and finally transferred to the development part of software development, starting a real programmer's career. Due to the experience of reading code and test accumulation, as well as a strong interest in writing procedures, in the process of software maintenance, such as fish, the system has increased to a new high. In addition to software maintenance, most of the time has developed new projects. From a newbie, understanding the software development process, to the project manager, all transitions are naturally. During the development, read the Linxu kernel source code, FreeBSD kernel source code, GATed code, Snort code, etc., my development field from the TCP / IP protocol stack, to the upper protocol, to security. The C program code of more than 100,000 rows is written in two years, which can be used in the network device. The useful development platform has WIN, PSOS, VXWORKS, RTLINUX, BSD, etc., in fact, no matter which platform development, as long as there is a good code editing tool, efficiency is the same. I use SourceInsight, editors and browsing code very easy. With the growth of development experience, the time of debugging is less and less, because the code is running over before the code debugging. This is completely different while the test is completely different when the school is. Here is an example, I have guided several students who have just graduated to do projects. After the development time, I have not let them debug code yet, but each time you read each other. Finally, all code debugging time is very short (less than 1/10 of the entire project progress), these students can't believe that their code runs so smooth and stable. Suggers: Software development, do not develop the wrong habit of the error to discover the wrong. When writing code, you must check and check again. There is no problem in your mind, and then compile debugging.

During this period, I also walked through the curve, and I wrote it with everyone. Over the past two years, many companies in China have learned India's CMM software development process. I also influenced when I was developed. If I really follow the level of development capabilities in their industry, I think Linux will never be completed. Why does Microsoft does not need CMM, and Cisco does not need CMM. As a software outsourcing company, there is no problem with CMM. But as an innovative technology company, there is no need. In order to verify that the so-called industry baseline has a dozens of business development capabilities, I will continue to break through my ability in project development, and the highest record has written 2000 line official code, and the average of 300 rows per day during the project. The defect rate is also far lower than the company average. Another example, I have completed a function of 3 months, and later developed another person in another platform, I spent two years, I have not completed it. These examples don't want to explain that there are more cattle, just want everyone to understand the gap between programmers in the actual development. Take a look at a company's programmer, you know how many cattle this company is.

Suggestions for beginners: Don't be influenced by the dogma, constantly improving your ability, surpassing yourself, is the most important thing.

During the development, I have seen a lot of books about the code, there is a rotatable, it is also good, now it is a good book that I feel good, for everyone to choose.

Programming - very old book, very good, but have never understood why there is no very bad calling book in China.

Code completion (Code Complete) - Classic in structured programming.

The above two books are a compulsory homework that enters my project team. As a programmer, you must ask the code to be as skilled by your mother tongue. I think the domestic technical level is low, and there are too close relationships with excellent programmers. Of course, such results and the harsh atmosphere of the domestic popular writing code as low-level work is inseparable. Why do we write so many errors need to be modified, if you let everyone go to write, there is definitely not so much error, and it is also a problem with the style and tone. Skilled the computer language and the mother tongue, will not produce so many errors, but have several companies in China to do this? In order to save costs, use primary programmers, and follow-up endless The pain maintenance is unattended, and foreign companies are very sensible at this point, and many of them have used excellent programmers who have programmed more than five years. To achieve a real programmer, only by oneself, peaceful mentality and clear goals. Suggestions for beginners: Most of the programmers are exchanged with machines, requiring themselves using computer languages ​​and skilled by using native language.

Regardless of the field, the write code is completed just to implement each function, as a programmer, understanding the latest trends and technologies in the art, and is also one of the compulsory homework. Whether it is not the need, try to analyze the outstanding product realization in the field, expand its technical vision. If you implement a module, you will pay attention to the relationship between the entire system. Alternatively, communicate with the industry's master, don't say there is no master around you. Find a well-known technical forum in your own field, join the list of interest, get new knowledge, don't become a frog in the bottom.

Although I use C language writes in my work, I have learned Java, C , Perl and other languages, and try to use object-oriented ideological designs in structured languages. As a technical worker, I think it is necessary to maintain an open mind, accept the excellent characteristics of all new technologies to keep progress. Often see this information: The technological progress in computer fields is too fast, and it is necessary to continuously learn new technologies. This sentence does not believe it is true. The world's most advanced products and software are using a large number of technologies for two or thirty years ago. Learn any new technologies, you must take some time to trace the source, otherwise it is easy to get angry.

During software development, with the richness, unconsciousness, we have reached the level of project management and system design. Unlike others, I did not be obsessed with non-technical management, but focusing on true technology. Because I saw too many people around, I started a project, I started to rise, as a project manager, and be obsessed with the work of the manager, no longer programmed. I have been doing project managers several times, and I actively ask for programmers, write the program, I feel that my technical ability needs to exercise. These in the short term, it is lost, but from the long-term professional road, every step is stronger and is the biggest gain. Project managers, system engineers These are empty, and I think they should do a programmer. This year I presided over the development of products, from the system design, to software design to realize, from technology to management, work, I truly realized that I have not had a few years. If you leave the technology route too early, there will be such a high ability today.

Suggestions for beginners: See the target, you have to go to a footprint, don't pay too much attention to the gains. Today's loss, it seems that it is a valuable wealth tomorrow.

Not much more than four years, from testing, to maintenance, to achieve a module, to do product design; test engineer, software engineer, project manager, system engineer, technical expert, now recall, the route is very clear. But I have been hesitant at a number of choices, and now I am full of sticking. Now, someone asks me, I will answer without hesitation: I am a programmer. postscript

After three days of intermittent, it was written in this article. In fact, there is still a lot of things that cannot be expressed, and it has been integrated into the usual habits. My current goal is to be the best product, write excellent code. Write down these words, I hope to help beginners, and I also spur myself never give up.

转载请注明原文地址:https://www.9cbs.com/read-95002.html

New Post(0)