Featured image of post About Computer Science

About Computer Science

It is a yearly “divide major” season, and now I am looking back at the series of computer science questions and answers I have browsed in Zhihu during my freshman year, and I feel a lot of emotions. I have been thinking about it for a long time, and this is the first time I have seen such numerous questions and discussions about computer science, hence I write about this post. If you find any bugs or grammar issues, please don’t hesitate to contact me to fix them. Anyway, thanks again for accepting my poor English.

0. Preface

What is computer science? Why does our country need students majoring in it? What is the future of this major? Will computer science be popular in the future?

Two years later, when I introduced this major to my younger brother and sister who study at our university as a “past person”, it was too difficult for me to write the answer because I was worried about my lack of ability and short-sightedness, which brought all kinds of misguidance to them; secondly, the choice of major at the undergraduate level will probably affect a person’s life and mislead others. The third is that the choice of major at the undergraduate level may affect one’s life and mislead the future of others.

Therefore, in this article, I will try my best to talk about my experience and thoughts in computer science over the past two years, and hope readers can gain something worthwhile. The content I share is only my opinion and does not represent any absolute theory.

1. Our Environment

This is an era of prosperity and crisis: Owing to the COVID-19, our world is experiencing changes never seen in a century.

The annually spring and autumn recruitment is the barometer of the development of the computer industry, from last year, Tencent paid 40w high salary in the hot search, and then some time ago, due to the epidemic of the re-emergence of the side of layoffs while also locking the head count. Until today President Liu Kiping of Tencent issued an article: “Internal manpower investment will be adjusted from the edge of the business to the core business, in the industry to occur fundamental changes in the industry when actively embracing change”.

In the general environment, today’s Internet is far less than what it was 10 years ago, the so-called “Although it is a pig, it can wind and waves.”, which Howard’s comment is: “Now the Internet from the era of incremental into the era of stock. Everyone has no way to make the cake bigger, so they can only grab each other’s cake”.

The Mythical Man-Month which is the bible of software engineering points out that more people can not shorten the software development progress, and it is dangerous to use “man-month” to measure the size of the work. Because the number of people != efficiency, the way to adjust the organizational structure of the current major manufacturers is also very straightforward - leaving the most valuable programmers. In this environment, with only a small pool of talent to dig, the Internet starting salary also seems very high.

If only to high salary or good employment and blindly choose computer science major, it can only be said to have entered the survivorship bias. An objective fact is that the average salary of students graduating from our school is far below the average level of Zhihu or Maimai. The best students can collect offers from all the big companies, but the students who usually waste their time, even though they choose this major, often end up not as good as they expect. The salary distribution of this industry is not normal but power-law distribution, only a small group of the best people can share the most cake, the variance of the future development of the same industry will be very large. If you will choose to enter the industry in the future, please try to become the front group of people.

In this regard, I think the reason for choosing this major should be “you love computer science enough”, not “this major is hot”. If you like the process of building a whole world of order through a process control (auto-state machine) and have some interest in this major, you may want to read on below.

2. About CES

What is the Computer Engineering and Science?

The School of Computer Engineering and Science (CES) offers four majors: Computer Science and Technology, Intelligent Science and Technology, Cyberspace Security, and Artificial Intelligence.

The gap between these majors, as reflected in the professional courses taken at the undergraduate level, will not be so big, at least most of the basic courses such as data structures, principles of computer composition, operating systems, computer networks (i.e., the 408 in the Master’s degree examination) are treated equally. Corresponding professional courses will focus on the study content, specific details refer to Shanghai University undergraduate professional training program in 2019 and 2020. And all majors’ rankings are represented by the following table:

Name2021 Plan2021 Rank2020 Plan2020 Rank2019 Plan2019 Rank
Computer Science and Technology110289/1573135560/2029150582/2090
Intelligent Science and Technology26375/157345486/202960281/2090
Cyberspace Security20396/157325495/2029--
Artificial Intelligence21366/1573----

