Post
by fr0stbyte124 » Wed Jan 23, 2013 11:12 pm
IT skills land you a job. Most HR departments don't distinguish between software development and information technology, so the stats get kind of skewed, but everybody wants a guy with IT skills. Even if you want to do software development, you will look better if you have IT experience as well. Most universities don't specialize in IT, so it is something you need to learn on your own and that mostly comes down to making projects for yourself, or taking classes at a technical school if you are looking for something in particular. Coding, incidentally, is never taught at the university level beyond maybe an intro class, nor is skill in it necessary to graduate. Odd, but that's how they all are. Practical knowledge is not a priority.
As for math, if you are not comfortable with algebra, you will not be happy doing anything with programming. What I had mentioned above, though, is linear algebra. That is a special branch of mathematics which at the practical level deals with vectors and matricies. It pops up in all the strangest places and is supremely useful. Linear algebra is a cross-discipline course and you'll be learning it pretty much regardless if you are pursuing any sort of science or engineering degree. Beyond that, the math starts getting more abstract and less useful, eventually forgoing anything even resembling what you've seen in school. In actuality, all the math you've ever done is a tiny subset of all the mathematical models there are, most of which don't have a real-life counterpart.
For instance, there is a mathematical model which has a finite number of values, and each of them are integer coordinates which lie on a specific elliptical curve equation. and this model has its own unique operators. You can add points together to produce another point on the same curve (a differnt sort of add than normal addition). You can multiply points by a number to get yet another point, but in this model, there is no divide. In fact, it is so computationally difficult to reverse a multiplication that this model is used for cryptography, and is orders of magnitude stronger than RSA encryption. That's what mathematics becomes when you start nearing the grad school level: you create new mathematical models with whatever properties you need in order to solve problems which can't be solved by conventional means. And it sucks. But that's getting off point. Any science or engineering degree with need plenty of mathematics. Mechanical engineering, physics, and electrical engineering focus strongly on calculus and differential equations, while computer science is primarily discrete mathematics (integer math), and linear algebra, though they'll make you take calculus anyway.
If you want to write video games, you'll run the gamut of disciplines, though unless you have to create brand new techniques, you can just dabble in each, in which case being comfortable with reading and working with research papers is the thing you'll need most. But that's just my experiences. My discipline is applied science, so those were the things I've found useful. Ask other programmers and they'll tell you other things. But I think most will agree that you need to be comfortable with at least basic algebra regardless of what you do.