I'm a second-year computer science major trying to figure out what to learn next. I've been experimenting with different concepts like networking, concurrent programming, and API requests, but every time I start to learn something new, I feel like I'm not making any progress. I've created some projects, like games using Win32 and SDL2, and a simple chat app in C++, but I still struggle with fully grasping these technologies. It often feels like I'm starting over every time I try something new, and I find myself Googling a lot just to get by. Is this normal? Am I juggling too many topics at once? What should I focus on learning, and what kind of projects should I be building? Should I dive deeper into APIs, machine learning, networking, or another programming language? I've completed courses in C++, Java, and Data Structures, but I feel like I need more knowledge to accomplish my goals. I'm curious about what other students are doing at this stage in their programming journeys, as self-learning is pretty tough and I haven't found resources that click with me.
3 Answers
Hang in there! A lot of second-year CS students hit this phase. I suggest picking a specific area—maybe APIs—and start a small project related to that. You'll learn a lot by just diving in.
It's okay to feel overwhelmed—there's so much to learn! Try to focus on one topic that excites you, like building an API or working on a game. Just like if you were designing a complicated car, you'd need to take it step by step. Comparing yourself to others can be discouraging, but remember that everyone has their own path and challenges.
You're definitely not alone in feeling this way! The fact that you’re seeking knowledge shows you’re on the right track. Programming is all about problem-solving, and searching for solutions is part of the game. Keep practicing and don't be too hard on yourself. You'll improve with time!

That's a great tip! Starting with something manageable can really help build confidence.