In most cases, there will not be a significant gap in the daily academic communication of interdisciplinary students, because the skills you will use in your future work may not be as closely related to your current chosen major. What teachers teach you will not determine what you will learn about. For example, if you choose computer science and technology, you can still study artificial intelligence, and if you choose AI, you can study cybersecurity-related content. But in detail:

  • Computer science and technology: can be understood as the computer industry, the Polytechnic University class, belongs to the computer in the basic disciplines, both soft and hard, optional development direction range is very wide, and the specific direction of research depends entirely on your interest.
  • Intelligent science and technology: need to learn some signal processing, matrix algebra, brain cognition, and operations research-related courses, across a wide range.
  • Cyberspace security: a new major in my year, the scope of the study is not limited to the so-called “cyber security”, but also distinguishes penetration, reverse, cryptography and so on.
  • Artificial intelligence: the research direction and professional course arrangement are also close to the wisdom of science, including mathematical logic, data mining, brain cognition, etc., it is recommended that students with good mathematics choose, need very good linear algebra and probability theory foundation, but also this is the Department of Mathematics “to grab a job” one of the directions.

There is no absolute answer to the question of whether a specific major is better or worse. From a personal point of view, the teaching program of the new major still needs time to settle down, 10 weeks of short semesters are compressed together, and even if you take grade 4.0 does not mean that you learned the course well.

Remember what the school teaches != what I need to learn, you need to be clear about where your future competitiveness in the industry lies. Nowadays, more than 90% of the interview contents of large Internet companies are not what the teachers can teach you, but the fact that the teacher did not teach is not a reason why you don’t know that.

3. The future

What I will do in the future?

In fact, each road is divided and the choice will be different.

