I've got a good grasp on programming languages like Python and a bit of C++, but I'm struggling with the broader aspects of programming. I'm looking to understand how to structure my code, the best practices for building projects, and the overall principles of programming that go beyond just learning language syntax. I can whip up small scripts that work, but creating a full-fledged project feels daunting. I'm also not familiar with many computer science concepts, so any resources or advice you could share would be awesome! Although this might seem vague, I'm really just trying to figure out how I can tackle more complex projects and optimize my code better.
5 Answers
To bridge your current skills to project development, start by picking a project that challenges you a bit. Make a list of features you want and break them down into manageable tasks. This way, you can focus on one step at a time and learn as you go! It's also helpful to keep track of new topics you encounter for future reference.
Consider exploring software architecture and tech stacks. Understanding how to choose tools for your projects will broaden your perspective. For example, many students find it eye-opening to learn how front-end languages like JavaScript interact with back-end languages and databases to create comprehensive applications, moving beyond simple scripts.
Web development isn't my focus, but it's definitely something to keep in mind!
It sounds like what you really need to delve into are application architecture and software design patterns. These concepts will guide you in organizing your code and making better design choices.
Thanks for pinpointing that! Knowing what to study is super helpful.
At the higher levels of programming, you're moving into systems design, which is more about choosing the right components than just writing code. Think about your project's architecture: will you use microservices, monoliths, or something else? Understanding these choices is crucial for developing scalable applications.
Don't forget about algorithms and data structures! These are core components of programming. As you tackle more complex problems, you'll develop an intuition for architectural decisions, which often come as you face challenges in your projects.

Finding a project can be tough for me too; it's like I'm stuck in idea limbo!