On IT field

Source: Internet
Author: User

For it technology posts, can be broadly divided into two broad categories: research and Development and application .

Let's talk about research and development positions. Why research and development? What is the main development?

Research and development are divided into two categories, one is hardware development , the other is software development . Hardware development is mainly focused on the development of electronic hardware products, such as our common keyboard, mouse, mobile phones, audio and other hardware products, so hardware developers are doing this aspect of product development research, its work mainly includes design schematic, design circuit diagram, PCB board design and functional, stability testing, The last is production. In general, the technical barriers to hardware development are high. For example, we have to use the washing machine first have to have the hardware parts of the washing machine, such as motor, flywheel, etc., hardware is the most basic of the bottom of things, must not be missing.

Another kind is the software research and development position. Why do you have this post? Why is the software used? Because although the hardware, but the hardware exposes the interface function is too primitive, and directly with it to realize the function is cumbersome and troublesome. Computer just produced only hardware interface, at the hardware level to achieve complex functions is very difficult, the cost is very large, and the function is written dead on the hardware, because of the curing cause to change the function is very troublesome. What about that? We consider the addition of a more complex logic on the hardware level----This logic is software . Hardware interface is too low-level, need software to make the interface more user-friendly, more easy to use, while the underlying complexity to hide----this is the role of software. But this is not to say that the complexity of the software does not exist, but the complexity of the hardware by the software to undertake it, looks simple but not really simple. The advantage of this is that hardware only needs to provide the most basic functionality, and a variety of complex functions are implemented by software . For a chestnut, the wok is used to stir fry, the hardware part only needs to carry the food and the function of heat conduction, but we can still use the wok to fry a variety of dishes.

Here is a revelation: The closer we provide this tool to the final form, the narrower it will be in the field of application. Computer is the same, altogether computer systems are divided into hardware systems and software systems, the hardware to maintain the most primitive form, the other advanced functions are implemented by the software, so that the versatility of the hardware greatly improved.

In order to help understand, and then to raise a chestnut, almost to the canteen of the people are to eat food to fill the belly, in this batch of people to eat rice, people who want to eat steamed bread, respectively, and separate the less a group of people, both eat rice and eat cabbage people and less. Food can provide the function is to fill the belly, the more simple the function can meet the more people, both eat rice and eat cabbage can achieve more complex functions, so can meet the fewer people.

The same is true of computers, where hardware simply completes the simplest operations and identifies simple instructions (received by the CPU), while the software encapsulates the underlying hardware for more complex functions such as editing images, playing video, editing text, surfing the internet ...

For people, the computer interface is a binary instruction, if the machine language to program (that is, binary data processing), the code is too large, the implementation period is too long, difficult to troubleshoot too much, almost incompetent. So there's a programming language that's easy to understand. Software is the program code that programmers use to write in programming languages, rather than machine language (the bottom-level).

programming languages are divided into low-level and high -level languages , So there are different programmer posts in the programming. For the low-level language, which represents the assembly language, which is generally provided by the chip manufacturers, although has begun to use human natural language described (such as add,sub, etc.), but only to convert the binary into easy-to-understand natural language symbols only, so the assembly language provided by the interface is still relatively humble. The amount of code used in the assembly has been greatly reduced compared to machine language, but the amount of code compiled is still large for people. Although the code is large (relative to people), but the performance is very good, the machine runs very fast, often used in writing drivers, and the early Unix system was compiled with sinks. Because the assembly language with the machine coupling degree is very high, the scope of application is small, the programmer after the assembly in the skill application is not universal, which is not convenient for industrial training personnel, so there is a high-level language.

High-level languages are more human-like programming languages than assembly language, and the c,c++ language is another language built on the assembly, with a much smaller amount of code. But whether it is a low-level language (assembler) or a high-level language, although people can recognize, but the machine is not recognized, it is necessary to have a middle layer (converter) as a bridge, the logic behind the other side of the complexity of shielding, such a middleman in assembly language is called assembler, in the high-level language is the compiler, In short, it is the role of the translation officer. The compilation process for high-level languages consists of two steps, first translating the high-level language into assembly language and then converting it into machine languages.

