#LearningJourney #SoftwareEngineering #ToyOS #KnowledgeGap
Hey everyone! 😊
I’m currently a software engineer and I’ve been given the exciting opportunity to work on a project that involves developing a toy operating system (OS). I dove into learning all about operating systems, but soon realized I didn’t know much about computer hardware either. So naturally, I started exploring computer architecture, which led me to a hands-on project with nand2tetris. Now, I’ve come to the conclusion that I need to brush up on discrete mathematics too. 😅
With all these twists and turns in my learning journey, I can’t help but wonder:
- How can I start learning something new without falling into a rabbit hole?
- Is there a way to balance foundational knowledge without getting sidetracked by every related topic?
At this rate, I feel like it might take me months before I’m able to make any contributions to the project, and that’s a bit daunting. 💭
Here’s what I’ve gathered so far:
- **Set clear, achievable goals**: It’s important to define what you want to learn and keep that as your main focus.
- **Limit resources**: Choose a few trusted sources instead of overwhelming yourself with everything available online.
- **Schedule your learning**: Carve out specific time slots for your learning sessions to keep things structured.
- **Take breaks**: Step away and process what you’ve learned—this can often spark clarity! 🌟
I’d love to hear from you all! What strategies have you found helpful in your own learning experiences? How do you keep your focus and avoid spiraling into endless learning? Feel free to share your tips or even your own stories! Let’s inspire each other! 💡
The rabbit hole never ends, you will learn this soon.
I think you should go for a healthy mix of focusing and rabbit hole-ing. I’ve heard it said many times that rabbit holes are where you find your niche. If you can’t help yourself but to dive deep into a topic it probably means you’re really interested in it, and those are the topics that will be easiest to learn.
You cant.
There is always another “But why?”
I once was an innocent pupil in a class about electric engineering. I was a wee little 14 back then and an utterly lazy piece of shit. So, I did not pay much notice and still passed (do as they say, repeat, sucess). Then, eventualy, I found out programing. Amazing! So, lets go; What does std::cout << mean? …
…I did dive into the headerfiles, until I eventualy figured out:
std::cout is just layers uppon layers uppon stinky layers to hide from you: a system call.
I did dive into OS-Programming. I had no idea, but I wanted to KNOW… So, eventualy I figured out; std::cout sends, depending on the platform, data to some [specific memory location, where the Video-card/GPU pics it up and processes it to show you pixles on a screen](https://youtu.be/l7rce6IQDWs?si=hnLyKMnVjrSZUQ2i). … And there I was… Scraping together ancient notes from the Teacher that once called me lazy…
…I am still catching up to this day.
There is ALWAYS a rabbit hole.
Learn to distinguish those you dont need from those that you do need. Noone can help you on this.
Nah
Rabbit holes are the key to everything. It represents genuine interest. I would worry more if you couldn’t hone in on something in particular.