I'm learning programming from scratch and wondering what comes after basic syntax and guided projects. If I wanted to build something like a networking tool or an operating system, how much would I need to know before starting, and what would the workflow look like?
How do you start building a complex project you've never made before?
Answers
Start by making the goal much smaller and more specific. A networking tool could be a program that connects to a server and displays the response. Write down what the first version should do, then leave the extra ideas for later.
Break that goal into pieces: find out how connections work, make a minimal connection, send a request, and handle the response. Research and build one piece at a time. You don't need to understand the entire field before you begin, but you do need to learn enough about each piece to use it.
Reply to this answer
Syntax is only the start. For an HTTP server, for example, you'd also need to learn about HTTP and how network connections work. For an operating system, the underlying topics would be different and the scope could get big very quickly.
Read documentation and books, search for explanations of the parts you don't understand, and look at existing projects doing similar things. You don't have to finish all that research up front. Let the next concrete problem tell you what to study.
Reply to this answer
Before coding, describe the project from the user's point of view. Who uses it, what do they need it to do, and what would count as a useful first version? Even a rough sketch on paper can expose gaps in an idea before you've built around them.
That design doesn't have to be perfect. It's a starting model you can revise as you learn more.
Reply to this answer
AI can help explain a term or unblock a specific problem, but I wouldn't start by asking it to generate the whole project. On a learning project, try writing the code yourself and checking suggestions against documentation. Figuring out how the pieces fit together is a big part of the work.
x3~packet_91:
So using it to explain a concept is fine, but I should still work through how to apply that concept myself?
crackers_before_curtains:
That's a useful way to treat it. Try to understand and verify any suggested code rather than assuming it does what the explanation says.
Reply to this answer
Build up gradually. Guided projects and small exercises can teach you useful pieces, but eventually pick a problem where the steps aren't already laid out for you. Being unsure what to do next is normal, not a sign you need to go away and learn everything first.
Reply to this answer
Add your answer
Answers are reviewed before publication.
r3!mux_718:
Keeping a separate note for future features helps. You can save the ideas without letting them expand the first version.