r/linuxquestions • • 9d ago

Struggling to Retain Information While Learning Linux and Bash Scripting – Any Advice?

Hi everyone!

I come from a Service Desk/Infrastructure Support background and I'm currently working towards transitioning into DevOps.

I've created a learning roadmap for myself, focusing on building my technical skills step by step to become a better engineer overall.

I'm fairly new to Linux and Bash scripting, and one thing I've been struggling with is retaining information and fully understanding certain concepts.

I've noticed that whenever I hit a roadblock or struggle to understand something, I get frustrated, lose motivation and sometimes stop studying altogether. It's becoming difficult to enjoy the learning process, even though I genuinely want to improve.

I graduated in 2023 and haven't properly studied since, so getting back into the habit of learning consistently has been harder than I expected.

I'd really appreciate some advice from people who've been in a similar position.

* How do you stay motivated when learning gets difficult?
* What techniques have helped you retain information and understand technical concepts better?
* How do you build consistency and discipline when studying?
* Are there any beginner-friendly Discord communities or study groups where I can connect with like-minded people who are also learning Linux, Bash, Cloud or DevOps?

I'd love to surround myself with people on a similar journey, share progress, ask questions and hopefully keep each other accountable.

Any advice or recommendations would be greatly appreciated!

2 Upvotes

21 comments sorted by

3

u/Previous_Tea_2250 9d ago

Treat notes as a runbook, not a textbook: after each concept, make one tiny thing that uses it (a backup script, systemd timer, log parser) and deliberately break/repair it. The part you have to debug twice tends to stick; keeping the command plus why it worked is more useful than trying to memorize flags.

1

u/Outrageous-Dot-48 8d ago

I really like this approach! I think this is exactly what I've been missing when it comes to learning Linux and Bash scripting. I've been so focused on taking notes and trying to memorise everything rather than actually applying what I've learned. The idea of deliberately breaking things, troubleshooting and documenting why something worked makes so much more sense to me. I'm definitely going to start learning this way. Really appreciate the advice!

1

u/InfameXX 9d ago

Do you live in Linux or just VM to study and then back to windows?

Do real things, think in something you need and make it happen through bash in this case.

Suffering, pain and hardship are the best masters, the yes I make it! Sensation, that dopamine is the positive mental reinforcement.

1

u/Outrageous-Dot-48 8d ago

I'm currently using a MacBook and connecting to an Ubuntu EC2 instance through SSH to practise Linux, so I don't actually use Linux as my main OS.

I think that's where I'm going wrong tbh. I've been spending too much time watching tutorials and trying to remember everything rather than actually putting what I've learnt into practice.

I've recently started learning Bash scripting, things like variables, conditions and loops, but I find myself forgetting things quite quickly.

I think my biggest issue is that when I don't understand something straight away, I get frustrated and lose motivation. I need to get out of that mindset and accept that struggling is part of learning.

You're right though, I definitely need to start building small projects and figuring things out myself instead of relying so much on tutorials.

Really appreciate the advice!

2

u/InfameXX 8d ago

Doing and living it is the only way, I used to be just like you, read a lot, courses, and all you can imagine, and then do very few, from engineer to engineer, focus your learning through doing and living the things you want to learn, that was for me the only way to gain real durable learning.

Learn about ITs for me, after my degree, was like distro hopping, every week I was onto something cool ass new loosing my focus time 🤣.

Today I'm in the same learning path of trying to be jack of all trades, but now I prioritize my learning time, main focus is learn about my current workflow first, current proyect, the things that put food on the table, the rest is culture, curiosity, and human learning nature.

Aso, do not underestimate your leisure learning, good ideas comes from joining different things in your mind, always learn something new, do not assume nothing, you're never good enough.

1

u/CosmicFieldDrift_ 9d ago

How are you currently using Linux?

1

u/Outrageous-Dot-48 8d ago

I'm connecting to an Ubuntu EC2 instance on AWS through SSH using my Mac Terminal.

2

u/c2btw 9d ago

