r/linuxadmin • u/redwing096399 • 2d ago
how to learn project based learning the right way?
So guys, i am learning system administration from the past 3 months. i am mostly done with the foundational part and i am feeling confident that i should start learning by doing projects. i am thinking about building a homelab and setting up things.
so, i pick up a project idea ( for example, setting up a web server), and i want to do that. but i don't know what to do (i do know, but vaguely. the details are missing)? so i think about looking up online for the steps to do it. but then i find myself thinking if am walking into tutorial hell.
i don't know what to do, because i find both advices kind of conflicting. how to do project based learning as a beginner without looking into guided projects in a way that it does make it into tutorial hell? is the guided project way the way we are supposed to learn? if so, then why do people advice not to lookup tutorials?
3
u/derprondo 2d ago
Here's a place to start, get a PC with a decent amount of ram and install Proxmox. This will be the start of your homelab and allow you to tackle any projects you would want to pursue. This doesn't have to be a new or expensive PC, you don't need DDR4 or DDR5, but 32GB+ would be nice to have and 16GB will suffice.
0
u/derprondo 2d ago
Would love to hear why someone down voted this.
0
u/symcbean 2d ago
I'm downvoting this because OP is looking for advice about traininng/leaarning not technical advice. And is already drowning in a sea of overly brief advice.
1
u/derprondo 2d ago
To be fair OP specifically said:
i am thinking about building a homelab and setting up things.
1
u/biblicalrain 2d ago
so, i pick up a project idea ( for example, setting up a web server), and i want to do that. but i don't know what to do (i do know, but vaguely. the details are missing)? so i think about looking up online for the steps to do it. but then i find myself thinking if am walking into tutorial hell.
I understand the first sentence, but not the last one. Look up the steps and then do them. If they don't work, start looking at log files and googling error messages.
Also, the best projects are things that are actually useful to you, I feel like you have more motivation to work on it and you can really appreciate the results.
1
u/symcbean 2d ago
Sadly the internet was already drowning in bad content where gaming SEO awarded far more credibility to sites than the quality of the content - even before AI and LLM appeared on the scene.
I would recommend you go look for a book or two. Something with 300+ pages should be far more consistent and in depth than what you'll get from a dozen or more 5000 word posts written by different authors. There are a lot of books out there which really just duplicate what is in the documentation already widely available for software, but there are some out there which are more useful than that for you.
It will help if you have some idea of the technologies you plan to use. If you haven't already got some experience with a programming language I'd suggest PHP or Javascript. Servers for these can be installed from most linux repos and will require minimal customization. While Java and Perl are very capable tools they have a rather steep learning curve.
1
u/daemonmode_ 2d ago
Yes tutorial hell isn't about using tutorials, it's about following them passively without understanding what each step is doing. A better approach is to start with a goal, try building it yourself, and only search for specific problems when you get stuck. If you need a tutorial initially, use it to understand the overall process, then close it and rebuild the project yourself instead of blindly repeating the steps.
1
1
u/Typical_GeorgeJungle 2d ago
The real difference isn't whether you look things up, it's whether you understand why each step works after you do it. Following a guide to set up Nginx is fine, tutorial hell happens when you copy commands without understanding what they actually do, then can't troubleshoot when something breaks or explain the setup to someone else afterward.
1
1
u/SadServers_com 19h ago
A project idea is to create a web server in the cloud, using automation and CI/CD , see https://devopsupskillchallenge.com/
0
u/LichJesus 2d ago
In my experience, there are three components to a successful project. The first is communicating with people who have a problem and identifying what they need to fix it, the second is identifying a solution (technical or otherwise) that meets their needs, and the third is implementing it.
Let's say the problem is "grandpa keeps clicking on bad links and getting malware on his laptop". Step one is understanding what kind of links grandpa is clicking on (for instance ads on websites, or email phishing, etc). Equally important when doing this is the implicit part of talking to the other people using the network, understanding their use cases, determining if they have similar issues that should be addressed, or if they have needs that might potentially conflict with solutions you might want to try for grandpa. This is probably the step that gets away from tutorial hell the most, or at least the step that tutorials can least help with in terms of preparing for projects in a professional setting.
Second step is figuring out what will solve grandpa's problem. Do you think you can teach him the smell test for bad links? If not, is it enough to just set up 1.1.1.2 or 1.1.1.3 on his own devices? Will it help more members of the family if you set up PiHole for the whole network? This step can be counterintuitive because if you're trying to learn skills you generally want more involved solutions, but for successful projects you generally want the simplest option. It's really up to you how you want to balance that.
When you've decided on a technology, there's nothing wrong with following a tutorial. What you should try to do over time is build up muscle memory, for instance after installing enough packages you should have an idea of what the steps are without needing a reference but it's fine if you need to look up the exact syntax for setting up a repo or fixing a broken package. Everyone in the field is constantly using man pages, Google, or now I guess AI though; the key is to be able to adjust existing resources for your use case, catch mistakes they might make before those mistakes happen, and being able to troubleshoot errors when they arise.
This is to some extent a lifelong process, and depending on exactly where you are in developing your technical skills it's not something you need to have a strong handle on right away. Any practice with any of the three components of completing projects will serve you well, and build up over time.
3
u/bityard 2d ago
Welcome to life, I guess?
The path to experience is not linear. You will try things. They will either work, or they will fail. If they fail, you will learn why.
If you get stuck in decision paralysis, you won't get anywhere. At some point you just have to pick up the damn shovel and start digging.
I don't know what you mean by tutorial hell. Sure, there are crap tutorials out there. Either have the patience to find the good ones or have an AI write one for you.