[Reprinted] How are great programmers made?

Source: Internet
Author: User

In recent weeks, a report reflecting Netflix's corporate culture has been widely circulated on the Internet. This report lists many of Netflix's commendable practices, including how the company recruited and dismissed its employees. There is a lot of information about how Netflix treats its employees, which makes Netflix a very attractive workplace. The report mentions a list of what employees expect, but does not list it. At the beginning of the report, we talked about the enterprise value issue, which was written from the perspective of employees. Unfortunately, we did not discuss this issue.

I am not working at Netflix-you know (I am at Yahoo! Work)-But I deeply feel that no matter where you work, the process of becoming a good employee and a good software development engineer is the same. The following lists the experience and quality of Great programmers.

Only do the right thing
We have a great challenge for the software team, that is, how to do things in the right way. What is the correct method depends on what you are doing and who you are. What is included in the so-called "correct method" is not the focus, but whether you can stick to this method. Junior programmers usually cannot stick to this problem, while senior programmers can always stick to the principle. There may be a "very urgent" project, or this project is special and cannot be developed as a regular process. This is just an illusion. Good programmers know that they must always do the right thing in all circumstances and circumstances. If the development in the correct way will lead to failure to complete the task on time, they will know that the project cannot be completed on time. Do not compromise. Engineering Quality is your only ultimate proof of being a good programmer. Make sure that all your code is correctly written in 100% in the correct method. You must follow the standards of a good programmer.

Willing to suffer
It sounds silly, but it is true that excellent programmers are willing to take care of the pain they have brought to their work. If you say a great programmer, I can tell you that in his or her career, each stage has had a hard time solving a problem. Good programmers taste the challenges that difficulties bring to them, which makes them day and night. They understand that the problem must be solved.

Programmers who are not very good are different. They first want to seek help when they encounter signs of trouble. In the face of problems, they are used to seeking help rather than trying to solve the problem themselves. Their favorite sentence is: "Help me see this problem ". The first reaction of a great programmer is that I have to solve this problem on my own. Solving problems is a skill and a skill that is highly valued by excellent programmers.

Good programmers become great programmers through painstaking training. The painful training means that you can only seek foreign aid when you are powerless to solve this problem. Asking for help means admitting defeat, so try to reduce this situation. Willing to suffer. Make unremitting struggles with problems. This is what you want to learn.

Note: I am not saying that you cannot seek help from others. What I'm talking about is that you should first try to complete the task by yourself. If you cannot complete the task, ask for help. Do not seek help easily before you have worked hard. You often find that when you know the solution, you realize that you can solve this problem with your own strength.

Endless Learning
If someone dares to claim that he does not need to learn any new knowledge, I absolutely do not want to work with him. In some industries, you may be able to do well without learning new things for many years, but software technology innovation is so fast that you have to keep an eye on it. Your boss has some skills to hire you. If your skills are outdated and expired, then you will have no value. To become a great programmer, you must first acknowledge that you are not at all. You must work hard to find and learn new knowledge every day.

Find people in your current company or organization that can help you learn and admire you. Ask for their opinions on complicated issues and see how they think. Introduce your solutions to them and ask them for criticism and guidance. If you cannot find someone around you who can be your mentor, either you are not looking for it seriously or you are staying in a company that shouldn't be left. If you cannot learn and make progress in your current job, it is time for you to change your job.

To read blogs on the Internet. Focus on some seminars. Communicate with other programmers. Great programmers never stop learning.

Share knowledge
Some programmers believe that their only value lies in their knowledge, so sharing their knowledge will reduce their value. This is a big mistake. What makes you valuable is not your knowledge, but how to use your knowledge to create value for the company. Will there be more ways to create value for the company than to share knowledge with others?

I once interviewed a company. The idea of not sharing knowledge, mutual confidentiality, and mutual protection is deeply rooted in this company. In such an environment, there is a vicious competition between employees, which directly leads to intrigue and frame-up. I don't want to work in such a company. If everyone is confused about what they know, you cannot learn anything.

Great programmers want others to know what they know. They are not worried about losing their advantage because they believe that everyone will do this. Great programmers are happy to see their peers grow and succeed. A company should be made up by a group of people who like to share knowledge, just like people on the sports ground, so that every member of the team can be strong and the entire team can be strong.

HelpingAdvanced Interconnection
Great programmers never say "this is none of my business ". They are always willing to lend a helping hand. They often do their work to help new programmers. If a task must be completed on time and no one else is competent, the great programmer will take the initiative to undertake the task. They never laugh at people who ask for help, even if the problem is so small, so meaningless, and worthless. Great programmers attach importance to their teams and are willing to do anything for them. No matter whether you want to write 1,000 lines of code or edit an image, Great programmers will immediately seek help.

Ten years old
Great programmers are not born, but made the day after tomorrow. They are created by the factors mentioned above, and work hard. If you just realized this, it's not too late, and you still have enough time to become a great programmer. Patience is the key. A great programmer can not achieve anything in the New Year's Eve. Some may take years, while others may take a decade. No one wrote tears for you. A good company will help you and provide a stage for you when you discover that you have the potential to become a great programmer. And you will prove yourself through your hard work and making progress in your team. To be firm and self-disciplined, the road to Great programmers will be long.

Update (5 Sep 2009): Add a statement for "willing to suffer. It seems that many people have misunderstood my point of view.

Statement: all points and positions in this article come from Nicholas C. Zakas himself, and Yahoo !, Wrox Publishing Company, o'reilly Publishing Company, or others have nothing to do. I only represent myself, not me.

What makes a great software engineer?
Address: http://www.nczonline.net/blog/2009/08/21/what-makes-a-great-software-engineer/

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.