Programmer: Where is the gap? How far are you from a developer?

Source: Internet
Author: User
The technological growth of developers is an eternal topic. Although the article "How to become an expert developer" defines the concept of experts and the general path for developers to grow to an expert level, it ignores the following question: why can only a few people become experts and experts? Program Member? What is the gap between programmers and developers?

As a matter of fact, we have been paying attention to this issue and have conducted surveys and visits for several months. A dozen of our technical experts have answered this question unexpectedly, it is also different from what many entry-level developers think.

The author said:

We have investigated the problem of "Where is the gap between you and the developer" among some programmers with 1-2 years of development experience. The answers are roughly summarized as follows:

  • Project experience. Most entry-level programmers believe that a large amount of project experience is the key to improving their technical skills. Experts often have more project experience and have more extensive ideas and methods to solve problems.
  • Understanding of languages and platforms. A considerable number of people feel that their technical accumulation is not enough. Many syntaxes and APIs are unfamiliar. Some even need to read the syntax manual to complete a paragraph.Code. Experts are already familiar with languages and platforms, and many things have come to the realm of "Confidence.
  • Master Gao tu. A few developers complained that they could not obtain good project practical skills and guidance without master or master programmers. Masters often have good opportunities to gain better experience at the beginning.
  • Effort Level. Some developers feel that they are not working hard enough, have not learned much in depth, and have not worked hard on many projects. They believe that the technical level of Masters is bound to the hard-working technical accumulation.

These gaps do exist and are universal. However, if you think about it carefully, it is somewhat subjective: Why can someone gain more experience and grow gradually in the same project and team; why can someone use the same SDK and IDE, why can a master be "trustworthy"? Why do 3-5 programmers stand out from the crowd when a master leads 3-5 programmers?

Experts say

The question "where is the gap" is different from the expert-level development experts interviewed. These answers mostly point to the technical connotation and the developer itself.

Code "discretion" and "discretion"

Programmers may not be much more efficient in programming than ordinary programmers, because they will be stingy with every line of code they have. This "mean" has two meanings: one is the attention and integrity of the project, and the other is coding from the perspective of performance and optimization. In fact, what is mapped here is a developer's technical vision.

A number of technical experts emphasized the overall view during project execution. In the face of a project, even a common member of the team should try to examine the development requirements from the perspective of the overall architecture of the project, and make optimal predictions and configurations for each module, interface, and communication. In this way, we can examine the technical layout of the entire project and predict possible problems.

After the entire process is determined, the specific module implementation is implemented. Each line of code not only has contextual considerations and planning, but also has an overall layout between modules. This is the technical field of view in the module, such as interface definition, annotation readability, and code execution efficiency. Before writing a line of code, consider whether it will affect the entire system and whether it is convenient for other interfaces to call.Technical subconscious".

According to some technical managers who often lead entry-level developers, most people only consider the modules they are responsible for development. They lack a global technical vision and a harsh attitude towards code performance, in this way, although the project can be completed by delivery date, it is a great obstacle to the project quality and the developer's self-improvement.

Great trouble

Developers usually reject some technical issues at work. Everyone hopes that the projects in their hands can go smoothly and there will be negative emotions when there is a problem. Some of the development experts we have seen are very positive towards technical issues.

Problems and difficulties are opportunities for improvement. To solve a problem, the capability will be improved. To solve a major problem, the capability will be improved. Many technical experts like it very much. If the development work can proceed smoothly, it is certainly a good thing, but it is not highly difficult. Experts will think that there is no technical challenge, it is difficult for masters to make full use of their passion in the project.

Some technical managers also reflect that it is a lack of mentality for entry-level programmers to greet and solve problems with an open attitude. The attitude of "like big troubles" is also essential for programmers to advance to development masters.

Code reader

Developers are code readers. Most technical experts read code hundreds of times as much as common programmers. Code Reading takes much longer than code writing. Bruce Eckel, author of Java programming ideas, describes the benefits of reading code in two ways:

  • Code Reading takes longer than writing code. This helps you understand your code and improve or modify bugs.
  • Code review is the most effective way to improve software defects, but we often "don't have time to think about it ".

The readability of the Code helps other colleagues in the team help you solve technical problems, and the correction of technical problems can prevent you from making the same mistake. Code review allows you to view finished projects from a higher perspective. This often leads to unexpected gains-you find that you can do better with the same project.

In addition to their own and the code in the team, masters are also willing to spend a lot of time studying "code Daquan", absorbing different technical ideas from others' code and integrating them with their own technical styles. While most common programmers only read program code related to their own projects, and seldom allocate energy to reading excellent code.

Other "gaps"

  • Participate in open-source projects. Experts often participate in two or three open-source projects to complete the implementation and later upgrade of a project from start to end. Open-source projects can work with excellent programmers from all over the world to complete their work, learn and apply cutting-edge technologies, and get more technical feedback from you.
  • Technical explorer. Expert developers are often the evangelists of technical explorers and new technologies. Experts tend to be unsatisfied with existing technologies (and often complain about the shortcomings of these technologies) and can clearly see the defects of existing technologies. And open-sourceCommunityThe combination of technologies gives masters more opportunities to access the most cutting-edge technologies and application concepts. These technologies are often the best solutions to solve existing technical defects. Experts will also bring new technologies to China for promotion and application, and become experts in this new technology.

What do you think of in comparison with the answers of the previous author?

Technology and dream

In fact, there is still an answer not listed in the "say" section-Technical enthusiasm. Although the answers given by several developers have their respective focuses, they have mentioned this point almost at the same time and "have enough technical enthusiasm ".

Most programmers only take program development as a job. They care about the prospects of the platform, the advantages and disadvantages of the language, and the reward level. They do not want to study for a technical point repeatedly, I don't want to carefully test a bug, and I don't want to spend more time improving my technology. WhileDevelopers often have simple technical dreams and are willing to spend all their time on the technology..

In the final analysis, this is the topic of technology and dream: What kind of dream do you want to achieve with technology? In your dream, what is technology?

This proportion is the real "gap" between you and the developer, and the biggest "distance" between you and the developer ".

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.