Joke Collection Website - Blessing messages - What are the computer majors?

What are the computer majors?

# Hardware

# # # Hardware Engineer

Refers to engineers who need to hit the bottom in the computer field. In fact, in the electrical field, it is divided into strong electricity and weak electricity. Strong electricity refers to high-voltage transmission, motor and other large current as energy power field. Weakness refers to the information processing field of microelectronics. The work scope of computer hardware engineer is weak current, and the main contents are PCB design (printed circuit board), ic (chip) design and FPGA engineer. It also includes embedded projects, involving system development and maintenance of specific hardware.

#### PCB engineer, FPGA engineer, IC engineer

You may not understand technical terms, so let's give an example of engineering products corresponding to each engineer.

The job of PCB engineer is to design a high-speed and stable traffic network, connecting modules with different functions on the circuit board. Their working environment is as follows.

The full name of FPGA is field programmable logic array, which is understood as a programmable hardware. Traditionally, integrated circuits are customized, and specific circuit boards are designed for specific needs. Fpga can dynamically modify the circuit structure through fuse mechanism to achieve the effect of dynamic programming. Simply put, for FPGA, you can burn it into a video encoder or a wireless wifi communication module. Although these algorithms can be implemented by software, the cost of hardware-based effect algorithms is lower. VHDL (Hardware Description Language) is usually used in development languages.

What IC engineers need to do is to design an efficient computing brain, which involves pipeline mechanism, overclocking, and the most important thing is to solve the problem of nano-level current disturbance, and the biggest constraint is material technology.

In fact, the above three positions all belong to the subcategory of ee in modern academic branches. In fact, most people in this field are students studying electronic circuit engineering. This major is characterized by the strong, and the only two chip companies in the world are Intel and AMD. Moreover, their core competitiveness is not chip design ability, but manufacturing process. At present, the ARM chip designed by Acorn Co., Ltd. is also used in mobile terminals. It only provides solutions and design drawings, and the specific manufacturing work must be completed by Huawei and Samsung. But at the same time, there are also many niche areas, such as drones and security doors. You need to do special PCB design, so hardware engineers also have a market demand base, but not many. Judging from the skill requirements, it requires solid mathematical knowledge, strict logic and more knowledge of electronic circuits, but similar tools are not so important. From the perspective of future development prospects, with the promotion of intelligent hardware Internet of Things, there will be great dividends.

Job Requirements: Integrated Circuit

Salary: IC "; FPGA = PCB

# # # # Embedded Engineer

* * System level embedded * *

It is mainly to transplant an operating system for specific hardware, similar to linux, VxWorks and so on. And even develop an unknown system that can only meet the demand. You need to read the password information and the time sequence. But most of them are transplanted with mature systems, for one thing, writing their own systems is too slow, and for another, there are many pits. Relatively speaking, people at this level are all big cows. Or do some driver development, such as the latest NVIDIA graphics card that makes countless game halls chop hands every year, which requires engineers at this level to do the corresponding graphics card driver.

The salary level is absolutely high, the starting salary is one million, and the entry threshold is absolutely high. The strongest industry is not in the research institute, but in the company.

* * Embedded application level * *

Develop on a machine that can already run, for example, when the operating system has provided the most basic file management, memory management and CPU management. You can develop specific applications on this basis. The commonly used language tool is C language, in fact, my laboratory is in this direction. I have had some projects in military industry and state-owned enterprises. I have come into contact with at least some of them from this floor to architects. I can talk about my feelings instead of looking up information.

The most painful thing in embedded application development is not development, but debugging. There will be all kinds of wonderful problems on this floor. For example, if you ran well yesterday, you might collapse today. Maybe it's a hardware problem, virtual welding? Capacitance breakdown? Circuit board current interference? It may also be a software problem, a wild pointer (few systems have virtual memory, and all your operations are carried out on the actual memory space) and a memory overflow.

In terms of salary, the starting salary is relatively low. This year, Huawei gave a good salary of 16K, but according to your familiarity with the business, there is no upper limit on the salary, and the final upgrade status is system-level embedded engineer.

# # Software

# # # Desktop Program Engineer

