search
HomeSystem TutorialLINUXUniversity study plan computer

University study plan computer

Feb 01, 2024 pm 05:54 PM
linuxlinux tutorialRed Hatlinux systemmy worldlinux commandlinux certificationred hat linuxlinux video

University study plan computer

1 Introduction

Recently, many students who are still studying have asked me what they should learn in college. After learning Java, reading JS, HTML, CSS, and trying SSH, they seem to be confused. There are many more among them. I'm a classmate in the computer department.

There is no doubt that in order to find a good job after graduation, you should learn some application layer skills and master a widely used language and its framework during college. It is best to have done actual projects and have internship experience. These are the bonus points that can be seen in the resume and are important weights to stand out.

But these things are all the branches, leaves and flowers of a big tree. What should be learned during college are the invisible roots, that is, basic knowledge, especially for those with a major background.

The reason is very simple. Although you can catch up on basic knowledge after work, you can no longer find such a large chunk of time and such a quiet environment for you to study without distraction.

You don’t have to think about how to deal with the customer’s face the next day, nor do you have to think about how to explain to the leader that the serious bug last night is not our problem. You just need to simply study. Seeing such Many students spend their good time playing games, which really makes me sigh. I wish I could give them this time!

Now I can only use some fragmented time to catch up on basic knowledge. It would be great if I could go back in time and sit in the library and read quietly!

Classmate A said: Basics, basics again, how many times have you said this, Lao Liu! My ears can hear calluses!

Sorry, the basics are so important, I still have to continue to be verbose like Mrs. Xianglin.

I think the basic knowledge that should be mastered during college should include (not be limited to) the following:

2 C language

Don’t be busy learning Java, Python and other high-level languages ​​during college. You should first master the C language (not C), because this language is too close to the machine and can help you understand the operating principles of the computer. Don’t believe me. Take a look at "In-depth Understanding of Computer Systems". The entire article is written in C language. Why doesn't it use Java and Python to describe it? Because they are too high-level and too abstract to describe the bottom layer.

Only by learning C language can we lay the foundation for other basic knowledge, because most basic software and system software are written in C language. What if you can't understand C programs?

Don’t be like me back then, when I saw that others could already make web pages, but I was still struggling in the small black window of the command line. I threw away the C language when my mind got hot, and later spent a lot of time making up for it.

Remember that after you learn C, a simple yet complex language that is close to hardware, it will be almost effortless to learn other languages. They are all too simple!

3 Understand the principles of computer composition

If you are a major, you should study the two courses "Principles of Computer Composition" and "Digital Circuits" honestly, and learn the experimental contents (such as gate circuits, half adders, full adders, flip-flops, etc. ) Do a good job conscientiously.

You should set a goal: Make a simple CPU by yourself. The simple one is to perform numerical operations. The more complicated ones can implement instructions. If you find the teaching material really boring, you can combine it with "Coding" or "Through the Fog of Computers". Study, if you really like to play games, you can go to the "Minecraft" game to make a CPU. Some experts have already done this.

4 Understand operating system principles

The operating system is so important. Your understanding of the operating system determines the depth you can achieve in your future work. There are too many extremely important concepts hidden here, such as the concepts of processes and threads, locks, scheduling, and IO models. Virtual storage, etc., they will play an important role in your future development of high-performance and high-concurrency systems.

Even if you learn Java and SSH/SSM first, as your abilities improve, you will eventually have to enter the world of these basic knowledge. Why not get them all while in college?

Some people may think that OS is too boring and they really can’t stand it. In fact, OS is a hands-on practical course. You can go and look at the source code of the early Linux kernel (requires C language). There are countless books and articles; you can also learn it yourself You can make your own simple operating system, and there are many video books. It depends on whether you are willing to spend your time playing games on it.

For example: A VOID student from Harbin Institute of Technology built an operating system similar to Linux 0.11 from scratch during his undergraduate period. He got a Special Offer from Alibaba and is currently working at Alibaba. The video he recorded of "Writing an Operating System from Scratch" can be seen at Station B: https://www.bilibili.com/video/av12169693/

Classmate B wants to ask: "I am a great person and have a good school. How can I, a scumbag with three books, do it? Aren't you setting an impossible task for me?"

It is true that there are always only a few geniuses. It is impossible for everyone to become a genius, and it is impossible for everyone to make genius results.

But we must keep moving forward on the road paved by genius. Maybe one day we will find, oh, I have surpassed so many people!

You must insist on using Linux instead of Windows, especially if you are determined to do back-end development. Don't be like me when I installed a dual system in college. As a result, I favored Windows all day long and never looked for the Linux brand.

5 Network, database, compilation principle

Putting these three together, I personally feel that their importance is not as high as the previous ones.

For the network, you need to understand the network layering model, reliable transmission principles, TCP/IP protocol, Socket programming, and combined with the operating system, you can consider writing a Web server.

For databases, first understand SQL, relational models, transactions, and indexes. If you want to learn more deeply, you can take a look at how queries are implemented and how transactions are implemented. If you are really interested, you must take a look at the source code of SQLite.

The best way to learn compilation is to make your own programming language. After you develop it, you will have a very thorough understanding of the programming language.

6 Data structures and algorithms

There is no need to emphasize the importance of this. Those who often see coders turning around may be annoyed. You can read the previous article "What is the use of learning data structures?" 》