For work: If you do not have the intention to study what, it is not recommended to go in the direction of algorithms, the main directions include front-end, client, back-end, testing, operations and maintenance, security, etc. Before the junior year, make sure to finish the professional courses, and do not leave too many courses for the senior year. As early as possible to determine the technology stack used in the interview, looking for online classes (preferably open courses in foreign famous universities, books, blogs, and awesome list; job search in the early efforts to do leetcode, the summer of the junior year (or the end of the second year of winter) as early as possible to go to the Internet companies for internship, more accumulated internship experience project experience.

  • Internship: it is best to find the schoolmates or online internal push, more understanding of the department’s working environment, overtime status, etc. The primary purpose of the internship is to enrich the resume, it is not recommended to care too much about the salary more or less, the key is you will learn what.
  • When you are looking for a job with your internship experience, the name of your internship company only exists for the interviewer to have heard of/not heard of two situations. If the goal is to work for a big company, it is not particularly recommended to go to outsourcing companies and traditional industry companies (i.e. companies whose old business is not the Internet) or if you want to take “private jobs” from teachers and make sure to identify the good and bad projects, refer to Shanghai Jiao Tong University Survives Guide.

Taking part in the civil servant exam: Mainly depends on the province, city, unit, and tier, the specific details are unknown.

Push avoid: The specific policy will change every year, refer to The Implementation plan for the work of recommending fresh outstanding undergraduate graduates to be exempted from studying for a master’s degree in 2022 and 2021 School of Computer Science of Shanghai University. The details of the policy will change every year, but it is important to be clear about where you need to get extra points.

  • Note that “the scientific research achievements and competition awards of students who cooperate with their immediate family members or those with significantly higher education, titles and positions than themselves are only for reference and are not included in the calculation system of the comprehensive evaluation results.”, means that the route of publishing papers in cooperation with supervisors, finding joint competitions for graduate Ph.D. will not work.
  • On the other hand, Shanghai University has a lot of ACM experts == Shanghai University ACM is powerful != you will be powerful definitely when you come to ACM, same for CTF, ASC, etc. Some competitions will cost a lot of time investment if you find it is not suitable also please give up the sunk cost in time, spend time to do leetcode than waste time in the competition.

Taking part in the postgraduate entrance exams: The students with low GPAs who want to fulfill their dreams of a famous domestic school is also the choice of most students who do not want to work for the time being. The preparation time for the exam begins in the second semester of the junior year, choice is greater than effort. The process of preparing for the exam, choosing a school, etc., depends on the individual situation, so I won’t go into detail here.

Study abroad: The first thing you need to do is to make sure that you are ready to go to the country you want to go to, whether you need to take IELTS or TOEFL, and whether you want to take GRE. In addition, striving to participate in internationally renowned competitions or publish some academic results but also trying to accumulate some foreign company internship experience, in the application are very plus points. As for whether to stay or return to your home country at the end of your graduate studies abroad, it ultimately depends on your situation.

4. Daily life

What is life like in the college?

  1. Grade 2019 and 2020 dormitories are arranged in the New Century, subsequent accommodation is unknown, depending on the school arrangements.
  2. Some classes have been deleted from the seminar, but there are still a lot of reports, and some teachers have a lot of requirements.
  3. College study materials, textbooks, etc., in the major group chat, can also be seen, you can also refer to CES Materials and you may find it helpful to browse the libshu which includes the material collected by the Open Source Community.
  4. Many of the final exams are far less detailed than the freshman year, most of them are less incomplete, and you will need some preparation skills.
  5. In class, most of the girls sit in the front row more, and whether or not you can get rid of the single depends on your ability.
  6. About class activities, because our courses are self-selected, everyone’s daily life trajectory is more scattered or gathered in their small circle, I think the class cohesion is not so strong to some extent.
  7. Most of the courses, including laboratory classes, will be on the East Side, or relatively far, winter morning on eight East Side is very painful, so it is recommended to learn a bicycle for convenience.
  8. ACM and Cyberspace security labs are located on the 7th and 6th floors of the computer building, which are currently open to specific students. For teamwork competitions, it is important to find like-minded partners who are willing to devote their time and have strong abilities (not reflected in their GPAs).
  9. Students who major in AI should try to contact their supervisors as early as possible to try to borrow a GPU server, and those who are strong can also try to contact their supervisors in advance to join their graduate groups.

5. On the way

If you have decided to major in the Computer Science and Technology, here are some suggestions for studying in advance.

  1. English counts! English counts! English counts!

    • Learn to use Google and learn to read English materials. Never use Baidu to find answers. (It is highly recommended to add www.baidu.com in your /etc/hosts file, which will promise that you will not able to use it.)
    • Learn more on Github, Stackoverflow and less on CSDN or Cnblogs.
    • Learn to fix bugs by STFW and RTFM, which is the most important skill for a programmer.
    • Learn how to ask questions the smart way.
  2. Create a GitHub account, and build a personal blog on it, you can use hugo, hexo and other frameworks, the whole specific process follows Google and official documentation, the process you will learn a lot, including Git, read documents, write configuration files and other operations.

  3. Specific learning direction, learning a new language and related technologies, learning process to take notes.

    • Back-end: Java, Golang, C++, Rust, etc., and Web frameworks such as Springboot, and Gin, capable students can learn about DBMS, Redis, MQ, ES and other technologies in advance.
    • Front-end/client: JavaScript, TypeScript, Dart, Kotlin, Swift and so on, frameworks including Vue, React, Angular, etc., learning Node.js, as well as agents, caches, gateways, tunnels, etc.
    • AI can start to learn Python, Matlab and so on, as well as the common TensorFlow or PyTorch, efforts to improve the level of English and start trying to improve the ability to find literature/reading literature.
  4. Learn Linux including WSL and Docker, it is highly recommended to learn Docker to save the time to build the environment.

  5. Learn the professional course knowledge in advance, refer to the CS Self-Study Guide, it is suggested to learn computer science by doing the labs.

  6. When you finish the above, you should have a general direction of what to study in the future, you can also read My Computer Study Route.

6. Ending

This article is only expressing my personal opinion, I hope students will not change their opinion towards this major because of the shortcomings of the profession I mentioned, or blindly decide because of the so-called high salary. On the way of choosing a major, often a decision will greatly affect the future trajectory of your life.

The fact that you have the grades to get into a computer science college also means that you have the right to choose almost any major, so please choose your major carefully. After all, the final choice of major is still yours, so please make sure to make a decision based on your interests, family environment, future development and all kinds of factors, and remember that at this point, anyone, including your teachers, family and classmates, can only just provide advice at all.

Four years of college life is neither too long nor too short. While enjoying the comfortable campus life, you have become a frog in warm water without realizing it.

We need to break away from the inertia of student thinking under the score measurement system, “Please be sure to remember: four years of college life gives you is just a kind of the undergo of your life, when you graduate, the string of pale scores has been invalidated.”.

7. Remarks

Here are some links related to this post.

  1. Guide of Choice SHU CES

  2. A Guide for newbies in Cyberspace Security

Thank you for reading here, after you have finished your blog, you can comment on this post below to contact me to add your link. Anyway, you are free to ask any questions about this post. If there is anything inappropriate, please comment/contact me and I will change it as soon as possible.

I just want a peaceful life without troubles
Built with Hugo
Theme Stack designed by Jimmy