Hu Xi: The transformation from rookie to architect
Source: Internet
Author: User
KeywordsIt's like a compilation a metamorphosis a rookie.
An architect is a new career in the software industry that translates customer needs into normative development plans and texts during a software project development process, and develops the overall architecture of the project, directing the entire development team to complete the program. The architect's main task is not to engage in the preparation of specific software programs, but to engage in a higher level of development architecture. He must be very knowledgeable about development technology and need to have good organizational management skills. It can be said that the quality of an architect's work determines the success or failure of the entire software development project.
The architect is actually the overall architect of the software. The chief designer is the master designer, a popular analogy: Deng Xiaoping is the chief architect of China's reform and opening-up, and we can now say that Deng Xiaoping is the principal architect of China's reform and opening-up. The formation of the architect must be accumulated in practice, not several training courses, read a few books can be successful, the architect is in the engineering practice to cultivate!
Architects are not omnipotent. Architects are a bridge between customer needs and developers. In the software industry, the architects that are generally referred to are technical architects, ignoring the concept of domain architects or domain engineers. A good domain expert must be the architect of the business domain, he can give a certain business area of architecture, we can be called Business architecture, only the technology architecture and business architecture close together can really create a good system!
In recent years, the software sector has become increasingly popular with architects, especially for the development of a large number of software products or projects, this role is critical, because the lack of good software architects and lead to project failure of the number of examples, a lack of experience and ability of the architect can also make the project fail faster.
Author Introduction:
Hu Xi, working in Alibaba Group's Alipay (China) Network Technology Co., Ltd. As technical architect, responsible for Alipay technical framework planning, solutions and other related work. Usually like to study OSGi, SOA, dynamic language and other technologies.
As an architect who is not a trained and has no formal knowledge of computer science, I would like to share with you the experiences I have learned over the years and talk about my thoughts on the path of the architect's growth.
Lay a solid theoretical foundation
It's a very long time. Technology is not an overnight thing, but a long-term accumulation of results. A solid basic skill is the beginning of doing everything well. By now I remember a few books that had a very big impact on me:
"C + + programming Ideas"
"Simple and Simple MFC"
Windows Core Programming
"Data Structure" "principle of compiling"
I study computer exactly according to the order of these books, before learning the experience of C do not have to say, and the turning point is "C + + programming thought"-it makes me feel that the program and language is so interesting, still the concept of virtual table, especially the use of pointers, for me to learn the Java language has a great help, There is also a high awareness of polymorphism and language characteristics.
"Simple and Simple MFC" This book, the deepest memory is the powerful macro definition and object-level design. However, the process of learning MFC, I encountered the biggest problem is: a lot of things are black box, which aroused my desire to find out. So then I learned the "Windows core Programming", this book to me the biggest gain is to understand a lot of the underlying operating system knowledge, how the operating system is running. Unfortunately, if you start learning from Linux or UNIX, you should know more about the system.
Then I studied the data structure and the principle of compiling. It was after a lot of practice that I went back to study again. With the principle of compiling, the previous knowledge of the subject was very limited, and later, in order to achieve a thing, to use the scripting language, looking for to find the velocity (later think of the use of groovy should be better), used to feel good. Modifying the program logic before, it is necessary to recompile or modify the configuration redistribution to OK, and now only need to edit and save, you can get the results you want. This fascinated me, so I want to know how it is realized, look at the source code to know that there are JAVACC this thing. In this way, I start with the interpretation of language, and gradually began to learn the process of compiling the principle of crazy, more and more think programming language is very interesting.
Think back to the language of the past and the present, the Sensory programming language is constantly abstract: From assembly, C, C + +, to Java, C #, to a more dynamic language such as Perl, Python, Ruby and so on. No matter how it changes, how abstract, or the compiler principle of the application of the product.
Speaking so much, is to emphasize the importance of theoretical basic knowledge! Although we now use so many frameworks, but if you have a solid foundation theory, these things are the same as toys. The Foundation is a killer tool without a recruit.
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.