# secant tangent cosine sine

Trig chart

9

Legend of Korra engineering appreciation post

Hey there! I'm going to be a senior in high school next month, and I'm incredibly interested in pursuing a career in game design. The thing is, while I've been playing around with programming in my down time, my high school doesn't offer any actual computer classes, and I'm worried a lack of preparation might really screw me over when I go to college. Is there any way a student not given opportunities in advanced math and computer classes can study a field like computer science? Thank you!

If your primary focus is on programming, you want to become a good programmer first and become a good game programmer second. I didn’t actually formally learn any computer science until I reached the university level either. I started with the introduction to computer science classes, and worked my way up from there. If you’re going to a university, I wouldn’t worry about not learning it in high school. Just make sure that you have a solid math foundation and understand the concept of proof by induction, and pay attention in your theory and lower division classes once you get to college. School is a place to learn, whether at elementary or university level. Be a good student, go to office hours and talk to the professors and TAs to explain what you don’t understand.

That said, if you are planning on studying computer science for game programming specifically, here’s the list of topics I’ve found to be particularly useful. This is by no means comprehensive, but I have found myself thinking “I’m so glad I learned this in school” more than once about each of these.

• Algorithms, Big O Notation, and how to calculate your program’s run time
• Data structures and how to store data. Many times, the solution lies in finding the right structure to solve the problem.
• Object-oriented principles at work. Object-oriented programming has four fundamental principles - inheritance, encapsulation, dynamic dispatch, and polymorphism. I’ve found myself referring to all four of them quite often.

• Proof by induction, and just what this means.
• A rock-solid understanding of trigonometry. How the angle, sine, cosine, tangent, cotangent, secant, and cosecant relate to each other.
• Matrix math, specifically multiplication and inversion.
• Vector math. Normalization, addition, and subtraction, especially in 3 dimensions
• More advanced vector math. How vectors are used to represent planes, and the concepts of the dot and cross product.

It’s ok if you don’t jump into the super advanced subjects right away. Work on building a solid foundation and understanding of these concepts - the more advanced subjects are built on them, and a shaky foundation will lead to confusion when things get advanced.

So proud of my old high school! (x)