I'm a computer science student trying to plan my next steps. Over the summer, I practiced algorithmic problems in C, covering records, arrays, functions and procedures, recursion, pointers, and linked lists. I also learned the basics of Git and GitHub. I started the CS50 course and reached the memory section, but paused after watching about an hour so I could practice pointers. Now I'm unsure whether I should continue with data structures such as trees and stacks, finish the memory material, or focus on broader software development. What would you recommend for my personal development?
3 Answers
Continue with data structures because they’re useful regardless of the direction you choose, and consider learning C++ alongside them if you want more practice with modern tools. At the same time, explore development by making projects, even when you don’t yet know everything involved. For example, you could create a simple graphical program with SDL, then explore OpenGL if graphics interest you. That can teach you about event loops, polling, rendering, and memory, while helping you discover which area of development you actually enjoy.
Don’t skip the memory section. Manual memory management is a core part of understanding C and will make pointers, arrays, linked structures, and later C or C++ work much clearer. Finish that material and practice it with small programs instead of only watching the lessons.
Keep studying data structures, but also broaden your skills beyond algorithms and C. The best way to turn what you know into practical ability is to build small hobby projects. They don’t need to be impressive portfolio pieces at first; creating something forces you to learn how the different parts of software fit together.

I only watched about an hour before switching to pointer exercises, so I’ll return to it and finish the section.