Hey everyone! I'm a junior studying computer science and I'm looking to step up my skills beyond basic projects and web development. Recently, I got interested in systems programming and was advised to create a UNIX Shell using C++. I believe this will help me learn about OS fundamentals, process creation, and the POSIX API.
I've been reading up on process management from OSTEP and brushing up on my C++ skills, but as I start thinking about coding, I'm feeling a bit overwhelmed. I don't know how to structure the code. Should I create a class, or keep it functional? How should I organize my files?
Previously, I've relied on tutorials or used AI tools to guide my coding, and I'm starting to feel like that's not the right way to learn. I worry it feels like cheating and that I'm not a legitimate developer if I lean on those resources too much.
I'm unsure how to proceed without that safety net. I'd really appreciate any advice on how to navigate this phase of learning, especially from those who have gone through something similar.
5 Answers
Just go for it! Try writing some code, even if it's not perfect. Your first attempt likely won't be great, but that's totally normal. Just keep versioning your work with git so you can always backtrack if needed. Trust me, your project might look messy now, but you'll learn a ton by just diving in.
I actually think using AI to help you learn is totally acceptable. Think of it like asking a teacher for some hints. Use it to clarify your doubts and understand concepts faster. When I started serious projects I just began with simple functionality and built on it, so don’t stress the architecture at first. You can always refactor later! Understanding what's happening in your process is what matters.
There's really no one-size-fits-all approach here. Everyone has different ways of figuring things out. You won't know what works for you until you make your own choices and, yes, even mistakes.
It’s okay to feel unsure! That just means you’re taking this seriously. If you can’t decide how to structure it, start with everything in one file. You can always break it up later as you find what works. And if you're stuck, don't hesitate to try something new; flipping a coin for decisions can even help!
This struggle is all too real! For creating your shell, start with simple commands to keep your focus sharp. Most great code is born from messy beginnings, so don’t worry too much about being perfect right out of the gate.

Related Questions
How To: Running Codex CLI on Windows with Azure OpenAI
Set Wordpress Featured Image Using Javascript
How To Fix PHP Random Being The Same
Why no WebP Support with Wordpress
Replace Wordpress Cron With Linux Cron
Customize Yoast Canonical URL Programmatically