Hi, so I'm going to begin my university in a month (Bachelor of Information Technology). I hope to major in software development. There are no compulsory maths courses in this major, but it's recommended. So in the first semester, I've taken Discrete Maths for Computer Science (as an elective).
Some other courses I've enrolled in for the first year:
- Introduction to Interactive Media
- Introduction to computer science
- An extra programming course (in addition to compulsory ones)
I'm interested in motion graphics, web design and development, human computer interaction, computational neuroscience and AI as well.
But to cut straight to the point, what are some courses I should take that will complement my Software Development major and help me get the most out of college education? I also want to keep my options open as a possible career in multimedia or Artificial intelligence.
Hoping to get some valuable tips from the developer community xoxo
Latest comments (18)
An odd recommendation but it's high demand..but defintely any security/systems related course, if your university offers one. It's something that kind of falls by the wayside for software devs/computer science majors, but it's really a great topic to get into!
Some other areas of recommendation are
-Software Testing (Quality Assurance)
-Introduction to Networks
Best of luck of your journey!
Strong maths foundation will be helpful even if you never use it directly. It will sort of prime your brain to be better with abstract reasoning and internalizing non-intuitive concepts.
In addition to discrete, I would strongly suggest taking linear algebra and statistics/probability. Anything relating to ML, big data, computer graphics, etc. will be much easier to grasp.
Also, some basic (project) management and communication courses can be really helpful.
I did the same bachelors and these subjects were the very first ones I did. Deakin?
Definitely do discrete maths and take up as many programming classes as you can. The more exposure, the better!
If you have any interest in game programming, take a look at basic Physics, Linear Algebra, and Vector Calculus. Linear is also interesting for crypto, as it provides an understanding of how some operations (such as hashing) are one-way only.
gamedev.net/articles/programming/m...
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:
I have a few mechanical engineering courses. My absolute favourite is "Introduction to space flight", a colorful mix of orbital mechanics, thermodynamic and rocket building.
Accounting + anything non-technical, particularly in the writing/communications arena.
Speaking from personal experience, a course in deductive logic (Philosophy) is a worthwhile elective...perhaps even a GREAT elective, IMHO. :)
If your university offers any courses on music technology I hope you’ll consider taking one! Making music with software is fun and I learned more about human-computer interaction from that course than any other. I’d also recommend computer ethics and at least one elective each of history, political science, and philosophy if you have room in your schedule. Even if you don’t find those subjects interesting on their own the course work will be great for working on writing, communication, and critical thinking outside of technical domains.
One of my favorite courses I took before I dropped out was a speech and debate course. I learned how to structure an argument and whatnot, but I also learned how effective being funny was when you are trying to connect with people. That and knowing how to explain myself are two major skills that I credit with passing interviews and being able to communicate well at work.
On the technical side, Algorithms and Data Structures was my favorite. I learned the the 5 or so DSs that they taught and the algos that accompanied, but more importantly I learned how to break down pseudocode which I was then able to use to learn more as needed from Wikipedia.