Traditional desktop application software is similar to office, browser and software running on PC. The mainstream development frameworks are Qt, MFC and. Net. Some desktop applications that are still relatively strong are Microsoft's office and desktop game companies. And the development and application of C# based on Microsoft and C++ based on QT. I don't know much about others, but it gives me the impression that this market is not very active, there are very few people recruiting, and no one I know around me takes this route. According to Zhiyou's private letter, the salary of this industry has not increased significantly with the Internet wave. This intellectual tour is in. NET platform, and has five years of experience. The salary level was 1 1k, and then he switched to Android. Of course, this may be just an example. There are many powerful people we may not know. Thank you first.

# # # Network Application Engineer

Since the rise of Google, basically all emerging giant companies, such as facebook, bat and Amazon, have relied on the development of the Internet and this group of Internet application engineers. At the same time, they are also self-proclaimed "code farmers" on the Internet. This group should be able to account for more than 70% of the personnel in R&D computer field.

# # # # Front-end development

The broad front-end refers to the development presented in the field of user vision, which users can directly feel and will be subdivided into web, andoroid and ios.

#### web front end (h5 front end)

Web front-end refers to a series of applications running on browsers (including mobile phones and pc browsers, or webview controls, or even any environment equipped with JS engine).

In the traditional sense, the front end mainly refers to web pages, html, css, js and JS, or adds HTML 5 and CSS3. But in recent years, many changes have taken place in the front end.

This direction is a hot topic in recent years. With the improvement of machine performance and the popularity of v8 engine, although the computing efficiency of js is far from that of C and java, it is basically enough to present the current display content. Therefore, in recent years, there have been various defections, such as cocos2d-js playing games and react-native being the client. At the same time, with the influx of a large number of talents, especially in the last two years, a large number of front-end frameworks and solutions make you feel outdated. To tell the truth, two years ago, it was still the world of JQuery. Now you don't know that Vue and Angular are embarrassed to say hello. At the same time, due to the improvement of machine performance and the power of V8 engine, another advantage of scripting language is that it doesn't need to be compiled and run, which leads to something that other languages can't achieve-dynamic update, which can dynamically change it greatly without releasing app, further increasing the demand for JS.

Compared with the previous two years, wages have risen a lot and the market demand is great. Basically, no application is completely out of the framework of the web. The threshold is not high, but there will be a lot to learn if you go deeper.

#### android and iOS

Android is an open source mobile operating system based on linux kernel. Open handset alliance, founded by Google, continues to lead and develop. It is mainly designed for touch-screen mobile devices such as smart phones and tablets. IOS (formerly known as iPhone OS, renamed IOS after iOS 4) is a closed-source operating system developed by Apple for mobile devices. Supported devices include iPhone, iPod touch and iPad.

At present, in the smart phone market, android has a market share of more than three quarters, and ios accounts for about one fifth. The rest are Saipan and winphone. We should not consider them. You should not want to do this. Although the market share of android and ios is very different, the number of android engineers and ios engineers can basically remain the same, so if you want to engage in mobile development, there is not much difference in the job market.

Technically speaking, the two are actually similar, and the main difference is actually the comparison of ecological circles.

Accordingly, the entry cost threshold of android may be relatively low, java is still relatively popular compared with Object-C and swift, and at the same time, compared with the initial investment of iOS 1.5W(MAC+ Apple phone+developer account 100 USD per year), the competition of android may be more intense.

Due to the openness of android and the development based on open source linux, many companies in the industry will make so-called "deep customization" and "smart phones suitable for China people" for android, which leads to various android. Different mobile phone manufacturers have different understandings on some details, but the biggest problem in android development is adaptation. At the same time, due to the openness of android permissions, there are many places where it can be hacked. Android has a lot of Trojan viruses (360 housekeeper), so there are many things to consider. However, at present, the security of every release of Android is getting better and better, and the rights management is becoming more and more standardized, which will get better and better in the future. However, there are relatively few loopholes in the closed function of iOS (not many, I personally think it must be more than Android), but every outbreak is big news. Its development is relatively standardized, and there are many mature solutions. His main problem is actually iOS audit. Most companies have had their apps killed by app stores.

In addition, Apple is also pushing swift recently. If you want to be an iOS, OC can't be completely abandoned because of various historical problems, but swift will also be the test center or highlight of your job search. According to colleagues' reaction, swift is cooler than OC and more willing to be swift.

# # # # backend development

Back-end development refers to a large general category that provides data support for the front end, including database, business logic processing, data processing and so on. The main development languages are two kinds of compiling languages, such as java, c/c++ and so on. It is characterized by high running efficiency, can support more access under the same machine configuration, and is suitable for ultra-high concurrency. For example, the Taobao background is java, and the Netease game tencent games is c++. The other is to use php, python and other explanatory languages. They are characterized by high development efficiency, no need to compile, and can be run after writing. They are mainly used for some small and medium-sized websites with little calculation, such as your personal blog, to manage the background.

