4 answers
Asked
587 views
Computer Science-specialized or general direction
I am still unsure of my specific degree within computer science. There are a lot of directions to go. How do you decide what direction to choose in this field? Are you shown all possible directions in early years of college?
#computerscience
#collegemajor
#JULY20
Login to comment
4 answers
Updated
Jasmine’s Answer
In my own experience, the college curriculum attempts to expose a variety of topics to students in their earlier years via the lower division or general education classes. Similar to what other answers have stated, I also had general / loosely defined tracks at my school that you could start after the lower division classes, typically beginning with some sort of introductory course (e.g. "Introduction to Computer Security," "Introduction to Databases," etc). While it can be overwhelming to take all of those introductory courses to find out what you like, the lower div courses will give you a loose idea of what you'd like to pursue. And, just seeing how you feel about the course descriptions is always an easy way to eliminate options.
My own lower division classes didn't cover every single possible focus -- there wouldn't be enough time to learn foundational skills if they did! However, the foundational skills they did teach can help you identify what topics you'd enjoy. For example, my lower div courses included basic OOP, lower level / systems work, and probability and discrete math. Out of those, I knew I enjoyed the former two, and disliked the third -- since I was not a huge fan of probability and discrete math, I avoided going in a direction that was significantly more math heavy, like Machine Learning, and focused more on systems and databases in my upper division courses. I did take classes that I ended up disliking, but those experiences were still valuable since it exposed me to a wider variety of topics, and helped me hone my focus.
Other more structured ways to get some exposure to a variety of different focuses includes joining clubs and pursuing research opportunities, if those are available to you. There may be a variety of different clubs that focus on mobile development, robotics, graphics, etc that will allow you to gain some practice experience in these different directions. If your school offers them, research opportunities are a great way to expose yourself to more theoretical learnings in the different sub-fields. If your school doesn't offer them but you still want to expose yourself to academia, you could look up academic papers that are renowned in their specific sub-fields.
Talk to your professors and professionals in industry for some exposure in what they do.
Join extracurriculars that expose you to practical experiences.
Look into research opportunities or read academic papers for theoretical background and understanding.
My own lower division classes didn't cover every single possible focus -- there wouldn't be enough time to learn foundational skills if they did! However, the foundational skills they did teach can help you identify what topics you'd enjoy. For example, my lower div courses included basic OOP, lower level / systems work, and probability and discrete math. Out of those, I knew I enjoyed the former two, and disliked the third -- since I was not a huge fan of probability and discrete math, I avoided going in a direction that was significantly more math heavy, like Machine Learning, and focused more on systems and databases in my upper division courses. I did take classes that I ended up disliking, but those experiences were still valuable since it exposed me to a wider variety of topics, and helped me hone my focus.
Other more structured ways to get some exposure to a variety of different focuses includes joining clubs and pursuing research opportunities, if those are available to you. There may be a variety of different clubs that focus on mobile development, robotics, graphics, etc that will allow you to gain some practice experience in these different directions. If your school offers them, research opportunities are a great way to expose yourself to more theoretical learnings in the different sub-fields. If your school doesn't offer them but you still want to expose yourself to academia, you could look up academic papers that are renowned in their specific sub-fields.
Jasmine recommends the following next steps:
Updated
Darin’s Answer
Hello Ayden, you are absolutely correct there is a lot of different directions of computer science. It all comes down to what do you want to do. Do you want to program? Learn a specific computer language? Work with security? Do you have a certain career field you want to pursue? Myself I'm studying computer programming. I chose computer programming because it could be fundamental to the career path I want to try pursuing where I currently work
Updated
Cameron’s Answer
In college, we also had different "tracks" within Computer Science to choose from. While I am not sure what is offered at your university, ours were focuses such as Software Engineering (the most universal one), Machine Intelligence, Security, Systems, etc. All were dependent on a strong programming background, which should be the expectation for all Computer Science degrees.
If you are more interested in the data side of things, see if your university offers a Data Science degree or focus within CS.
Regardless, I had chosen to do Software Engineering, as it covered enough to be proficient in a Software Development position. If you have passions in any other area of focus, nothing would be stopping you from taking one or two classes in it or experimenting with it with your own time. Employers will look at your degree and test your technical skills in an interview. There are very few scenarios where your specific track would actually matter. It is more to just keep you on a successful path.
If you are more interested in the data side of things, see if your university offers a Data Science degree or focus within CS.
Regardless, I had chosen to do Software Engineering, as it covered enough to be proficient in a Software Development position. If you have passions in any other area of focus, nothing would be stopping you from taking one or two classes in it or experimenting with it with your own time. Employers will look at your degree and test your technical skills in an interview. There are very few scenarios where your specific track would actually matter. It is more to just keep you on a successful path.
Updated
Jeanine’s Answer
Hi Ayden!
Many college programs provide students with introductory classes in several areas. It's great to take any of the classes that look interesting to you so you can learn more about them. You will find that you like some more than others! Some colleges require you to choose a specialization, and others do not. As you learn more about the different areas, you'll see which ones appeal to you more, and you'll hear more from the more advanced students in your program about what employers are looking for. What you decide to specialize in can be a combination of what appeals to you and what you're thinking about for a job.
One more note... having a specialization may not be necessary for getting a computer science job! There are lots of computer science jobs that don't require one. I've had opportunities to learn a new specialization on the job because it was needed for that specific position. Employers love computer scientists who can learn new skills!
Many college programs provide students with introductory classes in several areas. It's great to take any of the classes that look interesting to you so you can learn more about them. You will find that you like some more than others! Some colleges require you to choose a specialization, and others do not. As you learn more about the different areas, you'll see which ones appeal to you more, and you'll hear more from the more advanced students in your program about what employers are looking for. What you decide to specialize in can be a combination of what appeals to you and what you're thinking about for a job.
One more note... having a specialization may not be necessary for getting a computer science job! There are lots of computer science jobs that don't require one. I've had opportunities to learn a new specialization on the job because it was needed for that specific position. Employers love computer scientists who can learn new skills!