I mostly get art-related questions, but someone shot this to me, so I figured I’d make the post public:
Hello!! I don’t know if you remember me but I was the person that was really interested in a computer science internship at DWA. I’m interested in applying next summer and I was wondering if you could give me some extra advice! Thanks so much!
This is my personal advice on doing CS in the entertainment industry and not endorsed by any company I’ve ever worked for. I’ve tailored it a bit more towards my experience at DW since that’s what the person asked (but it’s been over two years since I worked there and things might have changed). The question was pretty general, so I took the approach of “What Comp Sci knowledge and skills should I cultivate to work in animation?”
When it comes to a CS internship, it’s less about having a large CS knowledge base (like algorithms, automata, language, etc) but about being flexible. There’s a LOT that school doesn’t teach you. I’m going to go pretty specific with terminology here, so if there’s anything you don’t understand, just shoot me another e-mail and/or do a Google search.
For graphics (the CS sub-field most tied to games and animation), there are a couple different areas you might work in: like the renderer, or shader writing, or motion capture, or rigging, etc. Each specialty favors a specific area of study. For example: discreet math and linear algebra for rendering geometry (and rigging and lighting), algorithms for faster rendering and processing times, and design patterns for tools architecture. Database might be useful at a game studio especially one with an online bent, but it’s not super relevant at DW which is more focused on “output a pretty image as fast as possible”. It’s highly unlikely you will be asked to write an OS, write or go low-level into something like Assembly or C.
You will find out what your department is when you arrive and then will be expected to research the specifics during your job. Because you don’t know which specific department you might end up in, you should have a good understanding of what kind of theory goes into each aspect of the pipeline (ie - how lights use a physically-based model with Fresnel to mimic reality, that UVs are unwrapped textures converting 3D to 2D space, that quaternions are used to manage camera and character animations). Similarly, a strong basis of Object-Oriented Programming and Design Patterns will let you construct good classes and software no matter what language you are asked to use.
So yeah, bone up on your broad knowledge and your research skills! Google is a CS major’s best friend and all.
Also importantly, you need to be a bit of a people person. Enough to understand what people want. CS majors in entertainment are writing software for other people to use. You have to go beyond asking “hey, what do you want it to do?” to the emotional heart of the matter - then you have to make a software solution for it! For example, an artist has some process they do a lot but have to go to a menu bar to access, so they ask for a button on the GUI to make their workflow faster. But let’s say you know they use keyboard commands a lot - then it might be worthwhile to ask if the client would prefer a hotkey. Because while the artist says they want a button, but they actually want a faster workflow. Having experience designing software for someone else’s use (not just an assignment like “write a renderer”) is a precious experience. Especially at DW when the artists are king.
Generally, again, all industry is pretty cavalier compared to school: it’s more about results than process. So having a solid theory base, a willingness to look up new info, and motivation to go beyond are the biggest, most important, skills you can have!