# # # # Operation and Maintenance Engineer

Take it out from the back end, mainly because its development tasks are relatively few, but it is also very important. When the number reaches a certain level and there are thousands of database servers, professionals are needed to do data maintenance, which is as difficult as disaster recovery backup and hot replacement. Moreover, the current trend is service, component and virtualization, and there are still various problems to be solved. However, from the market demand, only large manufacturers will recruit professional operation and maintenance engineers. /kloc-a small company with 0/00 servers is generally hosted in various clouds, and then the background engineer concurrently holds the post.

# # # # Background development in the popular sense

That is to say, those diaosi code farmers who often say that they are business dogs feel that it is relatively low not to do architectural design. Their main job is to achieve the job requirements of pm. For example, double eleven is coming. Pm said that this should add a function of grabbing red packets, and then the background business dog will be busy, and it needs to solve the functions of deadlock, repeated requests, bandwidth and so on under high concurrency. Of course, they also need a front end, but the front end does not need to consider complex concurrency problems. And if these business dogs are successful in dealing with high concurrency problems, then they can be upgraded to architects step by step. At that time, the diaosi of diaosi code farmers can be removed.

# # # Test Engineer

A product or a new function needs to go online, and it must go through a complete test. At present, there are actually two kinds of test engineers, one is pure testing, and the other is his upgraded test development engineer, who can change small bugs without rework during testing. The salary of a good test development engineer can also be higher than that of a development engineer.

Don't underestimate this test. Don't think it is so simple that you can only click the mouse to see it. Qualified test engineers need to be familiar with various test tools, write their own test scripts, find bugs, and know why bugs occur. This kind of work is generally allocated by large companies. For small companies, it is usually the developers themselves and their own testers.

# # # Safety Engineer

The same product or new function needs to go online, which requires not only a complete functional test, but also a safety test. Because safety testing may require more knowledge, there will be a separate job to complete this job.

Or you may prefer to call them hackers (bad boys) and white hats (good boys). They wander on the edge of the law, or do heroic deeds without being known, or try to make a big news by being naughty, or even make illegal profits. But it must be pointed out that they are indeed the most innovative and rebellious people in the internet circle. Of course, I'm not talking about tool people who can't even write scripts. I mean Assange and Satoshi Nakamoto (mainly technology and thinking, but not doing anything good). They are the spiritual idols of God, Jesus Christ and IT. It must be pointed out that to take the road of safety engineer, we must first take an edge line. To have the best defense, you must first know how others attack. The salary is not particularly competitive (excluding black goods). What employees have seen in recent years is that there are more and more excellent children, but the environment in China is not particularly good (all the dark clouds are closed).

# # Architect

From here on, it has become the programmer's Gao Fushuai, and it can be called a half scientist. The architect's work is almost out of code, and his main tools have changed from VIM and EClipse to word and ppt. He mainly thinks that technology selection, for large capacity and high concurrency problems to develop solutions. Basically, they are all upgraded by background engineers. It seems to be heard that there are also front-end engineers in the industry upgrading the CTO architecture, but after all, there are still a few, and the efficiency of node is still much worse.

# # # algorithm engineer

These people have basically won prizes in ACM competitions in universities, or have high logical thinking, solid mathematical foundation and excellent algorithms. If you are an excellent graduate of the Department of Mathematics or Physics and want to change your major in IT, this can be your main direction. This is a college of architecture. After graduating from school, I reached this level directly, with a high starting salary.

# # # # Data Mining

Its function is to dig out the information you want from a pile of data. For example, from 2008 to 20 16, I will give you a lot of information, such as housing transaction volume, housing transaction price, land transaction volume, population growth, changes in bank loan interest rates, etc., so that you can predict the changes in housing prices next year. That's what they did. This work is divided into three steps: crawling data, modeling and writing algorithm verification.

Crawler engineers grab data from various websites and chain websites of the National Bureau of Statistics and store them as structured data.

Mathematical modeling, establishing the influence relationship and factors between various data.

Write algorithm verification, most data mining engineers seem to use python, with many tools and simple syntax.

