#How did you get your job in computer graphics ?

58 messages · Page 1 of 1 (latest)

lethal wolf
#

This might be a bit broad, but I was wondering what the people here have studied and how did that lead them to work in the computer graphics industry. I'm asking because I'm a physics graduate, in the final year of a computational physics master, but I'm finally coming to terms with the fact that I don't actually want to work in physics (not that I don't like it anymore, more that I don't have the passion to do research in physics), but in computer graphics, to do things like what I see here everyday (especially ray tracing, global illumination, real-time rendering, things like that that are both pretty and challenging to create)

I'm guessing most people come from a computer science background, but I believe some come from the natural sciences too, I'm wondering about what are the possible paths from one end to the other. We have an obligatory internship next semester, and I'm starting to look into computer graphics labs (like this one https://graphics.cg.uni-saarland.de/), but I'm not really confident about my profile, since I don't have a strictly comp-sci background, only my knowledge in computational physics and some personal, not really impressive graphics-related projects on my GitHub.

I hope this isn't too off-topic, since I'm not asking advice on something specific ; if it isn't acceptable, I will take the post down. For extra info, I am in Europe, but I'm curious about any experience I can read/discuss about, really.

coral warren
#

Have you taken some CS/CE coursework

#

it will help a lot if you can do that

#

The thing for graphics is that you do need to be a pretty wicked programmer since a lot of it is performance-sensitive

#

Physics is perfect background for it (I have a physics degree too) but if you have the opportunity it would be very worthwhile to take at least a couple courses in computer hardware architecture

#

I'm not sure what kind of computational physics you do but it often is just based in like python/numpy or MATLAB which is good practice for the basic application of programming to math, but it doesn't teach you how to design big high performance codebases

#

Computer hardware coursework will get you the performance part, and a ton of personal project time will teach you how to work on big codebases

lethal wolf
# coral warren Have you taken some CS/CE coursework

No, never, I haven't had the opportunity to, that was part of what made me worried about my CV
I was thinking that maybe I should just do a computer science/computer graphics master (if I can find one) after finishing this one, but I don't really know

lethal wolf
lethal wolf
#

I have been coding in C++ for years now (starting to delve into Rust now too), and I have been doing things with OpenGL and recently Vulkan, so I know things about GPU and CPU architecture, but I don't really have a proper, academic knowledge about

#

My GitHub is https://github.com/Epsylene, if you want to take a look at it, I don't have any big project but it still is something that counts as some experience, maybe ?

coral warren
#

No I just did a CS minor along with my bachelor's

#

I wouldn't bother with rust unless you're really experienced with C++, C++ is the lingua franca of graphics

#

I'm not a graphics programmer so I can't speak to exactly what they'd want to see, but I have shown off personal projects to employers in the past, yes

#

For instance I showed off this project in the panel interview for my current job

lethal wolf
#

Oh wow, that's really nice

#

Do you think your employer would have offered you a post even if you hadn't taken a CS minor, based on what you showed them from your personal projects ?

#

I'm guessing in the absence of a proper CS background, I should just try to build up my portfolio enough to show employers what I am capable of

coral warren
#

The minor itself had nothing to do with my employment it was just what catapulted me to a very advanced level in terms of programming and computer engineering knowledge

#

In your case it's not so much about portfolio as much as just building software engineering experience

#

And CS background knowledge

#

Especially since graphics tends to use C++ a lot

#

Idk what your C++ level is but if you're going to put C++ on your resume you should be prepared to answer some pretty serious language questions in an interview

lethal wolf
# coral warren Idk what your C++ level is but if you're going to put C++ on your resume you sho...

I feel comfortable with it, enough to not be afraid of writing complex code (or think that I could learn what I lack if given the chance, at least), but not at the level of doing template metaprogramming or things like that
I'm not sure how I would fare in an interview, I think I still need training before being confident going into one, so I will be working on that
And I haven't really got the experience of writing code in large codebases, but I can't do a lot about that, apart from my own projects, so I will be working on that too

coral warren
#

How big have your own projects been

lethal wolf
#

The largest is a bit over 2k lines of code, excluding external libraries and such

coral warren
#

If you try writing some actual applications using graphics you'll quickly surpass that

#

I would say you should aim to get up to projects in the 10k range

#

You will learn a lot of software engineering stuff that you don't really see in smaller projects

#

Also template magic isn't really necessary to know but if I ask you e.g. what the inline keyword means when applied to a global variable, do you know what that means? Are you familiar with the concept of linkage?

#

Those are the sort of language-level details that someone might ask about in an interview, which are thing you likely wouldn't have seen in an academic context

#

You don't have to be a language lawyer or quote chapter and verse of the spec but industry-grade C++ knowledge is a fairly bulky set of knowledge that takes time to digest

lethal wolf
coral warren
#

Yep

#

So my advice is basically to just try building some more ambitious graphics applications

#

Forget writing engines or generic code frameworks or whatever

#

Just build exactly one specific thing

lethal wolf
#

Ok, I will think about something complex enough I can build from scratch, but the "building more ambitious graphics applications" part is what I want to do anyway, so that's good 🙂

#

Thank you for your advice, in any case

#

I will now go to sleep, since it's late here and I have classes tomorrow (that is, today xD)

#

Thank you again for the discussion, I see things a bit more clearly now

#

Good night

coral warren
#

Night

last ridge
#

I majored in CE/EE and not CS so it’s certainly not impossible to get a graphics job without a CS degree. However depending on your path you may be behind on some of the fundamentals that are taught in CS. I agree though that a portfolio will be helpful both for your own learning, and for showing potential employers that you’re capable.

coral warren
#

CE to programming is like what physics is to engineering

#

super overpowered background

#

it doesn't necessarily make you automatically good at programming/engineering but it means you have the background to understand any aspect of the practical parts

#

my "CS" minor was really primarily CE courses

#

building CPUs at the gate level and stuff

crude finch
#

In interviews it's very easy to falter on the many technical terms of GPU programming/api's/hardware

#

To not stumble on these takes lots of practice

#

And I'd imagine speaking properly is valued just as much as practical skills

lethal wolf
coral warren
#

Pretty much any since most C or C++ jobs are going to be resource-conscious applications