I'm a beginner programmer trying to figure out how to build projects, like a terminal text editor that can save to a file. I want to learn how to approach this without just following tutorials. Should I break down the project into smaller tasks, like implementing file I/O, editing strings, and displaying contents one at a time? I also have bigger projects in mind later, like creating a virtual machine or a game, and I'm unsure how to begin with those. What's the best way to learn and piece everything together myself?
3 Answers
Try to avoid getting stuck in 'tutorial hell.' Focus on breaking your project down into smaller pieces and tackling them step by step. It's normal to feel overwhelmed, but just start with the basics and go from there.
For your text editor, consider using the 'curses' library for display control, and practice handling keyboard input without relying on functions like scanf. Work on file I/O and string manipulation separately until you feel comfortable. A good way to begin could be duplicating command-line utilities like 'cat' or 'less' to familiarize yourself with command input and output.
That's helpful! But how do I figure out what I need to learn beforehand? It feels like there’s a lot of background knowledge I’m missing.
To build something like a game or a text editor, you need to identify what you're unsure about. Start by breaking the overall project into manageable parts. If you're focusing on a game, for example, you’ll first need to learn how to display a window and handle inputs. Research frameworks or libraries that can help, and dive into their documentation for guidance.

Exactly! Just tackle one small problem at a time, and you'll build your confidence as you go.