In fact, the difficulty lies not in coding, but in modeling. If an effective model is designed to quantify the relationship between these data. Among them, the weight of influencing factors is their life value, so they will call themselves "people who adjust parameters every day to match the running results of the model with the actual situation."

Salary is very high, the general statistical analysis bureau or large companies will recruit people, but also can start their own businesses, such as the famous League branch secretary in Zhihu, which is the kind of awesome figure who uses data to hit the face.

In addition, let me introduce quantitative trading. Quantitative trading refers to replacing artificial subjective judgment with advanced mathematical models, and using computer technology to select all kinds of "high probability" events that can bring excess returns to make strategies, which greatly reduces the influence of investor's emotional fluctuation and avoids making irrational investment decisions under the extremely enthusiastic or pessimistic market conditions. This is a successful new job that combines computer diaosi and financial Gao Fushuai. An excellent trader builds a theoretical trading model, and then the programmer realizes the code. This is a relatively direct cash transaction in the field of data mining. The famous Zhihu British Material Trade and Light Wing (Lee) is engaged in this direction. Their salary is calculated by the day, and the key lies in the establishment of the model, and it is all through technical analysis. Take the guaranteed income as an example, from 10 yuan to 10. 1 yuan, even if it is likely to rise to 1 1 yuan, they may sell it (algorithmic strategy), and then guarantee the income through UHF trading. For example, although he can only earn a dime at a time, he buys and sells dozens of lots in one day.

# # # # Artificial Intelligence

I haven't read this book for a long time, so I may have misunderstood it. Siri or chat bots that people often see belong to this kind of thing. Its essence is still a finite automatic state machine, which moves from one state to the next under the influence of many factors. Theoretically, if you consider all your inputs in the three-dimensional world and define the corresponding outputs, then he can realize artificial intelligence. But the program written in this way will be very large and the computer will not run. My personal understanding is that based on the simplicity and uniqueness of computer 0 1, artificial intelligence in the true sense is still quite difficult to achieve. For example, in this particular application, Li Shishi's input to the alpha dog, which was very popular before, is very simple. The player's state is also very simple, and the power of 2 is 16* 16. Given this complexity, there is certainly no way to list them one by one. They will have various algorithms to cluster them.

# # # # Deep learning

The data mining mentioned above will have a process of adjusting parameters. In the field of deep learning, he will add a positive feedback, so that your parameters can be automatically adjusted by the machine, and the calculated results can automatically match the actual results. This is the so-called machine learning, that is, the process of manually adjusting parameters is automatically completed by the machine.

In addition, artificial intelligence, deep learning and data mining are not viewed separately, and they will overlap to some extent. In fact, their real difficulties are various dimensionality reduction algorithms, probability theory, annealing and other mathematical fields. This is why they are said to be half scientists.

# # # # Performance Efficiency Support

This is the work of algorithm engineer in the general sense of the Internet. For example, I find the square root of a number. Now our programming is very simple, just sqrt (). But if you read the source code of this, you will be surprised and interested in searching it yourself. It is not derived from Newton's Leibniz formula. It is much more powerful than Newton and can increase the efficiency by 100 times. This is just a very simple example. In practical application, when they encounter a lot of calculations, it is time for them to play. In fact, most of these functions are also completed by background projects, but it is not excluded that large companies are similar to Google, and fb will recruit ACM to support algorithms, with a high starting salary.

Here, I especially mention the person in charge of the efficiency project, the game engine engineer (at present, the open source unity3d is mainly used in China). Mainly do 3D rendering, which requires high achievements in computer graphics. It is similar to the aero-engine in the industrial crown. Game development is only a development in a specific direction, including client, web, pc, background, database operation and maintenance, etc. There is no need to give a lecture alone. However, game development engineers are generally tired, but their wages are also high. It is not unusual for the team of Yin and Yang teachers to predict the year-end award 100 month this year.

# # # Member of the Association of Standardization Organizations

This is a little ... For example, American Institute of Electronic Engineering, 3GPP Association. They mainly make various standardization agreements. This level is too high. In a specific field, it is estimated that dozens of people all over the world can do it. People should not care about the salary. In addition, most of them are allocated by the state or non-profit organizations, and they are not for profit in any case. For example, TCP/IP protocol formulation and 5G protocol formulation. I don't know. They are recruiting people, maybe university professors or industry leaders.

# # # Quantum Computer Engineer

This super crane, this is the pioneer, the computer of the future. As for what they do and how they do it, don't ask me, I don't know! ! !