[Report of csdn on September] new technologies and technologiesProgramming LanguageSome people say that if they do not move, they will go backwards. If they are unable to master more than two mainstream programming languages or technologies, it will be a matter of time before they are eliminated. Some people also think that "one trick is to eat all over the day", as long as you are proficient in a language technology, you can also become a sweet spot in the IT workplace. In the same way, in the face of endless new programming languages, some developers let go of what they have mastered and learn new languages, such as Ruby, elang, scala; more developers have chosen to stick to it, and have accumulated more experience by exploring the language technology they are using in depth.
If your goal is to become an architect, how should you make your choice in the face of the industry's dazzling technologies/languages, csdn interviewed Lu Jianwei, an Enterprise Management Software Development Company, in this issue. Lu Jianwei has 10 years of experience in business development and operation of enterprise management software. He has served as the chief architect of a medium-sized software company, Microsoft vendor business consulting consultant, Borland Special Consultant, and CTO. Years of commitment to enterprise management software development process management, product framework, industry development/technology development/product competition research ). He will discuss the topics with you and share his views.
Lu Jianwei first said that he was an architect. Although he is out of the architecture, he is in the CTO position, focuses on product strategic development, development process management, product framework, IT industry development and changes, new product and new application profit models, customer industry changes, and competitor changes. However, I have been tracking popular technologies. Although taking into account the long-term survival of the company's products and competitive strategies, many of the latest technologies cannot be quickly applied to product development. However, his research on the maturity and starting point of the new technology has always been a matter of interest to him.
Reporter: If you want to become an architect, how can you make a choice in the face of the dazzling technology/language in the industry?
Lu Jianwei: First of all, I will draw a picture to layer the architecture of mainstream IT technologies.
From this figure, we can see that every technology is developed at its own level to make up for the existing product and architecture problems at this layer. Lu Jianwei first reminded his friends who want to be architects, whether they are studying. net, windows, and sqlserver, that they must have an architecture idea from now on. It should be layered, from point to line, from line to plane, from plane to system to split horizontally and vertically.
In addition, a product architecture is often so multi-layer, and in the application software architecture, that is, the presentation layer, business layer, and data layer. Other middleware and ready-to-use technologies of VM and OS are used by us. we generally do not need to go into depth. The presentation layer, business layer, and data layer have interfaces between the layer and layer, rather than hard interfaces. Otherwise, the interface will become a piece of steel. In general, architects with insufficient architecture experience are prone to such problems. The layers are separated and they are complacent and think that the architecture is highly scalable. However, the specific application is hard and cannot be moved. This is why the interface layer is lacking.
Reporter: through your explanation, you have a general understanding of the current mainstream IT architecture, but it seems that you are not quenching your thirst. For some new beginners, how should they choose from them? Whether they are proficient in a language or two-language technology, which is more profitable and promising to find a better job. This is an issue that everyone is more concerned about. It is a distant dream to be an architect. The problem of food and clothing must be solved first.
Lu Jianwei: To answer this question, we need to answer the following questions separately depending on the individual's situation:
If you have a degree or ability and can only enter a general software company or integrated company, then Microsoft's technical system is good. Because of the Microsoft system, there are a lot of learning materials on the Internet, and a large number of enterprise applications are developed using Microsoft technology, and many companies also use Microsoft technology. So there are many companies. You are looking for a job. Microsoft's technology is generally fixed: C # + Asp.net + sqlserver + Visual Studio.
If you have a degree or ability to enter a company that is a large-scale enterprise application, you can choose a Java technical system. Currently, large enterprises are basically developed using Java. You can start learning from eclipse, structs, hibernate, WebService, tomcat, Apache, JBoss, pojo, and Oracle, and then learn WebLogic, websphere, portal, and workflow technologies.
If you want to enter an Internet company or a start-up company of Web2.0. In general, PHP, MySQL, Apache, Ruby on Rails, and Python are your learning objectives.
If you want to enter mobile phone development, then Symbian, C ++ (Nokia, with the largest market share), and j2's (Android product, Google released, have not yet been officially produced yet, but it should be promising) windows Mobile (Microsoft, good development, from development ideas to tools to languages, are all familiar to you ). In the short term, these three categories will be fully established, and no one will take them out. Five years later, it is hard to say that in at least five years, it is the mobile phone age and the mobile phone wireless age. Every vendor is scrambling for this piece of meat with the greatest future money.
If you want to enter the current hot online gaming company. As a server, you must be familiar with C ++, excellent network transmission technology, concurrent thread processing, and understanding of Linux programming as well as understanding windows programming. If you want to do the client, then Image ProcessingAlgorithmYou must pass the test first. Of course, many engines, tools, AI packages, material libraries, and scripts now reduce the difficulty of client programming.
If you want to enter the embedded programming that has been very popular for the next 10 years, then C ++, and you have to pass through your microcontroller programming. China is the world's top manufacturing power, and this situation is hard to change within 5-10 years. Manufacturing, in the past, was lower than the cost of workers. But now the growth of materials and labor puts a great deal of manufacturing pressure. You can only improve your manufacturing capabilities.
For high-end products, high-end assembly lines are required. Moreover, China's electronic products are becoming more and more powerful, and Japanese products have gradually become the world of Chinese goods from the first dominant Chinese products. Embedded programming is required in many fields, such as mobile phones, digital cameras, household appliances, refrigerators, DVDs, air conditioners, automobiles, transportation, medical care, and numerical control. Even chang'e 1 is a model of embedded programming. The communication facilities such as Huawei and ZTE are also embedded programming.
Of course, you can take the lead. In the past, it was notes programming. With the rise of domestic OA, notes programming gradually declined. However, large enterprises in China are now launching ERP, and Oracle or sap erp is widely used. These ERP products provide custom programming and development environments and complete application APIs. Large enterprises need customized development to apply ERP, and a large number of such talents are lacking. However, there are very few learning materials on the market, which is a difficult problem.
In addition, outsourcing is also very popular now. The establishment of outsourcing parks in various regions is just like the establishment of software parks in those years. To enter an outsourcing company, first pass the Japanese or English language. Outsourcing in our country is generally from Japan and Europe and America. In development, C ++, C #, and Java are also the mainstream languages.
In short, we have talked about a lot of development technologies and languages. In fact, there are similar languages of different magnitude. I learned one, and the others are similar. I think the development language is generally divided into: the core underlying development language, the business operation layer development language, and the script layer development language. The core underlying layer is generally the most widely used C/C ++. After all, a large number of operating systems and hardware drivers are written by C/C ++, ensuring both performance and Control depth and strength. At the business operation level, C # and Java are the mainstream, representing the two technical systems in both Microsoft and non-Microsoft camps. Delphi and VB work at the business operation level, but after all, they are not currently supported by the mainstream vendors of the two camps (the wide application of a technology not only lies in the innovative nature of this technology, it is also the Industry Promotion of companies that support it .).
At the script level, the past ASP, Perl, PHP, Ruby, Python, and ASP. Net work at the script level. The development languages at each layer draw from each other's competitive development, so now you will see Java and C # getting more and more like Ruby on Rails, the open-source community support rails framework was immediately available in other scripting languages.
Therefore, from the above analysis, C ++, C #, and Java are all mainstream. It is widely used in all aspects. There will be a lot of opportunities and space for which you choose. However, if you have learned C ++ and are afraid that you will not be able to touch the C ++ job in the future, but want to learn C # and Java, then you will eventually achieve nothing.
Reporter: From your point of view, developers must first consider learning other new technologies on the basis of mastering a language technology. However, developers may worry that they have learned outdated technologies and are not recognized and accepted by the society, which is not good for their future development. How can developers follow up on the latest technologies in a timely manner?
Lu Jianwei: in fact, the current technology is making up for and improving the current situation of the problem domain it is committed to solving, and the real technological revolution has not yet occurred (Semantic Web will be a revolution, but when will it happen? Who will lead the next revolution ). Whether it's Ruby on Rails, Google's Ajax, or the current competition for flex and sliverlight, it's all about improving the status quo.
However, what we need to see is that no matter how many new technologies of 3D Internet and 3G mobile phone terminals are integrated into Internet applications, there is a trend that is the general trend and we must see it. From the rise of XML, RSS, XMLHTTP, JSON, Google customization, Google API, SAAS, virtualization, cloud computing, WebService, rest, SOA, scripting language, and mashup, in fact, they are all moving in the same direction. That is: Open API.
Both President Sun and President Oracle once preached that the network is a computer. It is now true.
We traditionally program in windows. In fact, we generally cannot call and access the Windows Kernel. We generally work at the API level. ThereforeProgramIn front of the staff, it is the Windows API, which is our usual Windows programming. But how do we program on the Internet? We used to create websites one by one. When websites are everywhere, URL connections link the entire Internet, and the Internet becomes a giant Earth computer. How to program on this giant computer is something that Microsoft, IBM, and Google are currently working on and competing with each other.
We are able to participate in the global industrial chain by following the tide of technology.
Therefore, when a new technology comes out, let's first look at its association with existing technologies to see what the common characteristics of these associated technologies are, depending on the research focus and support of the big companies that lead these technological trends, we will know which mainstream technology trends are going in. Of course, in this mainstream, various companies will launch their own products based on their own competitive advantages and disadvantages, and their arguments also have their own key points. But we don't need to be dazzled, because they all share the same path. They all need to solve a problem. [Reporter/Fu Jiang]