I'm 17, have no real programming experience yet, and want to spend my free time learning something that could realistically lead to a job later. I'm interested in both cybersecurity—ethical hacking, capture-the-flag challenges, and platforms like Hack The Box—and software engineering, especially graphics programming, OpenGL, and eventually building a game engine. I'm not sure whether I'll major in computer science, math, neuroscience, or psychology, so I'd like advice on which path makes more sense to start with.
4 Answers
Try some introductory coursework or projects before committing to a career direction. Cybersecurity and software engineering can both sound exciting, but the day-to-day work may be very different from the hobbies associated with them. See whether you still enjoy programming, problem-solving, and learning technical material consistently rather than choosing based only on what seems interesting.
You don’t necessarily have to choose one permanently. Learn software development first, then add security projects such as CTFs, basic penetration-testing labs, and networking exercises. That combination can make you more versatile than focusing narrowly on cybersecurity from the beginning.
Start with programming fundamentals and software engineering. That gives you a broader base and keeps both paths open. Once you understand programming, operating systems, networking, and debugging, you can move into cybersecurity much more effectively. You can also explore graphics programming with OpenGL on the side.
That makes sense. I’ve enjoyed experimenting with C# before, so I’ll probably try a more structured programming project and see where it leads.
A computer science degree is the most directly useful option if you’re considering either field, although math combined with strong programming skills can also be an excellent combination. For software engineering, many employers expect a degree or substantial evidence of ability. Cybersecurity also benefits from certifications and hands-on experience, but you’ll still need a solid foundation in programming, systems, and networking. Starting in support or another entry-level technical role can help you build that experience.

I did enjoy learning some C# in school, even though I only made a simple shopping calculator. I’ll test myself with a larger project and see whether I can stay interested for several hours at a time.