I'm a second-year computer science student exploring possible career paths, including full-stack development, cybersecurity, cloud DevOps, and other areas of software engineering. So far, I've learned Python and C/C++, and I recently started practicing data structures and algorithms. I'm wondering whether I should choose one direction and spend the next two years building toward it, or continue exploring for a while longer. What would experienced developers recommend?
5 Answers
Keep working on projects and share your progress publicly if you’re comfortable doing so. Your Python projects using PyQt5 and JSON, along with regular code commits, are already a good way to deepen your understanding. You don’t need to master every version-control feature immediately; focus on building useful things and gradually improve your Git skills.
It’s worth checking the job market in your own country or region before committing to a specialty. Look at recent job postings for software development, infrastructure, cloud, and the different cybersecurity roles. Treat market trends as one factor rather than the only deciding factor, since these fields change quickly and cybersecurity itself covers many very different jobs.
A lot of people change direction after they see what real projects and job descriptions are like. Build one small CRUD application first and pay attention to how you feel about the day-to-day work. Full-stack development is a reasonable starting point because it exposes you to databases, APIs, frontend code, and deployment. Cloud or DevOps interests often become clearer after you’ve had to deploy and maintain something yourself.
You’re only in your second year, so there’s no need to have your entire career mapped out yet. Exploring several areas is useful at this stage. Try building a small full-stack application, intentionally break parts of it, and then deploy it somewhere. That will give you a feel for frontend work, backend logic, databases, and infrastructure while showing you which parts you actually enjoy.
Starting with full-stack development may be practical because DevOps roles often expect some experience with production systems. Build a few CRUD projects using different databases, deploy them yourself, and learn the basics of Linux, networking, containers, and cloud services along the way. After that, you’ll have a much better basis for deciding whether infrastructure work suits you.

I’ve made a few Python projects with PyQt5 and JSON mostly on my own, using AI guidance when I got stuck. I’ve also been committing regularly and know the basics of adding, committing, and pushing, although I still have a lot to learn about Git.