10 years of programming experience)

Source: Internet
Author: User
Ten years of programming experience (transfer)-General Linux technology-Linux programming and kernel information, the following is a detailed description. I chatted with my friends and was a technical director of a large Internet Enterprise in China. My friends summarized the painstaking efforts of his nearly ten years of R & D work into two points, I didn't understand these two concepts right away when I first proposed them. I just had such a concept. I haven't reached the height of my friends in the field of technology, and I can't fully understand his profound thoughts. However, I want to share my thoughts with many new people who have just entered the IT technology R & D field. I will do my best to explain my friend's words and hope to inspire everyone.

The first point is:
Constantly abstract known things. In real life, there are always a lot of scattered things, and the problem to be solved is not just one side. So we extract the common attributes of scattered things and aggregate the same orientation from different angles, it is the first step from the problem field to the programming field. The higher the abstraction level, the simpler your architecture design.

The second point is:
Simulate the experience of unknown things with abstract experience, so that you can adjust the experience until the unknown things can be controlled. With the foundation of the first point above, the second point can be reached. Real-world problems are constantly changing. from unknown to semi-known to known, it is a process in which people understand the objective world, just like the process from innocence to ignorance to maturity.

What is genius? Talking about Bill Gates, talking about talented hackers, friends and I are very excited. I asked my friend, from the two points he summarized, how did genius practice these two points? A friend gave me a thought, saying that a genius is born with the abstract ability. He is not limited to the space in the computer field to look at the problem, he has the talent to simulate and experience the computer field from other areas of the world, and he can even abstract the whole world.

My friend's thoughts are too broad and profound. How can I be understood by a novice programmer like me? However, I pretended to have a deep understanding and continued to nod, while pulling my friends from the mountain to the foot of the hill. I said, "You are too abstract. It is better to tell a programmer in the initial stage how to gradually reach this realm through practice ." I know that my friend has some experience in this regard. He once told me how he got tempered in his first company after graduation. Indeed, my friend soon began to explain: "It's very simple. The initial stage is to concentrate on imitation. Remember not to be overwhelmed by the mess, the competition between j2ee and. net, the revolution of soa, and so on. When you work in the company, there is such a conflict. When you complete a task that the company has stated, you may have used many other people's ready-made frameworks to complete the task as soon as possible. This is okay, but what is a concentrated imitation? That is to say, you need to study these frameworks in your spare time. Instead of using these frameworks, you can write them in the most primitive way. You will gradually understand the constraints of the frameworks, then there is a desire to improve the framework. But in the end, you will also find that, in fact, any framework is better than what you write. However, as you constantly imitate, you will be constantly improved ." The more I talk about my friends, the more I start to analyze the differences between masters and Low-handed workers. "In fact, the so-called fast learning, the so-called masters, that is to say, in the process of imitation, he constantly compares the differences between his own writing and the framework itself, constantly discovers problems, tries his best to solve the problems, and the more he thinks, the more problems you encounter, the positive loop, and your technical capabilities will go up in a spiral way. The low-handed will only wait passively, once the problem is solved, the problem is almost solved, so that no more problems will arise, and the final technical capability will remain at that cainiao stage."

I am ashamed of my friend's words. I am a typical solution. I can solve the problem almost as well. If I can run it, I will never go deep into it. How much hidden danger does this leave to the system, it is also highly irresponsible to you.

After talking about technical things, we want to talk about it easily, but the topic is still inseparable from those new people who are engaged in technology. My friend recently recruited talent for the company and interviewed some graduates of computer related majors in many prestigious schools. My friends said that their technical skills were not solid enough. I said that they had an impetuous mentality. They wanted to earn thousands of yuan in salary as soon as they joined the job, and become a project manager as soon as they entered the company. My friends also felt the same way, saying that there was a strange feeling during the interview, and my friends further raised this mentality to programming to a higher level of cognition, "In fact, I think they are essentially a problem that they cannot correctly understand themselves. In fact, it is very easy to understand the problem first and then solve the problem. If you say that you want to be a project manager, what skills do you need, such as technical and management skills? How long do you need to refine these skills. Programming is not like this. Understanding the problem, abstracting the problem, designing the code, and finally solving the problem, in fact, doing everything is like this ."

This chat with my friends has benefited me a lot. What impressed me the most is not the two aspects of programming and mentality mentioned above, but the following: the technicians are not as dull as people think. Everyone is living in their own way and constantly enlightened about the mysteries of life. The technicians are fighting with computers in a more strange way, with more painstaking efforts, we are more profound in our understanding. However, in the end, everyone will share the same journey.

Article Source: http://www.armjishu.com/bbs/viewtopic.php? Id = 1463
Related Article

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.