First of all, it should be stated that in any line there will be a variety of specific situations and that it will be difficult to cover all aspects as an individual in an absolute manner, and that it will not be easy to avoid it. Some of the views expressed in this article represent only personal opinions, and it is hoped that more investigation will be undertaken to ensure that there is no personal bias.
Information technology is the very foundational existence and productivity of today ‘ s information society and, as a result, computer science has appeared to be delicious for a long time and has become the preferred choice for many students to choose a profession.
But, like many other professions, the subject of computers has its own characteristics, adapts to the population and a path of career development that is not easy. Therefore, this paper will attempt to present the full picture of the computer profession in three areas: professional learning, the way forward and career planning.
Author: LR, undergraduate degree in Cross-Intelligence, University of Tsinghua, with a doctorate.
(P.S. Computer) Three professional presentations outside C.S.
Electronic information: Are the prospects for employment in the e-information category really worse than in the computer category?
Automation: Is automation a pit professional?
What kind of specialty is software engineering?
About the discipline itself
Computers are a very young subject with a history of less than a hundred years. However, as the main technology of the third industrial revolution, computers remain one of the core disciplines of the era.
In short, the narrowest computer discipline is the study of how to complete computational problems through a combination of modern electromechanical devices (e.g. the earliest electrons, transistors, integrated circuits). It is the most abstract computer discipline, the most fundamental point of departure and the very core of the entire discipline.
In fact, the subject of computers is a very special one, because it is so comprehensive that computer science can be characterized by a variety of disciplines from different sides and levels. For example, at the lowest level of achievement, computer science is a well-established engineering discipline, how to build circuits to complete basic logical calculations, how to improve efficiency, and how to integrate on a large scale. These are different from well-designed mechanical instruments and motor engines; at the abstract level, however, algorithms, data structures, the methodological approaches to the organization ‘ s data and problem-solving are full of theoretical research and are full of a combination of mathematics; at the intermediate level of application, computer science is like materials, architecture or biology, and is combined within a limited abstract level and limited tools, and in a particular area of application a number of technologies and know-how that are not basic breakthroughs, but are not entirely technical (e.g. optimization of computer network structures, etc.).
Today, as information systems have become more integrated into a variety of disciplines, computer science has become particularly important, with more and more diversity in its specifics. There are constant refinements at the hardware level, attempts to break the limits of Moore’s Law, design of engineering codes at the software application level, network system design, human interaction with cross-cutting disciplines, graphics, artificial intelligence to try to break human intelligence, theoretical computer science and quantum computing to explore more algorithmic and computational nature in theory.
Knowledge structure of disciplines
Undergraduate curriculum system
The development programmes in computer science are more varied, and different schools have their own characteristics, which cannot be generalized, but almost all of the following are covered:
Numerical basics: these are basically the first year of the year, and part of the course may reach the second year. In addition to modern mathematics (microcentres, linear algebras, probabilistics) that are essential to science and technology, its main content is the core key — code capabilities — that programmers must have, as well as some of the more distinctive branches (such as discrete mathematics) that are particularly important in the computer world. Some schools will require university physics.
Mathematics courses: Advanced Mathematics/Accounty, Linear Algebras/Higher Algebras, Probability, Modular Functions, Disconnected Mathematics, Numerical Analysis
Core courses: The courses are in second and third year, and, as far as I know, in any university, computer core courses are quite numerous, because the computer itself does contain too much. Why else would you change the computer system?
Computer systems: principles of compilation, computer composition, operating systems Computer applications: network principles, artificial intelligence principles, signal principles, computer graphics, databases
Alternative courses: These are at the forefront of computer applications, covering various sub-scientific areas of computers and generally requiring students to choose a number of credits. A lot of courses have first-line scientific content.
Password, network security, data mining, artificial intelligence, neural network, image processing, software development, embedded systems, model recognition, high performance computing, multimedia, digital systems, game theory, complexity analysis…
Both basic and core courses are mandatory, while subsequent elective courses are related to the various subdivisions of specialization.
Disaggregated orientation
There are many subdivisions of computers, and the different directions are not distinct.
Artificial Intelligence: Probably the hottest direction in the recent past, committed to using computer systems and algorithms to recreate, simulate and even transcend human intelligence, thus addressing practical problems. Specific areas include machine learning, model recognition, computer vision, natural language processing, enhanced learning, etc.
High-performance computing: The most widely known example of a computer that is committed to the full development of its powerful computing capability and its limits is supercomputers, how to design and enable super-large computing clusters to function and solve large-scale tasks, how to maximize the efficiency of each computing process, reduce energy consumption, and design an entirely new computing architecture (including hardware and system organization aspects) is at the core of this discipline.
Computer systems: Between the implementation of the most basic computing hardware and the implementation of the software for a variety of complex applications, computer systems are a vital platform and bridge, and you can hardly imagine using command lines to run your computer, programming with 0 and 1. Good systems need to be fast, secure and stable, which involves a large number of bottom-up issues, and this is what computer systems are doing.
Cybertechnologies: We are used to the Internet now, but the advent of the Internet is extraordinary, and its legacy and future development continue. How can network structures be optimized? How can remote ocean computers safely complete mutual identification and information transfer? What’s wrong with hackers and what’s to prevent them? These are all part of the web technology.
Multimedia: Multimedia technology includes the processing of images and videos, problems that may arise during human interaction, etc. Because of its many intersections with the media, social sciences and human engineering, it is an area with a relatively strong “human taste” in computer science.
Theoretic computers: all the computers that exist are, by their very nature, Turing machines, or, more precisely, those based on the design of the Van Normann architecture. The very nature of this theory raises a number of interesting questions, such as where the boundaries of computing capacity lie? How do you design better algorithms, or prove that no better algorithms exist? How are approximations or random algorithms designed for some very difficult algorithms? Can quantum computers really theoretically do almost impossible tasks for traditional computers? Why do we think the password system we’re using is secure? These are in the realm of theoretical computers.
Graphics, compilers, software engineering, etc….
Cross-cutting disciplines
There is a great deal of overlap between computer and other disciplines. e.g., algorithmic economics and algorithms, which intersect with economics, study pricing and auctioning issues; data (AI) ethics in conjunction with social sciences; computational mathematics and theoretical computers in conjunction with mathematics; computational biology and biostatistics in conjunction with biology, using computer power to help decipher gene codes, and, for example, alphaford can be used to decipher protein structures…
It can be said that computer science can use computing power as long as it involves mathematics in a science and can transform certain core issues into mathematical issues.
What about computer science?
The first two sections provide a basic description of the main directions of knowledge and interest in the computer profession, but many students are concerned about other than “what’s computer science?” More than that, the questions of “how to learn” and “how to learn” will be answered in a simple way.
Before introducing, it was necessary to clarify a very fundamental question of understanding: what was the computer discipline doing? Many people, with a desire for black technology in the information age or a desire for high salaries, are very eager to choose the computer profession, which is essentially motivated by romantic imagination and utilitarian red eyes, and which is prone to deviations or incompatibilities in the study of the subject, even at the University of Tsinghua, where students are found to be incompetent and unable to follow in their professional studies.
The original purpose of computer science was to replace man-made calculations with machines, which were then transformed into circuits, i.e. the use of complex circuits to complete pre-planned computational behaviour. Thus, in essence, the computer discipline is a discipline that studies ” how to design and use electronic devices for the collection, storage and processing of information for a purpose ” , and how to control the pre-set logic of the calculation or processing process, which is known as ” program ” or ” code ” .
In this context, it is not difficult to understand the remarkable convergence of computer-related programmes in universities around the world: In addition to the calculus, linear algebra, probabilistic theory that must be studied by a student in a polytechnic field, a student in a computer specialty first needs to understand the workings of the basic circuits and how to use them for logical calculations, so there will be a series of hardware classes, including electrical principles, digital circuits, computer composition;
Second, students in computer science must be familiar with and like a sense of “arrangement,” and they must be very familiar with it.
(b) The process of entanglement and step-by-step completion of a certain objective from the point of view of a mastermind, like the design of domino or Gothenburg, which is essentially a relatively missing link in the basic education of the country, with university courses in programme design, algorithm design, data structure, etc.;
Next, there is a series of system courses on how to communicate abstract logical process design (procedures) to practical circuit operations: compilation principles, compilation, operating systems, computer composition principles, network principles, etc.
These are the absolute cores of the computer discipline and the most hard-core components to learn, and there are some remaining technical areas such as artificial intelligence, network security, high-performance computing, graphics, software engineering, etc., which are specific applications that are being extended by these cores.
So, in fact, such as re-assembly systems, hard drive restoration, hacking, etc., are essentially very specific know-how at the computer-specific application level (e.g. computer-system hardware, network security, etc.), and it is quite normal that students who study computer-based subjects do not do computer work.
As can be seen from the above, in order to learn the subject of computers, it is necessary to think particularly well and to be very good at “programmatic process thinking” models, and many often ask whether good computer learning requires good mathematics, the answer of which is certainly yes, but unlike the “mathematics” of these maths, the computer students need special mathematical thinking skills, which are combination-based, probabilities-oriented processes, and are used to thinking and analysing questions from the perspective of algorithms.
Linear algebras, discrete mathematics, probabilistic theory, combination mathematics are at the core of the mathematical foundation of computer students, while object-oriented system-based programming, learning to analyse and operate a very complex system (including setting up environments, de enigma bugs) and to endure the complexity of the process, lack of clues, and the complexity of moving around in one hand, are the basic qualities necessary for a good computer professional, to be able to quickly grasp key knowledge and things in the face of new knowledge and things, to migrate to their existing knowledge, and to be able to do so.
From this point of view, I think that it is best to choose the computer profession with relative care if the university has never written a code before; if it does, the basics of the code, such as program design, object orientation, data structure, algorithm design, software engineering, etc., will have to be so solid that otherwise it will be difficult to speak, and in the future there will be a lot of alternatives for specific jobs.
In short, with regard to computer-related courses, my advice is to do it. Full mastery of computer disciplines = skilled theoretical knowledge + hand-written (changed) over code + de over bug + final run.
The process must be independent, not slippery, and can seek guidance, but it must not go to the boss to copy their code or results directly, to eat all the shit and finally go over and understand what he wrote, and after a few of these difficult processes, it will basically be a qualitative improvement in code skills and professional skills, and gradually, after many of the students who had no programming experience before the university have gone through this difficult situation, the gap between their professional qualifications and those who have been participating in programming competitions is almost negligible.
One small technique and suggestion is that many universities abroad (e.g. MIT, CMU, Berkeley, Stanford) have high-quality online courses and materials, and that many of the country’s university courses take steps, go deep, talk in the clouds, if there is time to go through the English version of the curriculum, they have a strange effect on the overall improvement of their understanding of “inner work”.
Professional perspective
The way forward for the computer industry is essentially two paths, one academic and one employment. The main destination of the former is university higher education, with the role of university teacher, while the latter enters into a business (commonly known as a large factory) to become a competitor. But this is not absolute, but there are people who are not teaching, but are doing research in industry, like large factories, including Microsoft’s research institutes, whose core work is closer to academic innovation rather than industrial development and “work”.
I will briefly describe the work of these two options, the selection focus, and the analysis of merit and merit.
Academic paths
The main destination of the academic path is to become a university teacher and, in a few cases, a researcher in certain companies with technological research and development.
If you want to go on this path, you have to go to a doctorate and accumulate the thesis output during the doctoral period, it is often necessary to go abroad after a doctorate (relatively less needed for access to industrial science).
The main task of university professors is scientific research, followed by a number of important projects and teaching. Upon entering the post of Assistant Professor/Young Teacher, they are required to meet the requirements of the school for up to six years, in terms of scientific research, national projects, doctoral training, teaching and social services, and become “Associate Professor” for life. The process was more arduous and difficult, and in some universities it was more the recruitment of a large group of assistant professors for landing seats.
Academics are demanding innovative work, and you will always have to follow the frontier of technological and scientific development in a particular field, proposing new approaches and doing unprecedented work. In other words, the process of academic research has always explored the unknown, no one has told you what to do, and no one can guarantee that the path of the current approach is productive. This is an academically charming but painful place.
So, if you want to follow the academic path, there must be a strong intellectual interest in the study of a particular type of problem; intransigentness, not easily defeated by failed exploration; being able to endure the academic natural judge properties, being directed, questioned and ununderstood by the revisers; and being good at systematic planning of time and able to explore in depth and tirelessly a particular issue.
The advantage of this path is that, if you have a strong interest in the content of your research, there is a greater sense of value in researching new technologies and expanding the frontiers of knowledge than in working, and that an important advantage of the academic community is that everyone has full access to his or her own work, which is very different in companies.
In addition, a more stable and better university than a large industrial plant often addresses housing and children ‘ s education (after disembarkation).
The disadvantage lies in the relative poverty of basic income, which is much lower than that of the industry, and the fact that it is largely dependent on projects and other subsectors (which are highly dependent on school resources); and, secondly, the very high pressure on social workers, such as scientific and academic staff, and the relatively small, competitive and risk of not landing.
He works in a big factory.
After all, the academic path is still a minority, and the vast majority of people may still want to enter large factories (e.g. telecommunication, Ali, byte, Microsoft, etc.) to become programmers.
The first point to be made here is that the term “co-farmer” or “programper” is a too general term, and the specific nature of the subdivisions within it is still very different. For example, the “development arm” involves the development of large-scale software systems, service maintenance, set-up solutions; the “research and development arm” is responsible for the development of new technology pathways; the “security arm” is responsible for screening networks and system loopholes and for addressing potential threats; the “calculator” is responsible for optimizing the service logic, referral systems, matching dispatches, etc. of the company’s products; the “front end” is responsible for designing interactive pages and optimizing user experience; and the “back end” involves practical logic of the application, which needs to be addressed and developed, database maintenance, etc.
In large-scale industry, it’s a “business proficient” job. Each specific post has a different focus on knowledge and technology, which is not much of a day-to-day concern, but it is important to be sufficiently skilled as a brick-thrower.
If there is a little more in-depth understanding (e.g. people who, as algorithms, in addition to pythons, know the algorithms of many traditional machines and the bottom logic of “mechanical learning” as a whole), then they will be relatively competitive, and they will be more irreplaceable in their jobs. It would also be more fragrance if learning skills were strong and if they enriched their knowledge and skills in time.
As a result, when recruiting, large plants tend to pay particular attention to the sophistication of basic technologies and the depth of understanding that permeates them.
In the current environment of the Internet, where large factories are still well paid, it is not difficult for undergraduate students to receive 10,000 to 20,000 monthly salaries, and it is common for masters and doctoral graduates to receive hundreds of thousands of annual salaries. With the increase in the number of years of work in the company, there is essentially room for a near doubling of the annual salary if more highly qualified employees can rise to the position of supervisor.
There are, of course, a number of shortcomings, such as, on the one hand, the pressure on work and, on the other hand, the relatively high level of overtime in a large number of companies in the current ecology, and, on the other hand, the precariousness of the market and personnel in the current situation, whether it is a company that is large in a particular industry or an individual’s specific position, and the lack of academic development as a “iron jobs”.
About “Proceder, 35 years old, dry and unemployed.” As a doctoral student, I have no say in this statement. There is a consensus that the recent downsizing of large factories has come mainly from the pre-existing excessive fanaticism and monopolization of the Internet, but in objective terms, not every programmer is in a position to “restraint and kill a donkey” by the age of 35 (in fact, there are a considerable number of employees over 35 in any large factory). For individuals, the best thing to do is to acquire a real core of technology, to upgrade their overall professional abilities and to learn new knowledge and new technologies forever.
Recommendations for career planning for senior students
What should be prepared for a high school or undergraduate student to follow the path of computer science? What should be done at each stage?
First, for students who have not studied programming and who have not taken part in programming competitions in secondary schools, I think it would be useful at the beginning of the course to do some programming with a steady and continuous frequency (e.g., a few questions per day) on the subjects of OJ (online judge) and LeetCode, at least to quickly improve basic algorithms and skills, but not to be superstitious or obsessed, bearing in mind that the aim is to make up for a pattern of thinking that was not used before, and that each one of them is actually thinking about, doing it, doing it, and never looking at it again.
Second, it is important to have a good (super strong) self-study capability, because the majority of university courses will ultimately be self-study-oriented, and it will become common to have ducks on board and in need of school. The rapid learning of new knowledge is also essential, as is the ability to search for good blogs, curricula, courses, etc. from the Internet.
Here, depending on the division of the path that you want to choose, there are different options.
If you want to study, it is best to find a reliable laboratory team (or some corporate research institutes) with a certain basis (more than a second degree) and a scalable senior/sister to start studying in science. In the course of conducting research on specific projects, learning to complement basic knowledge, how to read papers, master basic skills and experimental processes, and familiarise with methods of scientific thinking.
If you want to be in contact with industry, then you are advised to practice at a company (large factory). The standards for internships vary from one major plant to another, with basic mathematics (linear algebras, probabilistics) being asked for in the basic written interview, handwritten thinking about some data structure, algorithmic processes or the presentation of some algorithms in the field, to some of the expertise of a counterpart to a position that specifically wants an internship, which needs to be prepared in advance. It would have been best to find an older sister’s intern, otherwise follow up on the group’s internships or deliver their own curriculum vitae.
The road ahead is only one that has gone in a solid way, with many variables and not everyone. The field of information technology has changed so rapidly that there will never be a simple and permanent best plan, and keeping it open, communicating and learning is at the core.
General culture of the profession
Computers are difficult and stressful, and most of the students who can choose to come in are smart and hard-working, and are basically the top of the industrial school rolls in all the colleges. Access to computer systems (or related disciplines) requires a better mathematical basis and code thinking, a stronger sense of stress resistance and a mindset that is able to cope with a day-to-day state of intense competition, strong hands, and high life-learning stress.
However, since most of them are boys, the environment is pure and everyone is happy to be together, many faculties will need computer students as their core productivity and helpers, and they will enjoy a good external identity.
How do you correctly choose college?
The intellectual community mobilized more than 50 students from well-known higher education institutions such as Qinghua, North China, North China, North China, North China, South China, South Asia, and the Middle East, to launch this series of professional research articles based on their learning experience.
The article covers most of the current higher education courses, each with about 4000 words, so that the students who study these subjects will answer the three main questions: “What’s the profession?”, “What’s the profession?” and “What’s the prospects for professional employment?”
Case number: YX111 RzRgDN
I don’t know.
Keep your eyes on the road.