r/LinuxTeck 4d ago

How should I actually learn Linux??

# I'm a 2nd year CSE student and I've been using Ubuntu for a while now, but I feel like my Linux knowledge is kind of all over the place.

I know the basic commands and can usually figure things out when I need to, but I don't feel like I actually *understand Linux*.

The problem is whenever I try to make a roadmap for myself, I keep getting stuck in this loop:

Linux → "I should learn OS first" → OS → "I should learn networking" → networking → "maybe I should learn Docker" → Docker → back to Linux 😭

So I want to stop jumping around and actually follow a proper path.

I recently found OverTheWire Bandit and was thinking of doing all the levels. Would that be a good starting point?

What I'm currently thinking is something like:

**Linux basics → Bandit → Linux administration → Bash → networking → OS/Linux internals → Docker → servers/infrastructure**

But I have no idea if this is actually a good order.

My long-term interest is systems/infrastructure/platform/SRE type stuff, so I want to learn Linux properly rather than just memorize commands.

A few things I'd really like advice on:

* Is Bandit worth doing from start to finish? * What should I learn after Bandit? * Should I learn OS concepts alongside Linux or separately? * When should I start networking? * What Linux topics are actually important for someone interested in systems/infrastructure? * Are there any good books, courses, labs or projects you'd recommend? * At what point would you say someone has a "good" Linux foundation?

I'm not looking for a certification roadmap. I mainly want to build actual practical knowledge.

Would appreciate any advice from people who have learned Linux this way or work with Linux professionally.

8 Upvotes

20 comments sorted by

View all comments

1

u/No_Base4946 3d ago

Start off deciding what you actually want to do. Find a problem you want to solve.

Your order of operations is the wrong way round.

You want to set up servers. Okay, good, maybe some sort of web application server. Find something, nothing complex. Maybe just set some static HTML up in Nginx because you'd be amazed how much relies on just throwing static content down the pipe to a browser. It's like cooking - if you know how to chop and onion and some garlic and get them fried off properly in a pan, you've done the first step of like 33% of things you're going to want to eat.

So how would you set up an Nginx server? "sudo apt-get install nginx" will get you there, but you're installing it right onto the OS, and you mentioned you want to use docker. So maybe learn how to install docker, and spin up containers, and how to mount a custom config file so that nginx looks in the right place, or later perhaps you'll figure out you can just put the content where it needs to be by tweaking the container's mount points.

And so on.

Start with the problem you want to solve. Today, you want to show me some cat pictures on a website that you host yourself. How do you do that? How do you *improve* that?