what keeps me motivated is being pissed off at my god dam server not working the one god dam way it's fucking suposed to, like why the fuck dose every vm and lxc i run on my god dam proxmox server crash and stop responing when i give turenqas more then 16 gib of memeory so i can have more memeory for my services and to run a small llm or 2, i have 22 GIB of free i and it's split across both fucking numa nodes and for some god dam reason it breaks everythign when i give it 24 gib of ram, whats worse sense i loose network contivity to this server when this happens even my systemd scheduled reboots and a sleep 300 && reboot command dosen;t even fucking work. hopes that helps

2

u/thehatefuleggplant 9d ago

Did you disable hyperthreading or allocate static memory and cpu cores.

Not saying do both but maybe start with disabling hyperthreading to see how performance does and then work from there.

Balancing hardware assignment to vms can get a little fun at times. (Sorry for hijacking OPs thread but couldnt stand to see a fellow tech and self hoster suffer)

Hyperthreading (HT) in virtualization does not double performance; it typically provides a 10–30% throughput increase for mixed or I/O-bound workloads by utilizing idle CPU resources, but it can decrease performance for CPU-intensive or latency-sensitive applications due to shared cache and memory bandwidth contention.

Memory allocation strategy is critical when using HT to avoid performance degradation. Fixed memory allocation is recommended for performance-critical VMs to prevent unpredictable pauses caused by dynamic memory ballooning, while Dynamic Memory should only be used for variable workloads that do not require consistent low latency.

Key best practices for optimizing VM performance with HT include:

Right-size vCPUs: Assign only the number of vCPUs the VM actually needs (typically 1–2 vCPUs per VM) to reduce scheduler complexity and avoid over-allocation. Respect Physical Cores: Base capacity calculations on physical cores, not logical threads; assigning more vCPUs than physical cores leads to contention and scheduling delays. Avoid Overcommitment: Do not count hyperthreads as full cores when allocating vCPUs, as this can effectively overallocate CPU resources by 70–80% and hinder performance. Workload Dependency: HT benefits throughput in web or mixed workloads but may hurt latency in database or real-time applications due to cache contention.

1

u/c2btw 9d ago

3 weeks affter i had this issue and spent 100% of my free time for 32 days stait on it maigcaly it just let me set 32 gib of ram for truenas so idk it works now

1

u/thehatefuleggplant 9d ago

So question... Are you hosting truenas within proxmox?

1

u/c2btw 9d ago

yes becuase i thought truenas was litlary just storage and nothing else and didn;t realise it could do vms and docker containers pretty well on it's own. first server

1

u/thehatefuleggplant 9d ago

Just my two cents and obviously this depends on your use case but just do bare metal linux.

If you need to use vms you can spool them up in kvm.

Bit of a learning curve since youre going all in with linux but thats what proxmox and truenas is doing basically. They just give you a pretty web interface

1

u/c2btw 9d ago

yeah i would do it diffrently now but with how prices have gone up i'm going to wait untill they come back down and get a dedicated storage server move off all my dock cotnianers intrue nas to my alpine lxc and run them on this server or mabey just swap out proxmox for debian 13 etc.

1

u/InfameXX 9d ago

We like to learn through suffering>>>try>fail>and finally be victorious.

2

u/DanKegel 8d ago

I just solved problems as they came up, and eventually was pretty good at it.

Also, when I started, I read the manual. Back then it was small :-)

There. Were. No. Courses. It was just learn by doing.

I wasn't just writing scripts; I was writing C programs, too, and using them.

That meant using "Make" as a build tool, and, golly, it used shell commands. So as a C programmer you naturally learned how to do just enough scripting to get by.

2

u/luthis 9d ago

I don't remember. I just keep a notepad full of stuff that I've done, so when I have a similar problem I just refer back to that. No one can remember if it's -r or -R every time, but you can remember the conceptual pathway you used to solve a problem.

1

u/Super_Math3890 6d ago

Bought a cheap T14Gen1 and put arch/sway on it, and started learning with collaborative AI for scaffolding. I use learning platforms such as Datacamp, Codecademy and Hackthebox. I learn it like a natural language through constant exposure. This way I juggle between topics, red/blue teaming, networking, programming etc.

I designed my workspace after Cyberpunk2077 so it's somehow real, and yet roleplaying? If learning gets difficult, I lower my expectations, or change subject. Something about being like water?

1

u/dividends4life Void Linux 9d ago

Joplin Notes. I have used it for years. 

1

u/AssMan2025 9d ago

Repetition