How does a young programmer quickly evolve into an architect or technical expert? __ Architect

Source: Internet
Author: User

have been doing architecture design for years, two days ago I was chatting with a young colleague, who has been working for 3 years since graduating, and is the youngest team leader in my current new company (in my new company, in the leader position, I work for 7, 8 years for 80%), He now feel very confused, said busy communication every day, basically no time to write code, but they later want to go to the architect's way down, very tangled. So an overtime night, come over and chat with me about their own ideas. In fact, this is a typical mentality, in the end is to go to technology, or to management go. In fact, to be honest, I had this doubt and concern 1 years ago, not to mention the younger of them. About six months ago, I was in the company, although I was hanging a senior project manager position, but in fact, to manage people, have to do architectural design of course also write code, but the company form is not very good, American customers want to transfer business to India, so ready to change jobs (although not very want to change, after all, in the previous company also stayed for more than 5 years), So there have been indecision at that time. But ultimately decided to continue on the path of the architect, because I feel that management and technology is not contradictory, who said that the architect only need to understand the technology, and do not need to know how to manage it. In fact, once you've risen to the architect's level, not only need to communicate with developers, but also with managers, customers, operation, testing and other different roles of people to interact with, but also need to carry out risk prevention and control, project cost estimates, etc., if there is no certain communication management contingency has project management capacity, Is definitely not going to be an excellent architect.


So how quickly to become a qualified architect. In fact, it is from two aspects:


#1 Professional Skills

@ First of course the basic knowledge to be solid, some classic professional books must see. For example, design patterns, algorithms, data structures, programming languages in the field of professional books, etc.

@ as an architect, review other people's Code and giving reasonable advice is basic, such as the rule of variable or method naming, so code encyclopedia, refactoring, improving the design of existing code, clean codes and so on definitely need to see.

@ For a certain technical area or business area, there must be a technology is proficient, because so you can realize that when you meet the technology you do not understand, how quickly to become an expert in this respect.

@ usually have time to do a lot of code training, that is Martin Flower often said kata practice, this analogy from Taekwondo, taekwondo players will find some basic moves every day, repeated practice, so as to train the conditions of the launch of muscle, then for our programmers, There must also be continuous programming training, such as the colleague mentioned above, the suggestion is that although most of the time spent on communication and coordination, there is no chance to write code, but they must use their spare time to find some examples to contact, for example, to participate in open source projects, Or go online to search for some examples of classic kata contacts, or whether there are gadgets in your work, whether you can improve your communication efficiency, except for children who have written code every day. Please refer to another article I forwarded: http://blog.csdn.NET/chancein007/article/details/53731514 and another article about practicing Kata code online (http:// blog.csdn.net/chancein007/article/details/53792477)

@ Better to be proficient in a language on the basis of learning other languages, thus standing in a higher angle, for the program language has a higher level of abstraction, for example, after learning Java, you can learn ruby,groovy,c# and so on, in fact, the language is mutual reference, For example, Lamba expression, even Java also slowly toward functional programming direction.

@ If you have time, be sure to maintain a blog, since the choice of architects, it is decided that their future is not only a technical expert, but also to become a preacher, for business organizations or other it peers in the community to contribute their own modest strength.

@ Participate in some of the software professional meetings or activities held in the community to understand the current more popular technology and framework.

@ This is not advocated, I once had a colleague, almost every year to update the resume 1~2 times, not to really change jobs, but through the interview to get the current market most companies are using what technology and framework. For this article, please use caution ....

@ If there is a pair of programming opportunities must cherish, especially with the master Montana together when the pair.

@ If everyone has done a very good job, this time we can look at the architecture design of the books, such as enterprise Application architecture model, the beauty of architecture and so on.

@ Go to 51Job to search for the architect this job tag, look at the technical requirements and standards of the architects in different industries, then combine their current industry and your own technical characteristics, such as good at the front or back end, selective learning about the technology or methods that interest you.



#2 Soft Skills (in modern society, a qualified scientist is not only a technical expert in a particular industry but also a professional social activist)

@ encountered problems, we must think more, encountered a problem, if resolved, we must reflect on why can be resolved, if later encountered similar problems,

How to solve the problem more quickly.

@ The importance of English, self-evident, because now many new technology framework of the Chinese document is very small, even if translated into Chinese, but also second-hand (the domestic development of some of the open source framework, excluding)

@ have time to read some of the communication books, if there is the opportunity to participate in communication, we must think how to make communication better and more comfortable.

@ If you have the opportunity, you can take the test PMP, but if you do not want to participate, it does not matter, at least to dabble in project management books, or later if you become an architect, the client or manager to give you some project management of some professional terminology, then will be confused.

@ The architect is in a sense a role, not a position. Be sure to keep an empty cup of mind at all times.
@ Be sure to have a thirst to learn and endure the loneliness of the heart.

@ The current technology festival is very fast, especially after getting married and having children. Must make good use of their own fragmented time, for some technology, at that time do not understand it does not matter, but must remember and understand its key words, this is mainly to broaden their horizons. For example, now you want to develop a system of your own, the result has an open source framework has been achieved, but also very stable, at this time, there is no need to repeat the invention of the wheel.

@ with different technologies, programming languages, design patterns and structures, and so on (even if it doesn't give you direct help in everyday life). You never know if this knowledge will come in handy in the future, but it's definitely good for you.

@ at work, be able to help others solve technical problems, we must try our best, because this can not only win the goodwill and reputation of colleagues, but also can increase your experience in solving problems and improve your technical thinking ability

@ must be in control of their own time, no help to the work of the meeting, can not participate as far as possible not to participate, of course, corporate security, corporate rules and regulations if it is mandatory, the participation also have to participate, but if there is no efficiency and wrangling of the meeting, try to avoid participation.

@ Programmers to withstand loneliness, to dig deep in their own fields, can not see what fire, learn what, must have their own ideas and judgments, if not decided, can be senior colleagues or friends to communicate.

@ as much as possible to participate in the code in the project, because the architect can not be detached from the project.

@ If you have the opportunity to exercise your ability to speak and PTT in a popular environment.

@ have the opportunity to do more knowledge sharing, because once you have shared knowledge, you will be impressed by this technology, but also to establish a good technical image of colleagues, so as to win more expert influence rather than position influence.


It's just what I can think of now, problem easier, knowing some of the experience above, does not mean that young programmers can succeed immediately, after all, this requires a Phoenix Nirvana and practice process, but certainly can help young programmers who are interested in less detours, and later if there are other ideas, Or the reader has other good suggestions, I will continue to update.

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.