#what do i learn to pursue a grahics programming career(spdcifically c++ and vulkan)

245 messages · Page 1 of 1 (latest)

runic cipher
#

hi im 16 y.o and im interested in beeing a graphics programmer in the future specifically using vulkan and c++

i learned c++ from https://learncpp.com and im interested in learning algorithms and design patterns with modern c++ and anything else i might not know of, i also almost know 0 stuff about networking, i only know the difference between TCP and UDP nothing else

and im still learning vulkan from vulkan-tutorial(whilst referencing some other sources like vkguide and getintogamedev's channel for explanations), and i learned all my graphics programming knowledge from learnopengl, so my knowledge is pretty basic i assume

i would appreciate some sources(like online pdfs and web tutorials) that i would read(after finishing vulkan ofc) which will help me become a better graphics programmer

winter fractal
#

Go to university

#

If possible

#

It's much easier to study this stuff when you're being handed a curriculum and deadlines

#

Otherwise you need to motivate yourself through basically the same stuff on your own which will be years of doing exercises that seem boring compared to graphics

runic cipher
runic cipher
winter fractal
#

My recommendation is just to be patient until university, if you plan on going

#

If you don't plan on going then I suppose you could try to self-study it starting sooner

dull yacht
#

Gonna be slow to learn, but tutorials are only good as reference once the basic structure and flow of the code makes sense

#

(understanding what comes first, what comes second, what's interchangeable, etc.)

runic cipher
#

so i learn how to manage my codebase

winter fractal
#

Vulkan is a pretty poor choice for what you're trying to do tbh

#

Idk if GL is even the right level of abstraction to use

dull yacht
runic cipher
#

not only games

#

i wanna do everything doable on the gpu

winter fractal
#

GPU is not a great place to learn programming fundamentals

#

It's a specialized platform

#

And it's only useful for a small subset of problems

#

You haven't even had a basic data structures and algorithms course yet

#

That's the kind of stuff you need to be focusing on

runic cipher
marble bane
#

If you're in university, I'd recommend checking to see if your university has a graphics-related course. While I am pretty largely self-taught for my graphics background, it was nice being able to say "hey, I've also got formal training for graphics" right out of school

runic cipher
#

but are such courses cheap?

#

im in egypt if that matters

marble bane
#

By school, do you mean university?

runic cipher
#

no

#

first year highschool

marble bane
#

Ahh, that makes a bit of a difference in advice then

#

GPUGems is a good source to read through

runic cipher
#

oh didnt hear of it

marble bane
#

GTC, GDC, and SIGGRAPH have good papers and presentations as well

runic cipher
#

oh i'll definitely search for them

#

thanks

#

what does gpugems teach tho nvm i found it

winter fractal
#

I would look for a basic MIT OCW data structures and algorithms course

#

This is a slightly risky process imo because if you spend too much time pre-studying advanced stuff before you see it in school, you might be bored when you have to spend 4 straight years studying what seems like very basic stuff

#

And might have trouble staying engaged in your studies

#

I would shoot for breadth at this point, high school is a perfect time to try new things like go out for a sport you've never played before or take a theater class or anything else outside of your usual habits

#

You can still play around with coding but don't waste the last of your childhood on something that you could learn in half the time once you're an adult

runic cipher
winter fractal
#

No

#

And it becomes harder to break your habits as you get older

#

That's why 99% of the time if someone plays an instrument it's because they learned it as a kid

#

Your brain is more pliable as a kid

runic cipher
#

oh i didn't know that

molten glacier
#

GPU Gems is pretty advanced, though… I’m not sure a beginner would learn anything from it. Many of stuff there is too specialized and aimed at pros.
Real-time Rendering is a lot more approachable and gives high level overview of many topics

marble bane
runic cipher
#

not much from advanced lighting tho

runic cipher
glad wren
#

i think demongod's stance here is kind of silly

being interested in technology as a kid is only going to help you later on, you can get a headstart

so what if uni is easy later, just use the extra time to do more cool projects

or better yet, do like i did and i don't even go to uni and get a job writing code straight out of highschool because of open source projects ...

winter fractal
#

If you're going to get a job straight out of school then I agree

#

But if you're going to university for something anyways you're just throwing away a huge pile of money and will likely just be bored

#

Some amount of practice ahead of time is good and will make you retain much more from university

glad wren
#

there is never a disadvantage to learning something earlier in my opinion

winter fractal
#

There is in the sense that you're siloing yourself

#

Breadth is important

#

Being a well rounded human with fitness and social skills is important

glad wren
#

is breadth important though? all of the people i like interacting with are intensely interested in/passionate about a narrow slice of things

#

they're also happier and healthier than "well rounded, social" people i know who are dispassionate about everything

#

i do not think that is an inferior way to live your life, just different

#

relentlessly pursuing things they're passionate about seems to be the main way people end up loving their jobs

winter fractal
#

You're making a false dichotomy, I'm not saying to go be a bar-hopping frat kid or something but that having breadth in the people you interact with and the skills you gain makes you more capable even for the narrow job you are most passionate about

glad wren
#

i just think it's wrong to try to shut down a kid from being interested in graphics programming too early (and not likely to work, either lol)

winter fractal
#

Also if you ever burn out or need a career change, having been overly specific in your interests is risky

glad wren
#

or you just end up intensely interested in something else as an escape from the burn out? chill bro

winter fractal
#

Maybe, maybe not

#

For some people what you're describing works fine

#

But I couldn't recommend it in general as a good way for most people to go about their life

glad wren
winter fractal
#

Young people are kinda fucked up right now from this exact issue, go work in a high achieving high school and see for yourself

glad wren
#

from being in "high achieving school" spaces, what I saw as the "fucked up" bit was that kids were being forced to write code by overbearing parents instead of doing it for fun like I was. they hated it and I loved it

winter fractal
#

I'm not saying amar shouldn't keep tinkering with code and enjoying it at all, you may have misread if that's what you came away with

#

I'm just saying he shouldn't displace other things just to try pursuing a career in it immediately especially if he has many years of education left that will teach that exact thing

glad wren
#

i find socialization and fitness much more enjoyable as an adult with a paycheck and a car than as a broke kid with no transportation, but hey that was just me

(and the transportation bit could be argued to be pretty US-centric)

#

i respect your point of view though demongod and see where you're coming from

winter fractal
#

Ok I am the opposite lol once entering the grind I don't work out nor socialize nearly as much anymore

#

Both are fine

#

The risk is doing neither

glad wren
winter fractal
#

That sounds fine

#

Not saying that can't happen

#

I'll bet you biked and hiked with your family as a kid though

#

I know a lot of people who are frozen in their habits from high school age and don't know how to enjoy life outside of either chasing a paycheck to live some ephemeral lifestyle or superficial social activities and don't know how to just be happy with themselves

#

People who are into GP are at pretty low risk of that

#

I'm just saying to be cautious

glad wren
#

no my family is comprised of big fat americans who hate going outside 😔

winter fractal
#

Ok interesting lol you're an exception then

#

Which is part of my point, people tend to have bad habits and cling to them, and high school age is the perfect time to mix them up

glad wren
glad wren
winter fractal
#

GP is like the physics of computer programming, it is way harder and pays less than most other programming disciplines and thus only a moron who really loves it would pursue it

#

It's pretty low on the list of "chasing the path" that people who are dispassionate get locked into

#

When I studied physics in university I had the weirdest and most interesting classmates, much more interesting than most of the people in the CS electives I took

glad wren
#

where were you in the world?

winter fractal
#

UC Davis

glad wren
#

the one in the headlines for the stabbing deaths? 😬

winter fractal
#

Lol yeah that was just recent though I graduated a while ago

glad wren
winter fractal
#

Indeed

glad wren
#

both types exist in the industry depending on the company culture

winter fractal
#

The tech bro is just sort of the way they are though, I am more worried about the narrow student who is letting their focus detract from their overall capability and/or life enjoyment

#

Tech bros are a different sort of lacking in fulfillment

glad wren
#

there are times when i would've identified more strongly with the "focus detracts from overall capability and/or life enjoyment" but after being less focused for a while and spending my evenings hanging out with friends ... nah.

my people are the tinkerers and I can relate and enjoy interacting with them in ways I cannot with anyone else

winter fractal
#

Like being both a programming giganerd that works on OSS while also being reasonably socially capable and physically fit is possible and a much better place to be than being just one of those things, you don't have to sacrifice much of your focus to gain a lot of breadth

#

Programming is by far my greatest strength but I didn't even focus on it in school because I wanted breadth

#

You can achieve at least mediocrity in a lot of things without much time investment

#

And being e.g. the mechanical engineer who is at least a mediocre machinist puts you far ahead of people who do everything in CAD and have never seen how those parts are made

dull yacht
#

^ this is very true

#

A little study here and there in physics and math can build your background greatly so your more than just a programmer typing in magic notation todo mathematical stuff

#

A little gym here and there can make the difference of feeling weak to feeling strong

#

A little dabbling in gpio nonsense with a pi can make a person from unknowing about hardware interacting with the world around, to reasonably knowing

winter fractal
#

For people that aren't hard into software or are but have other interests but are just doing CS because it's the default and easy route to a high salary (less and less true now...), I always recommend people major in something else and just minor in enough CS/CE to be a powerhouse programmer

#

All those non-existant entry level python programming jobs that job hustle influencers on youtube say people can get with their 10 week python bootcamp do actually exist, but they're jobs for people with a Bachelor's degree in e.g. biology who also happen to be a moderately skilled programmer

#

Like in my job, my job description doesn't mention coding at all beyond the tinkering with matlab/python that most engineers have to do these days

#

But because I actually have an extensive software engineering I can rapidly churn out tooling for myself that makes me way more productive than I otherwise would be

#

And I can interface directly with the software team on embedded stuff to help them transition my algorithms over to their final software implementation

#

Kind of like graphics, there are countless jobs out there for other disciplines that would benefit from having some programming skill on top of your primary discipline

lavish nova
#

Only tangentially related to the conversation, but I def feel what Demongod is saying about the people in CS programs being boring cause almost no one is doing it cause they actually are interested in the topic.

#

I'll admit that that can make the experience of university pretty depressing if you are one of the weirdos like me who actually does have an interest in the topic itself. It can be a weirdly alienating thing to be in your field of interest and not be able to even talk about it to your peers. Like if I went to study music or physics or something I'd have peers that would wanna talk about and do things with it after class, and probably also have some cool interests outside of it too. My experience is that CS programs are often filled with a lot of boring people with no hobbies that are either doing it cause they have no idea what else to do with themselves and are just chasing a paycheck, or who were pushed into it by friends and family.

#

You could jam it out with your peers from music class after school, but getting a bunch of CS students to ever write code in their free time is like trying to boil the ocean. 3/4ths or more of the people in any classroom never wanna do any of the shit they learned in class again.

winter fractal
#

Yep exactly

#

Physics study groups instantly devolved into 6 hours of philosophizing and talking about math and more physics

#

It was like a meme amongst my CS friend group that the moment one of my physics friends came over or came to a party, we would instantly start talking about physics and not stop until they left

lavish nova
#

Honestly I say so long as your bills get paid and your doing something you don't hate anything is good. Don't do things just for money, at least once you do have your basic needs squared away.

#

I've also not many people who aren't excited about their work, that are also good at their work. Most of the time I see people throw themselves at things they don't even enjoy (including myself at one point), tend to just burn out and give up/switch to something they actually like.

#

And I think being well rounded still matters even for something your passionate about. For example if your are interested in real time rendering stuff for games or something, understanding what artists want helps a lot. Doing art yourself and learning what the workflow is like helps with that. Being able to talk to people also helps.

marble bane
lavish nova
#

Yeah, I think especially for CG related stuff, having a good background in the visual arts and humanities is just a good thing to have.

#

Or in some other engineering field

#

Because your often making things that are going to be used by people in other fields. CAD software might be used by some engineers, a renderer for a game engine will be taking in models and stuff made by artists.

#

I clarify I am still in school and studying so I'm not speaking as an expert here, but I do have friends who are working professionally now. The ones that succeed more often than not are the ones that really like what they are doing, and also are interested and well rounded in more than one thing. They may have a cluster of things they specialize in, but it's important to note it's a cluster and not just one thing.

#

The friend I know that does work in game development for example, has made his own game engines before. He can do 2d sprite art, he knows Unity gameplay programming related stuff pretty well too, and is also a pretty sociable guy. He might be doing mostly game dev stuff, but he can wear a lot of hats in game dev, and can integrate well into and work with other people as a team.

runic cipher
winter fractal
#

Depends where you are and what position you're applying for

runic cipher
#

oh

#

what if im a 18yo programmer with a good c++, vulkan and graphics programming knowledge

#

can i get a job?

winter fractal
#

Probably not

marble bane
#

It's definitely hard to find jobs right now, especially in the US job market. If you're applying for graphics-related roles, it's also pretty hard to do without a degree

winter fractal
#

But it's not impossible

#

Yeah graphics jobs are much more likely to require a degree

runic cipher
#

alr

winter fractal
#

The more technical something is the more the degree is required

marble bane
#

least likely to need a degree would be web dev related

runic cipher
#

@winter fractal is it fine if im coding as a side-hobby and make some projects that i can fill my cv with in the future?

winter fractal
#

Sure

runic cipher
#

will that help me get accepted in jobs in the future if the person who reads my cv finds out im coding since im young?

#

or it doesnt matter?

marble bane
#

It helps some, but it really depends on the field and the employer

runic cipher
#

oh alr

marble bane
#

Having some experience doing graphics programming (like in a rendering engine), shaders, and asset creation would be really useful to see from someone without a degree trying to go into a Technical Artist or Graphics Programmer role

runic cipher
#

oh okay

marble bane
#

if you're trying to go the route of self teaching with no degree at all, you'll definitely need some kind of portfolio

marble bane
#

A CV is used as like a summary of qualifications and experience, but a portfolio is a place to actually provide evidence for those qualifications

runic cipher
#

oh

marble bane
#

So on a CV, I'd expect you to say "I can build a ray tracer", but in a portfolio, I'd expect to see screenshots and videos of it

runic cipher
#

its for projects and stuff like that?

marble bane
#

yeah, meant to showcase projects

runic cipher
#

alright

#

thanks for the info

marble bane
#

no problem

winter fractal
#

To get to that point takes years

#

It's good to have some exposure to things but you're not going to self-teach to the point of being a competent C++ software engineer by age 18 unless you study it full time

#

Which is not a good idea imo

#

Hence my points above

#

Don't jump the gun

#

Now is the time to be a high schooler and sort yourself out, you can dive headfirst into your career when you're an adult and will make progress much faster

dull yacht
marble bane
#

Good to know. That does make sense why they would want it. Thinking on the US work visa process (from the perspective of a US company hiring a foreign national), that definitely makes sense

dull yacht
#

(but still overlooked...)

marble bane
#

*A degree from a accredited institution

#

I don't think it'll help you too much if the degree isn't worth the paper it's written on

winter fractal
#

For most stem majors the degree is essential and definitely worth it, programming is an outlier

dull yacht
#

Visa laws have seperate sections for accredited degree holders

#

Almost always

marble bane
#

There's FE/EIT exams for almost all the other disciplines. Computer Engineering is the closest we get

dull yacht
#

Depending on the country

#

Specifically for countries where engineer is a protected term

marble bane
#

Yeah, US it's not a protected term. I always forget some countries it is

dull yacht
#

I would do eng if I wanted to be an eng if that was the case

marble bane
#

So let me back out of saying SWE and say SW Developer

dull yacht
#

Even then, the pe test makes 0 difference

There are many poorly qualified people who passed the test

marble bane
#

It would be useful to have some kind of cert for those without accredited CS/SWE degrees to take

dull yacht
#

It may filter a small amount, but it's like any other test

#

You can cram, get a minimum grade

Pass

marble bane
#

Yeah, it's definitely a hard problem to solve

dull yacht
#

Do it more than once until you pass as well

#

A good parallel is driving a car

winter fractal
#

The difference is that when you put your PE seal of approval on something you put your reputation on the line

runic cipher
#

i code c++ since i was 14yo tho

winter fractal
runic cipher
#

why

winter fractal
#

Not for jobs anyways

#

And even then the progress is just so slow at that age

runic cipher
#

oh yes

winter fractal
#

You change as a person a lot at that age which is why it's better to spend time exploring rather than specializing

#

There are only 4 years between age 14 and 18

#

When you're an adult 4 years passed in the blink of an eye

#

So something like learning C++ happens much more quickly at that age

runic cipher
#

oh

winter fractal
#

Everyone wants to reach for the coolest project they can muster but there's really something to be said for just picking something enjoyable at your current level

#

Challenging yourself is good but challenging yourself to complete a 4000 hour graphics programming project as a 16 year old is just not a good use of time

#

Because you don't have even half that amount of free time left before you graduate high school and so you'd be filling 100% of your time just to end up not getting very far

#

Whereas as an adult who is coasting through the rest of their life can easily sink twice that much time into a personal project over the years

#

Or from just a couple years of work if you do it professionally

#

That's why I'm saying that rushing ahead isn't necessarily a good idea

#

From what I remember it seems like you haven't built much at scale with C++ yet which is why I'm cautioning you, there's a reason why GP is such a meme

#

Jumping into a Vulkan project as a C++ beginner is taking the first steps of a huge amount of work that's just incompatible with the amount of time and background available to you as a high schooler

#

And I get the sense you might not understand just how much time would be involved in building anything significant

dull yacht
#

@runic cipher development is a fickle thing

You may stop coding for 1yr and come back smarter and better at something just because you were thinking actively about it

#

So 4yrs means very little

It's how you absorbed information

winter fractal
#

The learning process is super nonlinear

#

Spending 1 year on something a little easier and then 1 year on something a little harder will get you further than just jumping straight to the harder thing and spending 2 years

#

You need to find something in your zone of proximal development

#

Progress is way more rapid that way

runic cipher
#

ohh

#

when i first looked into vulkan it seemed so hard and i couldnt get past the physical device stage, 1 year later i now managed to rener a triangle

winter fractal
#

Yeah that's exactly what I'm talking about

#

1 year to render a triangle lol really, I hope you were working on other projects in the meantime

#

As a college student you can get to that point in 1 week

#

I tried learning Vulkan 4 times, the first 3 times I got to the point of rendering a triangle but couldn't build anything complex out of it because I didn't understand it deeply enough

#

so instead I spent my time building projects with GL, and after I had enough GL experience I went back and learned the Vulkan basics in like 1 week and then ported a big existing project of mine to Vulkan in like 4 days

#

If progress is that slow it should be a sign that you're trying to skip over too much background knowledge

runic cipher
#

i rendered the triangle in like 2 months