Let me introduce you to the work I am currently doing.
I am currently engaged in the design and development of distributed service architectures, and application development on Ali's big data platform. Our entire system architecture uses the idea of "front-end separation", the front-end focus on data presentation, back-end focus on data production, through rest services to integrate the front and back, all applications are stateless, can be scaled horizontally. We split the entire system into a number of "microservices," which are invoked through a unified interface, where each service is isolated through container technology, and the service can be published on a unified service management platform that monitors the operational state and lifecycle events of each service, and provides the ability for service callers to discover the service. , the service can be smoothly upgraded.
Ali has a lot of excellent middleware and basic services, can quickly help us to build application systems, and these technologies are all open-source inside Ali, we can learn from the source code and documents a lot of valuable experience. Ali also provides a strong technical atmosphere, each student is very focused on their own areas of work, we are meticulous work, mutual cooperation, the direction of the same.
How did I get on the road to technology?
2008 College Graduation, I left my alma mater Wuhan University of Education, in the Dean Shi Sheng Teacher's recommendation, I came to Shanghai, this is very unfamiliar to me place. I was fortunate to join a start-up company called "Momentum Software", the company's boss was the CTO of the technology, he is also the founder and CTO of Primeton Software, his name is Huangliuqing, he is also teacher Xue's college classmates. So, my boss became my teacher, I used to call him Mr. Huang, including the company's other senior colleagues also became my teacher, because I want them to learn more valuable things.
When I first started working I learned what is cloud computing? What is SaaS, PaaS, IaaS? It took us three years to develop a PaaS platform called ODE, which allows users to tailor their software to the platform, ultimately offering SaaS-based products to their customers. Indeed very proud, at that time we are already in the cloud, just did not think that the cloud will be in China to get such a good market, perhaps only a teacher Huang thought of it.
In 2008, I brought back the "first bucket of gold" for the company, which is also a milestone in my shift from programmer to project manager. At that time, I led the team far to Shenzhen, for the National Securities Company to develop the broker management system, this project for me personally is a sovereign wealth, I began to learn how to deal with people, how to do demand analysis, how to change the needs of technology, how to lead the team to work together as a small partner. Learning too much, but I still choose to leave the momentum software in my fourth year of work, when I first joined the Momentum software, the company only 5 people (including the boss and the front desk), when I left Momentum software, the company has been around 200 people. Thank you, Miss Huang! I learned a lot from him, and his thoughts and attitudes still influence me today.
My second job is to choose my most familiar securities and finance industry, is also an entrepreneurial company, in this company I served as a technical manager, management of the entire technical team, from the pre-sale to the sale of the project, I personally lead the team to complete. Although I have only been in this company for two years, but in this short period of time, I learned how to improve the development efficiency, how to train technical team, how to select technical personnel, how to establish a corporate culture. But in the end I found a problem, the more I want to do well, the more difficult to do, in order to achieve a thing need to do a lot of trying to do things lack of correct and effective methods.
How to become a good Java architect, not a yard farmer
Looking back on my work for the first six years, I have been growing up in a startup company, although I can quickly learn things, but it seems difficult to learn more standardized methods of doing things. So I chose a new job opportunity, came to TCL communications, this is a very large company, the company's research and development management process from the French Arikat company. I work as a Java architect in the company, and I am the technical head of the entire Java team, although the team is not particularly big. I have been in this company for three years and learned how to integrate existing resources, how to do things according to standard processes, how to design system architectures, how to work offsite, how to work across teams, and how to communicate in English. To tell the truth, I did not have any work pressure at that time, can commute on time, never worked overtime. Although I have a lot of free time, but I did not choose to waste time, but began to write a technical blog, and precisely because of these technical articles, has changed my follow-up career development path.
Java will be the mainstream for a long time, what frameworks do Java Web development use now?
Commonly used such as spring MVC, Struts2, etc., the domestic jfinal, Nutz and so on is also good, of course, Smart is also a good choice.
There are a lot of people with a certain web front-end development experience, many will have this idea: those who write the framework is very good, when I can write a framework of their own? Sometimes look at other people's framework code, and feel very complicated, I have some suggestions on this and the new students need to learn what basis? Share some good ways.
Abstract Ability: Abstraction of business and technology. Business abstraction is the ability to create the perfect entity classes and their connections after analyzing the requirements. Technology abstraction is a layering of the overall architecture and interaction between the layers. This is critical if the technical abstraction is insufficient, which can lead to an inflexible architecture of the entire system, which is difficult to maintain and extend.
Depth of knowledge: at least in a field of experts, such as Message Queuing, ACTIVEMQ familiar with its source code, know its implementation.
Excellent learning Ability: learn new technologies and cutting-edge technologies and use them to solve business problems at work.
So how do you do it? I think you can start with the following steps:
1: Solid Java Foundation, Think in Java to understand the content described, to do this step congratulations to become a programmer.
2: Skilled use of mainstream framework, such as: Mybatis,spring.
3: Studied at least one web-based framework of source code, such as spring MVC, struts and so on.
4: Architecture over or participate in high concurrency system design, know how to deal with unexpected situations.
5: To their own business can be based on their own knowledge dimension, the proposed optimization or forecast its risk points.
In fact, can become an architect with the opportunity to have a great relationship, such as a programmer, the above has done, but the company did not give him the opportunity to do, a real framework of opportunity. Because before the architect does not leave, he will not have the opportunity, this is the reality!
The homecoming of the technical man
What is the way to go on this route? What is the choice of transformation?
There are at least several routes to go, such as: in-depth technology, transformation to do products, transformation to do management, need to according to their own expertise and character to choose, do their own things.
From technology to management, to their own requirements are relatively high, say specific points, need to see their emotional quotient, the experience of human life, communication skills, oneself also need to have enough mind, to tolerate some things, but also need to have enough personality charm to attract others, let others willing to follow you work together. Managing something is hard to learn from books, but some classic management theories have to be learned.
In comparison, it would be easier to continue in-depth technology or transfer from technology to products, since many times there is less need to deal with people.
If you want to learn Java engineering, high performance and distributed, high performance, in layman's language. Performance tuning, Spring,mybatis,netty source analysis and big data and other knowledge points can come to me.
And now I have a platform to provide you with learning, so that you accumulate experience in the practice of mastering the principle. The main direction is Java architects. If you want to get a high salary, want to break through the bottleneck, want to compete with others to gain advantage, want to get into the bat but worry about the interview, can add my Java Architecture Advanced Group: 668395460
Note: Dabigatran requirements
1, with 1-5 of working experience, in the face of the current popular technology do not know where to start, the need to break through the technical bottleneck can be added.
2, in the company for a long time, have a very comfortable, but job-hopping interview wall. Need to study in a short period of time, job-hopping to get a high salary can add.
3, if there is no work experience, but the foundation is very solid, on the Java work mechanism, common design ideas, Common Java Development Framework Master Proficiency, you can add.
4, feel that they are very cow B, the general needs can be done. However, the knowledge points are not systematized, it is difficult to continue the breakthrough in the technical field can add.
5. Ali Java senior Daniel Live to explain the knowledge points, share knowledge, many years of work experience combing and summary, with everyone comprehensive, scientific to establish their own technical system and technical knowledge!
6. Small plus group are not given, thank you.
How to become an excellent Java architect from the code of hardship, the architect of the programmer's Path