DEV Community

Discussion on: What are some courses I should absolutely take in University as a Software Developer major?

Collapse
 
tobias_salzmann profile image
Tobias Salzmann

During my Comp Sci education, I enrolled in mostly theoretical courses (Lots of maths, automata theory, algorithms). Content wise, there is little overlap between those and my current work as a consultant, but I definitely benefit from the reasoning skills I developed over the years of proving things formally. More importantly, they serve me better than the few courses related to Software development I took.

Generally, prefer courses that build up your skills and abilities over courses that increase your knowledge, especially if that knowledge is specific to some technology.
Even more important, learn what you find enjoyable, because that's going to stick anyway.

Some specific things I recommend to pick up:

  • Statistics/ Probability theory: A good Intuition of probability will help you a lot with predicting problems with software, debugging and general practical problem solving. Also, if you want to go into AI, that's going to be very useful.
  • Functional Programming: A lot of what makes up great code has roots in pure functional programming. It is not super easy to pick up. If you can find a course with a good teacher, that'll help a lot.
  • Distributed Systems: Servers, Microservices, Actors, Coroutines, are all part of distributed systems. Understanding how to manage the complexity that naturally arises when systems interact with each other is a core skill to develop.