6 answers
Updated
527 views
What is the best advice for a computer science major who is unsure about which field to pursue (cybersecurity, software engineer, etc)? #fall25
I am a sophomore in college at Saint Joseph's University, and I declared my major last spring. I am unsure what I want to do with my degree at the moment.
Login to comment
6 answers
John Easton CEng FIET FBCS CITP
Design large computer systems for companies
53
Answers
Winchester, England, United Kingdom
Updated
John’s Answer
Hi Gabriella
First thing to remember here is that you can ALWAYS change your mind. Just because you start off in one direction doesn't mean you can't head off to something completely different at a later date.
Next thing to remember is that everything is INTERLINKED. Say you want to focus on security. You will need to understand things about networking, about operating systems, about application development etc. None of these areas is a silo and because everything touches everything else, you already have a base knowledge of the other areas that can help you transition roles later.
Finally, remember that there are SO MANY different jobs in IT and that most of them DON'T actually need a computer science qualification. It's true that it helps, but there are lots of things that it won't matter at all. You should also accept the fact that technology changes at such a pace that you will always be learning something new as you go. It's better to know a little bit about a lot of areas than to be an in-depth specialist on just one. You are more valuable / flexible as the former.
Above all, try different things out. See what you like doing and then go with that, remembering point 1 above!!
First thing to remember here is that you can ALWAYS change your mind. Just because you start off in one direction doesn't mean you can't head off to something completely different at a later date.
Next thing to remember is that everything is INTERLINKED. Say you want to focus on security. You will need to understand things about networking, about operating systems, about application development etc. None of these areas is a silo and because everything touches everything else, you already have a base knowledge of the other areas that can help you transition roles later.
Finally, remember that there are SO MANY different jobs in IT and that most of them DON'T actually need a computer science qualification. It's true that it helps, but there are lots of things that it won't matter at all. You should also accept the fact that technology changes at such a pace that you will always be learning something new as you go. It's better to know a little bit about a lot of areas than to be an in-depth specialist on just one. You are more valuable / flexible as the former.
Above all, try different things out. See what you like doing and then go with that, remembering point 1 above!!
Teklemuz Ayenew Tesfay
Electrical Engineer, Software Developer, and Career Mentor
517
Answers
Ethiopia
Updated
Teklemuz Ayenew’s Answer
Start by exploring broadly while building a strong foundation in core concepts like algorithms, data structures, and programming languages, as these skills are valuable across nearly every field of computer science. Take the most common or foundational courses within the computer science field to gain exposure to different areas, and complement them with hands-on projects and lab experiences, because practical experience often reveals which specialization excites you more than theory alone. Consider which industries interest you most and what kinds of roles you enjoy, whether it’s software development, machine learning, cybersecurity, data science, or AI, and compare the skills, work environment, and growth opportunities in each.
Additionally, actively seek guidance from computer science professionals in various specializations. Ask about their day-to-day responsibilities, required skills, career paths, and how their work aligns with long-term goals. Shadowing professionals or attending informational interviews can provide a realistic perspective on different roles and industries. Maintaining clear goals, managing your time wisely, and staying curious and up to date on industry trends, best practices, and emerging technologies will help you make informed decisions about your future path. By combining foundational coursework, hands-on experience, mentorship, and reflection, you can gradually identify the specialization and career direction that best align with your skills and passions.
Additionally, actively seek guidance from computer science professionals in various specializations. Ask about their day-to-day responsibilities, required skills, career paths, and how their work aligns with long-term goals. Shadowing professionals or attending informational interviews can provide a realistic perspective on different roles and industries. Maintaining clear goals, managing your time wisely, and staying curious and up to date on industry trends, best practices, and emerging technologies will help you make informed decisions about your future path. By combining foundational coursework, hands-on experience, mentorship, and reflection, you can gradually identify the specialization and career direction that best align with your skills and passions.
Updated
Sandeep’s Answer
Hello Gabriella,
The best strategy for an uncertain Computer Science major is to prioritize exploration through practical experience, rather than continuing to study theory. Since you are a sophomore, your goal is to sample the diverse fields of CS by defining and testing your preferences across the three major tracks: Application Development, Infrastructure/Security, and Data Science/AI.
You should dedicate your next two summers to internships in different fields. Nothing clarifies a career path faster than working 40 hours a week in a role—try an internship focused on building features one summer, and an internship focused on analysis or defense the next. In the meantime, launch short, focused personal projects in each area to see which problem type you genuinely enjoy solving: building a full-stack web app, hardening a server in a virtual machine, or training a simple machine learning model. This experiential approach will transform your uncertainty into clarity by showing you the practical job.
The best strategy for an uncertain Computer Science major is to prioritize exploration through practical experience, rather than continuing to study theory. Since you are a sophomore, your goal is to sample the diverse fields of CS by defining and testing your preferences across the three major tracks: Application Development, Infrastructure/Security, and Data Science/AI.
You should dedicate your next two summers to internships in different fields. Nothing clarifies a career path faster than working 40 hours a week in a role—try an internship focused on building features one summer, and an internship focused on analysis or defense the next. In the meantime, launch short, focused personal projects in each area to see which problem type you genuinely enjoy solving: building a full-stack web app, hardening a server in a virtual machine, or training a simple machine learning model. This experiential approach will transform your uncertainty into clarity by showing you the practical job.
Updated
Craig’s Answer
Hi Gabriella! Look into the job prospects for the next 20 years online. Cybersecurity will keep growing in importance, so it's a solid choice. Consider a software engineering degree with a focus on cybersecurity. Software engineering teaches you how to build and maintain large software systems, while computer science is more about the theory.
Updated
Abhinav’s Answer
Sandeep gave a great answer! Computer Science is full of exciting topics that will be really important soon. One area you might want to explore is Quantum Computing. Take some time to find out what interests you the most.
Updated
JIZHOU’s Answer
Hello Gabriella,
This is a good question, and I feel like you are in a stage that you have no expectations about your future career which is completely fine for a sophomore student.From my personal experience and my observations, job market for computer science graduates is not as good as couple years ago, more precisely, it is not good at all. In a word, there's no such field that can guarantee you a good job and career path after your graduation and you are expected to compete with at least 20 candidates for one position and half of them are experienced engineers or students graduated from big name universities with internship experiences.
As all the folks mentioned, core skills like algorithms, data structures are your best weapon, you need to sharp them by getting related class, practicing some leetcode questions, and watch tutorial videos. But not overdo it -- don't spend three hours on a hard leetcode questions -- easy level and some medium level questions are good enough to landing an internship.
Start early and focus on your local companies is the best strategy for now. Go ahead and do some research about the internship positions related with computer science, check out what fields of study they need from candidates. Feel free to reach out their HRs and engineers and ask questions about the skills they are using daily. Then from various answers, pick ones you actually interested in.
After you land an internship, you can know better about if you like this field or not. If you do, keep a good relationship with your mentors and fellow interns, start building your connections. If not, change your strategy fast.
This is a good question, and I feel like you are in a stage that you have no expectations about your future career which is completely fine for a sophomore student.From my personal experience and my observations, job market for computer science graduates is not as good as couple years ago, more precisely, it is not good at all. In a word, there's no such field that can guarantee you a good job and career path after your graduation and you are expected to compete with at least 20 candidates for one position and half of them are experienced engineers or students graduated from big name universities with internship experiences.
As all the folks mentioned, core skills like algorithms, data structures are your best weapon, you need to sharp them by getting related class, practicing some leetcode questions, and watch tutorial videos. But not overdo it -- don't spend three hours on a hard leetcode questions -- easy level and some medium level questions are good enough to landing an internship.
Start early and focus on your local companies is the best strategy for now. Go ahead and do some research about the internship positions related with computer science, check out what fields of study they need from candidates. Feel free to reach out their HRs and engineers and ask questions about the skills they are using daily. Then from various answers, pick ones you actually interested in.
After you land an internship, you can know better about if you like this field or not. If you do, keep a good relationship with your mentors and fellow interns, start building your connections. If not, change your strategy fast.