Although programmers write in high-level languages with much less code, the amount of code is much greater for machines. This is because a large number of other code to illustrate the environment is attached at compile time. For example, when traveling to foreign countries to communicate with foreigners, around a translator to help the two sides to communicate, when the foreigner asked "what kind of books does you read?" When you answer "dream of Red Mansions", then the translation officer not only to tell the foreigner you read the book is "Red Mansions" outside, but also need to introduce a lot of "red mansions" this book background, so that foreigners can understand what you read the book, and not to hear "in the Red Building Dream" ...

In short, high-level languages are easy to write, but machines run relatively slowly. in high-level languages there are also two categories: system-level language and application-level language. System-level languages such as the c,c++ language are commonly used to write operating systems (such as linux,windows) and service class programs (such as ORACLE,MYSQL, etc.) that require higher system performance, and in high-level languages, the amount of code is relatively large, which is relatively difficult in this regard.

Application-level languages such as Java,python,ruby are very close to humans, but farther away from the machine, they are often used to write applications such as Ansible,puppet. Java is a very popular language, and Python performance is poor, but with the computer processing power is more and more powerful, so python performance is negligible, so in recent years, Python has become popular, at least in research and development to save time enough to offset the system running time, That is, input-output ratio is large.


Summary: For a software development position, the programmer's job is to use the software to enable the underlying machine to utilize rudimentary functions to achieve some of the complex functions of the column. There are many programmers, programmers who work with machines use the assembly, programmers who write key programs use system-level languages, and programmers who write programs that do not require high system performance should use the application-level language.


Talk about the development of this kind of post, then talk about the application of this post.

The so-called application is the application of a variety of applications written by programmers, and for the Linux domain is often referred to as Linux operations, or Linux operations is a branch of the application domain. What does Linux ops do? The simple thing is to apply all the applications that are built into the Linux ecosystem. So if you do not take any measures, the daily operation of maintenance work is more cumbersome, so that operators are not all things have to do their own to complete it? Not also. Linux OPS personnel need to be as programmatic as possible to manage the work of various applications to help complete the process. Shell scripting is one of the things you can do with Shell scripting to automate certain administrative and application tasks (that is, through programs). But the shell is not essentially a complete programming language, it is just a program logic tool that constructs the interpreter to make the other program run better, and to achieve more complex functionality requires a more professional, more complete programming language, such as Python. For example, socket programming is not the implementation of shell programming, and Python implementation is much easier, there are automated operations tools ansible, Cloud operating system OpenStack is written in Python. Python is a very advanced language, and even more advanced than Java, Python is almost the easiest to learn except the shell.


Summary: operation and maintenance is to take the programmer (Research and development team) to write the program (software), according to the business needs of enterprises to organize it to meet the needs of users, to complete the enterprise operation needs to complete the task can be. This is the role of the application position. Linux operations is one of the branches, for Linux operations, the development of a lot of direction, such as deep learning MySQL, NoSQL to do DBA is a direction, in-depth learning operations tools, programming language to do DevOps is a direction, in-depth study of virtualization and cloud computing is also a direction, In-depth study of big data is a direction, and architects are a general direction, all aspects must be mastered, but the underlying configuration can be done by other people.

650) this.width=650; "Src=" Http://s1.51cto.com/wyfs02/M01/8C/9D/wKioL1hy8D_A5wyyAAA_iN2NOc8240.png-wh_500x0-wm_3 -wmp_4-s_2868533961.png "title=" capture. PNG "alt=" Wkiol1hy8d_a5wyyaaa_in2noc8240.png-wh_50 "/>


The company's technical department is generally composed of research and development team and application team, the proportion is about 5:1 to 10:1, research and development positions are relatively more, but the relative application of occupational risk is large. Research and development is not the ultimate goal of operations, DevOps development tools are just to make operations more flexible and more automated.



This article is from the "tab" blog, so be sure to keep this source http://xuweitao.blog.51cto.com/11761672/1890298

On IT field

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.