I spent about two months learning the basics of C after coming from a Python background, and I'm finding it much more complicated than I expected. What should I focus on next to become capable of designing and building software projects of my own?
5 Answers
Start building projects. Choose something you genuinely want to make, then learn the concepts, tools, and libraries required as you go. Small projects will teach you far more than studying syntax in isolation.
Learn the fundamentals that apply across languages, especially problem solving, data structures, and algorithms. Once those ideas are familiar, picking up another language becomes much easier. C also becomes significantly more challenging beyond basic syntax, so give yourself time to understand memory, pointers, and program structure.
Begin with a specific piece of software you actually want to create. Define what it should do, break it into smaller parts, and research each requirement as it comes up. A concrete goal will make it much easier to decide what to learn next.
Study software architecture and how components communicate. Learn how to separate responsibilities so bugs are easier to find and new features are easier to add. Understanding how a whole application is organized is just as important as knowing how to write individual functions.
You need experience, and that takes longer than a couple of months. Keep practicing by solving increasingly difficult problems and finishing things, even when the first versions are messy.

Even a simple project can be useful. One person started by turning sheet music into computer beeps, which is a good example of learning through experimentation.