This article was prepared by Lei Jun for his speech at the 2.0 technology conference on software development, but it was not useful for some reasons. I would like to share with you that it is of great benefit to our programmers.
Every IT enterprise, especially a start-up enterprise, is very worried: no good programmers can be found. At present, universities, software colleges, and various training institutions train hundreds of thousands of programmers every year. Everyone who graduated from the university is equally annoyed that they cannot find a good job. Where is the problem? In fact, what enterprises need is people who just write programs. People who need to work, especially those who can do well. Most of the new graduates just learned how to write programs, which is indeed difficult for enterprises.
What kind of programmers does an enterprise need? How can an entry-level programmer become a master needed by an enterprise? Many programmers ask me, "What kind of capabilities do I need to start a business ?" I have been pondering similar issues. I wrote ten years of programs myself, managed more than one thousand R & D teams in Kingsoft, and recently invested in angel games. I carefully summarized the following five suggestions and shared them with all programmers.
Recommendation 1: You can write a program only if you really like it.
I like to write programs. Being a programmer is a paradise;
If you do not like to write programs, you will go to hell as a programmer.
Programmers need to stay in front of the computer all day, often day and night, very hard, and work is not a little false, do not write a punctuation. Those who like it have a very happy life. Every line of code written will have new achievements. Especially when my work is widely used, I feel so proud. People who don't like it, sitting in front of the computer is extremely boring and overwhelmed by the progress. Every day, they get angry about finding bugs and changing bugs.
The program can be written only when you like it and love it!
I suggest that people who do not like to write programs should turn around early and do not force themselves to avoid mistakes.
Recommendation 2: Use a program as a work of art to write code like writing a poem
At present, few companies do codeview (Code-level checks on well-written programs), so many people have to deal with it under the pressure of progress, even if the test passes. On the surface, the development speed is fast and the progress is guaranteed. However, in fact, such programs are hard to be understood by developers themselves. Once there is a bug, it is difficult to debug and maintenance and upgrade will be very difficult in the future. Most of such code can only be rewritten, which is a natural waste.
If each person writes a program as a work of art, each line of writing is genuine and clean, although the speed is slightly slower, the overall development cost will be much lower.
How can I write code as beautiful as poetry? The method is also very simple.
1. Buy several classic programming books and rewrite all the routines in the book. Compare the gaps with the examples in the book one by one to improve the programming style and skills step by step. After a long time, you will naturally be able to write code like a book routine, or even better than a book.
2. After a solid foundation, let's take a look at the source code of Linux and other system-level systems to see how the experts wrote it.
3. read through all the information in MSDN. In this way, you can read the following articles ".
Also, be sure to keep in mind the iron law of Software Engineering: where errors may occur, they must be wrong. Each variable is initialized, and each parameter is referenced for validity check. The boundary condition check is performed in every place where errors may occur, so that the developed program will be much more stable, that is, errors are easily modified. The wild paths are developed quickly, but there are a lot of bugs and it often takes a long time to modify them. The real master is pursuing the bugfree code (zero defect code ).
Recommendation 3: Write 100,000 lines of code.
Programmers are familiar with perfection like woodworking. Programmers must write enough code to make them feel like they are working hard and there is no shortcut.
Computer is a practical science, and it is difficult to make good scientific research achievements without hands-on capabilities. One of my senior students is a doctor at Carnegie Mellon University. The computer department at Carnegie Mellon University is very famous all over the world. He said that every doctoral student must write 100,000 lines of code before graduation, dr Carnegie Mellon University does not have to interview any major company. Most of the graduate and doctoral students trained in China have weak hands-on capabilities.
I have not written enough code. It is impossible to become a master. I can only talk about it on paper!
Suggestion 4: Keep curious at all times
Computer technology is evolving rapidly, and every year there are various new technologies. In my past career, I used basic, masm, pascal, c ++, vba, Delphi, and java in programming languages. You need to be curious and constantly learn new things to stay abreast of the latencies of your decades of career. You need to understand why many iPhone masters use the iPhone, and now one day late, remember to change to a gPhone.
People have limited energy, and experts often experience a lot of work pressure. It is really not easy to grasp the industry dynamics within a limited time. My experience is that I often read various technical magazines in the industry. Attending various parties can save a lot of time. The most important thing is to have a few knowledgeable technical experts and communicate with them more, which will certainly benefit!
Recommendation 5: do not restrict yourself to the technology and focus more on users.
The first few items are already difficult to find. But a real expert needs to know what the user needs and how to make products that satisfy the user.
Nowadays, software R & D teams are becoming more and more intense. Many teams have configured specialized demand analysis engineers, user interfaces, and user experience designers. The division of labor in software R & D is becoming increasingly detailed. Many Programmers think that as long as the technology is well done, they do not have to worry about user needs and user experience. In fact, the requirement scheme and interface scheme cannot be very detailed. The specific implementation is implemented by the programmer. At this time, the gap between good and bad will soon be reflected.
The ultimate goal of program writing is to meet user needs, rather than simply completing the functions in the demand planning scheme. Therefore, programmers must carefully explore the user psychology and understand the real needs of users.
Secondly, how to design an interactive interface makes users feel comfortable and easy to use. For example, there are three buttons in the upper-right corner of each program window, such as minimization and close. Steve Jobs thought it was not easy to use. He proposed to switch to the red, green, and blue traffic lights. After this modification, the Mac OS is much more beautiful and easy to use.
Currently, application development on the Internet and mobile phones emphasizes R & D by small teams. In this way, the R & D mode will be much faster, but the requirements for the overall quality of programmers will be higher.
I strongly recommend that programmers not only focus on technical skills, but also focus more on user-related issues, learn to understand user needs, and strive to design easy-to-use products. If you are a programmer of this kind, you can start a business.
These are the "technical skills" requirements mentioned in my "Top Ten entrepreneurial standards.
If such a technical expert captures the appropriate product direction and has the ability to bring a team, there will be a great chance of success! As a matter of fact, the founders of Most startups are like this! For example, Yan shenglong, Cheng Hao of thunder, He Xiaopeng of UCWEB, and Liang Jie of UCWEB.
Text: Chicken/woodpecker blog. For more information, see.