I'm a computer science student looking for direction after a summer of self-study. I practiced algorithmic problems in C, covering records, arrays, functions, procedures, recursion, pointers, and linked lists. I also learned the basics of Git and GitHub.
I started the CS50 course and reached the section on memory management, but paused after watching about an hour so I could practice pointers. I'm now unsure whether I should finish that material, continue learning data structures such as stacks and trees, or start exploring software development more broadly.
What would be a good next step for my personal development? I'm open to suggestions about topics, languages, projects, or a practical learning plan.
3 Answers
Keep studying data structures and algorithms, since they’re useful across many areas, but you don’t have to wait until you’ve mastered everything before developing software. Try a project in an area that interests you, even if you don’t yet know all the required tools. For example, a simple graphical program could teach you about event loops, input handling, polling, memory, and rendering. Working on projects will help you figure out whether you prefer graphics, application development, systems programming, or something else. You could also eventually use C++ for practicing data structures if you want a more widely used development language.
Don’t focus only on algorithms. Start exploring different areas of development and build small hobby projects alongside your studies. Your first projects don’t need to be impressive résumé pieces—the process of building them will teach you how tools and concepts fit together, and you’ll gradually discover what kind of work interests you.
Finish the memory-management section before moving on. It’s an important part of understanding C, especially pointers, allocation, and how data structures work internally. Watching the lesson is useful, but make sure you also write small programs and practice the ideas yourself.
I only watched about an hour before switching back to pointer exercises, so I’ll return to it and finish the section properly.

That makes sense. I’ll start with a small project while continuing to study the fundamentals.