Hi, first let me start by saying I am a beginner programmer(turned on by how everything works logically, which is challenging to my tiny brain) and I have yet to take any programming classes in higher education. I will start Java Programming 1 ( a prerequisite for c++ ) next semester. My only problem with computer science as my major are the required math courses.
I was never good at math, I began math my 2nd year in college @ BASIC algebra level. I have finally reached trigonometry (algebra 2 trig) which I will be taking this coming semester. If I continue on this path, it will take me 5 semesters to finish the required math courses before I can transfer to a university. (I will have finished my CS courses a semester prior)
My question is... how much math is involved in this major? I don't have anything against it, but I feel like with all the requirements I may be working against the current here. Math is definitely not a good subject for me but I am passionate about games and know what I want to do with my life.
Any comments you have are welcome, I'm just a bit nervous about the next few years.
I remember using Unity3D and needed a functions to return a 3D vector representing a specified direction around a given axis (the collision normal on any underlaying plane). Needed trigonometry and geometry for that. Math is indeed useful for programming, exspecially for game developement. I have not really programmed long enough to know its application in other forms of programming.
A typical Computer Science major will cover College Algebra, Pre Calculus, Trigonometry, some Applied statistics and probability, Calculus I, II, and potentially III, discrete mathematics, and usually 2 physics classes. Many of your programming assignments will consist of useless programs that rely heavily on math... a result of professors that have no clue what being a programmer is about (varies depending on university). Such programs are not at all typical for programmers. Note however that Computer Science degrees prepare you for the research field, not necessarily to be a programmer. While you surely will be equipped to do so, you may find a CIS/Software Engineering degree more suited to your needs.
Such a degree will typically only contain discrete math, statistics, and an applied calculus course with the majority of your course being programming related. CIS is not at all math intensive and if you just love programming and have no plan on pursuing a Computer Scientist role, then CIS is for you.
I typically break programming into 3 categories:
1. Business Applications - The vast majority of programmers fall into this category and minimal math skills (college algebra) are needed unless you are working on some financials application. Typically however you are provided the formula by the business requesting the change.
2. Simulation/Game Programming - Depending on your role, you will need trig, geometry, calculus, etc... can be very math intensive.
3. Sciences/Research/etc... - Depends on the project, but typically math intensive.
And yet I love math. Beacause I sure know that math gives a solution to every programming problem. Math is not just formulas and stuff. Math has many fields and sections. Discrete math is the root of programming. So dont hate math, accept it, and you will have no problems. You might feel at times that you did not sign up to solve things like 3D vector calculations, but math is only a tool, so dont push it a way simply because you feel repulsed by it. It is all in your mind. "Love math. Math is your friend. When you go to bed, give math a goodnight kiss!"(I took this from a New Grounds flash movie, with "pain" instead of "math". I have to put the link here. :)