This article, written by Lei June, is his speech for the Software Development 2.0 Technical conference, but for some reason it has not come in handy. To share with you here, it is very helpful to our programmers.
Every it enterprise, especially a start-up, is distressed: No good programmers are found. Now universities, software colleges and various training institutions, each year to train hundreds of thousands of of programmers, graduates of everyone has the same vexed: no good job. What is the problem? In fact, the enterprise needs is not just to write the program, people need to come to work, especially the people who do good work. And just graduated college students mostly just learned how to write programs, it is really difficult to enterprise demand.
What kind of programmer does an enterprise need, and how does an entry-level programmer become a master of business needs? And a lot of programmers ask me, "What kind of ability do I need to be able to start a business?" I've been thinking about similar problems. I have written 10-year program, also in Jinshan management of more than 1000 people's research and development team, recently also made Angel investment, carefully summed up the following five suggestions and all programmers to share.
Recommendation one: only really like to write a good program
Like to write programs, to be a programmer is to go to heaven;
Do not like to write programs, to be a programmer is to go to hell.
Programmers need to lie in front of the computer all day, often night and night, very hard, and work does not allow the slightest false, less write a punctuation. Like people, the days are very happy, every line of code, there will be new achievements, especially when their work is widely used, the sense of pride. Do not like people, sitting in front of the computer extremely boring, by the progress of the pressure to breath, every day to find bugs to change the bug angry.
Only love, Only love, can write the program well!
I suggest that people who do not like to write programs early career change, do not force themselves, lest misleading mistake himself.
Recommendation two: Write the code as a work of art, like writing a poem.
Few companies now do CodeView (code-level checks on written procedures), so many people scrawl under the pressure of progress, as long as the test is done. On the surface, the development speed is fast, the progress is guaranteed; But in fact, such programs even developers themselves are difficult to read, once there are bugs, it is difficult to debug, the future maintenance upgrades are very difficult. This kind of code most can only rewrite, waste natural serious.
If everyone wrote the program when the art to write, write each line are serious and clean, although the speed is slightly slower, but the comprehensive development costs will be much lower.
How to write code as beautiful as poetry? The method is also very simple.
First, buy a few classic programming books, all the routines in the book Rewrite all over again, compare and book The gap between the examples, step by step to improve their programming style and skills. For a long time, it is natural to write the same code as the book routine, even better than the book.
Second, a solid foundation, look at Linux and other system-level source code, to see how the master is written, there is feeling.
Third, read all of the MSDN information, so that "read the volume, who reads tremendously."
Also, be sure to keep in mind the Iron Law of software Engineering: there must be mistakes in places where things can go wrong. Each variable is initialized, reference each parameter will do a validity check, in the possible error of every place will do boundary condition check, so that the development of the program will be a lot of stability, that is, error will be easy to modify. Wild way out of the master, the general development speed, but after a lot of bugs, often need a long time to modify. And the real master, the pursuit of the realm is Bugfree code (zero defect codes).
Recommendation three: You must write 100,000 lines of code, do not take the luck
A programmer makes perfect as a carpenter. Programmers have to write enough code to have a program that will have the feeling that this is a coolie live, without any shortcuts to go.
Computer is a practical science, without the ability to do the support, it is difficult to make good scientific research. One of my seniors is a ph. D. At Carnegie Mellon University, a computer department in Carnegie Mellon University that is famous all over the world, saying that each PhD student must write 100,000 lines of code to graduate, and that Carnegie Mellon University PhD can enter any big business without interviewing. But most of the postgraduate and doctoral students in China are weak in their practical ability.
Have not written enough code quantity, want to become a master is impossible, can only talk on paper!
Recommendation IV: Always remain curious
Computer technology has been upgraded very quickly, and every year there are a variety of new technologies appearing. In my past career, only programming language, I have used basic, MASM, Pascal, C + +, VBA, Delphi, Java and so on. You need to keep your curiosity and learn all kinds of new things in order to stay in the future for a few decades in your career. You have to understand why the iphone came out a lot of experts with the iphone, now all the time thinking about the change of gPhone play.
People's energy is limited, master often work pressure is also relatively large, how in a limited time to master the entire industry dynamics, is indeed a not simple thing. My experience is often to see the industry's various technical magazines, to participate in a variety of gatherings, can save a lot of time. The most important thing is, to make a few knowledgeable technical experts, and communicate with them, must benefit greatly!
Recommendation five: Do not confine yourself to the technology itself and devote more attention to the user.
To do the first few, is already a daughter difficult to ask Master. But a real master needs to know what users need, how to make users satisfied with the product.
Now the software research and development more and more strong team collaboration, many teams have been configured with specialized requirements analysis engineers, user interface and user experience of the designer, software research and development of the Division of labor more and more fine. Many programmers think that as long as the technology to do a good job, not to control the user needs and user experience. In fact, the requirements and interface solutions can not be written very fine, the implementation of the actual or the programmer to achieve their own. At this time, the gap between good and bad soon reflected.
We write the program's ultimate goal is to meet the needs of users, not simply to complete the requirements planning program functions. Therefore, programmers must carefully try to figure out the user's psychology, can understand the real needs of users.
Secondly, how to design interactive interface, so that users feel good, comfortable to use, which is a lot of learning. Let me give you a small example, there are three buttons in the upper right corner of each program window, such as minimizing, closing, and so on. Jobs found it difficult to use, and he proposed switching to red, green and blue traffic lights. After this modification, sure enough Mac OS pretty and easy to use a lot.
At present the Internet and mobile phone application development, are very much emphasis on small team research and development. This mode of research and development will be much faster, but the requirements for the overall quality of programmers are higher.
I strongly recommend that programmers not only be limited to technical skills, but also need more energy to consider user-related issues, learn to understand the needs of users, and strive to design easy-to-use products. Do this in the program master, entrepreneurial Cheng is very big.
These are what I said the "Entrepreneurial ten standards" mentioned in the "technical excellent" requirements.
Such a technical master, if the right to capture the product direction, and have the ability to take a team, entrepreneurial success opportunities! In fact, the vast majority of entrepreneurial technology companies, the founders are such people! such as the thunder of the Zou Shenglong and Chenghao, UCWeb He Xiaopeng and Liang.
Article: Chicken Peck Rice Blog, reprint please specify.