In the learning process, in addition to reading books and understanding various algorithms and data structures, the more important thing is to do questions, do questions, do questions!

Classmate C said: "Old Liu, aren't you talking about professional computer courses?"

Yes, they are professional computer courses. Generally speaking, you will realize their value only after working for a few years, and you will regret why you didn't study hard in college, just like me now.

Don’t be limited to the textbooks issued by the school. There are now extremely abundant video resources on the Internet, and we can also see courses from world-class universities. Don’t waste it.

Classmate Ding said: Lao Liu, please stop being blind. You asked me to learn Java and do projects, and now you ask me to build CPUs, write operating systems, databases, servers... I don’t have time to spend time with my daughter. Friends went on a date.

Congratulations, you already have a girlfriend, surpassing most of your classmates. It is also very important to fall in love in college and enjoy your youth.

But what I want to say is that you can't learn everything. What you can do is to concentrate your firepower on one direction, which is the direction you are most interested in. Only those who can withstand loneliness and temptation are most likely to succeed. If you combine it with your own interests, you will definitely succeed.

In short, the basic knowledge of computers distinguishes you from others and allows you to accelerate faster than others.

But it’s probably not of much use if Lao Liu blindly BBs so much, because I can’t do anything if you don’t take action.

The above is the detailed content of University study plan computer. For more information, please follow other related articles on the PHP Chinese website!

Statement
This article is reproduced at:Linux就该这么学. If there is any infringement, please contact admin@php.cn delete
What are the main tasks of a Linux system administrator?What are the main tasks of a Linux system administrator?Apr 19, 2025 am 12:23 AM

The main tasks of Linux system administrators include system monitoring and performance tuning, user management, software package management, security management and backup, troubleshooting and resolution, performance optimization and best practices. 1. Use top, htop and other tools to monitor system performance and tune it. 2. Manage user accounts and permissions through useradd commands and other commands. 3. Use apt and yum to manage software packages to ensure system updates and security. 4. Configure a firewall, monitor logs, and perform data backup to ensure system security. 5. Troubleshoot and resolve through log analysis and tool use. 6. Optimize kernel parameters and application configuration, and follow best practices to improve system performance and stability.

Is it hard to learn Linux?Is it hard to learn Linux?Apr 18, 2025 am 12:23 AM

Learning Linux is not difficult. 1.Linux is an open source operating system based on Unix and is widely used in servers, embedded systems and personal computers. 2. Understanding file system and permission management is the key. The file system is hierarchical, and permissions include reading, writing and execution. 3. Package management systems such as apt and dnf make software management convenient. 4. Process management is implemented through ps and top commands. 5. Start learning from basic commands such as mkdir, cd, touch and nano, and then try advanced usage such as shell scripts and text processing. 6. Common errors such as permission problems can be solved through sudo and chmod. 7. Performance optimization suggestions include using htop to monitor resources, cleaning unnecessary files, and using sy

What is the salary of Linux administrator?What is the salary of Linux administrator?Apr 17, 2025 am 12:24 AM

The average annual salary of Linux administrators is $75,000 to $95,000 in the United States and €40,000 to €60,000 in Europe. To increase salary, you can: 1. Continuously learn new technologies, such as cloud computing and container technology; 2. Accumulate project experience and establish Portfolio; 3. Establish a professional network and expand your network.

What is the main purpose of Linux?What is the main purpose of Linux?Apr 16, 2025 am 12:19 AM

The main uses of Linux include: 1. Server operating system, 2. Embedded system, 3. Desktop operating system, 4. Development and testing environment. Linux excels in these areas, providing stability, security and efficient development tools.

Does the internet run on Linux?Does the internet run on Linux?Apr 14, 2025 am 12:03 AM

The Internet does not rely on a single operating system, but Linux plays an important role in it. Linux is widely used in servers and network devices and is popular for its stability, security and scalability.

What are Linux operations?What are Linux operations?Apr 13, 2025 am 12:20 AM

The core of the Linux operating system is its command line interface, which can perform various operations through the command line. 1. File and directory operations use ls, cd, mkdir, rm and other commands to manage files and directories. 2. User and permission management ensures system security and resource allocation through useradd, passwd, chmod and other commands. 3. Process management uses ps, kill and other commands to monitor and control system processes. 4. Network operations include ping, ifconfig, ssh and other commands to configure and manage network connections. 5. System monitoring and maintenance use commands such as top, df, du to understand the system's operating status and resource usage.

Boost Productivity with Custom Command Shortcuts Using Linux AliasesBoost Productivity with Custom Command Shortcuts Using Linux AliasesApr 12, 2025 am 11:43 AM

Introduction Linux is a powerful operating system favored by developers, system administrators, and power users due to its flexibility and efficiency. However, frequently using long and complex commands can be tedious and er

What is Linux actually good for?What is Linux actually good for?Apr 12, 2025 am 12:20 AM

Linux is suitable for servers, development environments, and embedded systems. 1. As a server operating system, Linux is stable and efficient, and is often used to deploy high-concurrency applications. 2. As a development environment, Linux provides efficient command line tools and package management systems to improve development efficiency. 3. In embedded systems, Linux is lightweight and customizable, suitable for environments with limited resources.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment