I'm starting from zero and want to understand software development properly—not just memorize syntax or follow tutorials. What subjects, books, courses, or people would you recommend for building a broad foundation? I'd also appreciate advice on how to practice, choose projects, and learn concepts like software design, programming fundamentals, and how computers work.
5 Answers
Useful beginner resources include CS50x, NandGame, and a practical assembly-language course. You could also begin with HTML, CSS, and JavaScript if you’re interested in web development, but focus on understanding the underlying concepts rather than only copying syntax. Build several small applications before moving on to larger frameworks.
A good starting point depends on what you mean by “understanding software.” For software design and programming fundamentals, try the first few lectures of Structure and Interpretation of Computer Programs. If that feels too advanced, How to Design Programs is a gentler introduction. If you’re more interested in how computers work internally, Nand2Tetris is an excellent path because you build a computer system from basic logic gates upward.
Be cautious about having an AI generate complete applications for you while you’re still learning. It can be useful as a tutor, for explanations, practice questions, and help interpreting error messages, but writing the important parts yourself will expose gaps in your understanding and make the lessons stick.
You don’t need to learn the entire field in a strict sequence—it’s far too large for that. Start with one language and basic programming concepts, build a small project, then study whatever knowledge gap gets in your way. Over time, you can branch into data structures, algorithms, operating systems, networks, databases, and software architecture.
Projects are probably the best teacher. Pick something you genuinely want to build, even if it’s small, and learn the concepts you need along the way. You’ll remember ideas much better after spending time debugging a real problem. Try, fail, investigate, and repeat instead of waiting until you’ve studied everything in the perfect order.

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