10 Challenges Gamedev/VFX Artists and Programmers Face when Learning New Skills
What do people find most challenging when learning 'hard things'?
Learning is hard. I asked recently on Twitter what it was that most people found challenging when learning, especially when it comes to Games/VFX Software and Programming. Here are a few of the things that were most common with a few of my own thoughts thrown in.
1 Knowing what information is important
It’s an amazing time to learn online. There are a lot of resources out there. Once you’ve gone through the already laborious task of choosing which course/tutorial/book you are going to go with, a common problem arises which is that many of them just throw information at you and assign the same importance to each new idea. It’s hard to know which pieces of information are important vs the rest.
When arranging content, it inevitably has to be turned into a list of ‘things’ to know. I’ll call them ‘units of information’. What would be ideal is if we could assign a weight to each ‘unit of information’ so that the reader/listener can know what they should work on remembering the most and what they can skip by because it’s something that can be looked up again later.
So going forward, I’d like to see more resources use things like sidebars, footnotes, callouts, quotes etc to put information to the side, or highlight key ideas. Many tutorials and books I’ve resonated with do that and I’m a big fan.
2 Mapping the land.
You don’t know what you don’t know. Good resources will outline what you need to know, before you’ve even started ‘ingesting’ information and outline what you will be learning in a clear structured way. Spending a bit of time up front, skimming the problem space and building a mental map of the concepts before you’ve even started will speed up your progress and ability to recall information exponentially.
One idea I like to keep in mind is that before learning a subject, there will be a ‘hierarchy of prerequisites’ that you need to understand before you’ve begun the current topic you are starting with. This also brings along the problem of knowing how far back along this hierarchy of prerequisites you go before it’s ‘enough’. There’s a danger as well that you can go off on tangents and rabbit holes on subjects that are interesting.
So I’d suggest that when you start a new learning project, to build up a pre-reading list, then map out the things you will be studying by skimming the topics and get rough idea of each concept. This will help give you an overall structure that you can follow and get a better idea of the inter-relationships between topics, rather than just linearly blasting though ideas with no idea how they are connected within the bigger picture. You will feel less lost and less likely to lose motivation because you know what’s coming ahead of time.
3 Order of Contents
This is very related to the previous point. Sometimes you have to learn a few separately related things because either they are prerequisites or you are doing a course made up of many abstract unrelated concepts.
It can be hard to know what order to learn things in. Good resources will give you a good order or explain which pieces lead onto what if there is a natural progression.
If you are pooling lots of related resources (which is recommended as a good way to learn as you then can hear it explained in different ways by different people and cross reference), then try and arrange it in some kind of order that makes sense to you. It could be by difficulty, or there might be some commonalities between topics that you can identify that might make going from one to the next easier. Or you might want to tackle which one just look like fun first!
4 Lack of Standard UI/UX
Many programs have wildly different UI standards and hotkeys across programs. This can make it confusing having to find the equivalent operations or keyboard shortcuts. Even just having a different design means that you have to stop for a microsecond for your brain to register a new way of doing something. This can all add up and cause brain slowdown.
The slowdown happens because you have to ‘context switch’. This means that when you are in one program you understand where everything is and it’s all there in your head and you can operate on autopilot. Each context switch means you have to offload that part of your memory onto disk and then in the new program you have to load the new way of doing things into your brain R.A.M before you can carry on. That might be just microseconds, but it’s enough to be an impairment.
You could spend some time building your environment to work for you. Creating custom key bindings for each program to make it easier for you to jump between programs can make that switch easier (this will come at the expense of making tutorials harder to follow).
Hopefully software designers all don’t try and reinvent the wheel with each new program they make. I’d love each bit of software to have ways to switch between standards (ie blender/maya/3dsmax/houdini) and map to each one.
5 Afraid to ask Stupid Questions
Sometimes you need to ask someone a question. I’d always encourage people to try as hard as they can on their own to figure something out. But there’s always a time where you hit a wall in your understanding. You know that if you asked someone a question, then it would be enough to get you past the one thing blocking you to get you to the next level. Then you can carry on by yourself. You end up in this cycle of “should I or shouldn’t I?” and don’t make any progress.
It’s natural to feel embarrassed to ask stupid questions because you don’t want to…
look stupid
look lazy as if you haven’t tried hard enough
ask too much otherwise people will think you can’t do anything by yourself
don’t want to derail someone else
Sometimes, it that you don’t even how to ask the right question because you don’t know the correct vocabulary or jargon. So you are afraid of not being able to articulate yourself to someone who does know the area well.
I have become comfortable asking stupid questions in the name of progress. Being paralysed on a topic and not saying anything doesn’t move it forward. So I like to ‘cast the net wide’ and ask a question on a slack/discord channel so that multiple people get visibility. People can see it in their own time and you have a higher chance of someone answering. A lot of people actually like a challenge of answering a question and won’t be bothered by it at all.
If there’s something that can only be asked by one person, and you don’t want to interrupt them, then you could still send a DM and if you just politely just say that they could get back to you in their own time then you won’t cause any issues.
6 Inability to experiment
Sometime you just want to be able to have a playground to mess with the existing system to see how changing things effect the outcome. A good example are the Houdini example files from it’s docs or the Unreal content library map.
It’s an often said piece of advice to ‘fail early and fail often’. If software can provide a playground for you to safely mess with things and see where they break, then you will quickly see how not to do things.
7 Too many things
It can feel as if there are so many things that you need to learn that it feels insurmountable and overwhelming. So you don't even bother because you don’t believe you can do it.
Emotions play a big part in your motivation so it's not just the difficulty of the content, you have an additional challenge of even believing you can do it.
I’m not imparting especially new knowledge here, but it usually comes down to breaking it up into smaller chunks and tackling each chunk one at a time. If you look at it all as one big chunk it will just be too much for your brain to handle.
There could also simply be just too many individual discrete things that you need to learn that you don’t have the time. Then it is about a priority problem and picking and choosing when you learn, and how much.
8 Knowing the correct way to do things
It’s not always easy knowing the ‘correct’ or ‘standard’ way of doing something. There might be multiple ways to do it, outdated ways, or multiple resources may have conflicting ways that can both be good and valid, but is unclear which is the ‘right’ one to go with.
In some cases, there might be a right way to do something (ie naming conventions), and in some cases there are multiple ways (eg code formatting/style in which you just use the one that the company/team says you should use). In others, there is no best way, either because everyone ‘rolls their own’ anyway, or because no-one has actually figured out the right and most efficient way. Technologies change a lot so it might not even be worth your while trying to figure out the ‘right way’ because something else might come along and change it all in a few months or the next cool software kid on the block might come along.
All I can suggest is to do your research, ask questions on twitter and maybe even try multiple ways and see which works best for you.
9 What without the Why
You may find it easy to follow a tutorial because they show you the what but it keeps coming up that people complain that they are not being taught the why. There are many resources that show you steps, but without explanation.
You can leave with a sense that you’ve understood everything, but quickly realise when you go to apply that knowledge yourself to a situation that is slightly different, that you can’t apply what you think you’ve learned. This is because you weren’t shown the why of what you were being taught. They seemed to just magically result in the finished thing.
When you are given concrete reasons for why a certain approach or technique is used and also shown in a practical real world context, then you can start to use those approaches based on your own needs and decisions when it comes to you practicing what you have learnt.
10 Outdated or Bad/Missing docs.
Last but not least is the complaint that a lot of docs are not up to scratch. It can be frustrating to open documentation and be confronted with disorganised, outdated and unclear information.
Good docs will have introductions, guides, links, clear explanations, a well organised table of contents, search and explain the purpose of what each item is and how it fits into the bigger picture.
Tribal knowledge is another frustrating reality of this world. There is nothing more infuriating than being a beginner and discovering some undocumented or tribal knowledge that is out there. When you reach out and ask a question and the response is…
“oh you just need to do the thing…..”
and that thing is only known by passing information along person to person, then the rage you can feel is real.
One solution to this is that if you do find the way to do it, you can use that as an opportunity to teach others. Make a tutorial. Publish it. Spread the word. Be the person that other people rely on to get information.
Strength in Numbers
A last point I’d like to touch on as I wrap up, is that I encourage you to find others to team up with who are learning the same thing. It’s a good feeling having a support group. You can ask each other questions, explain things to each other in different ways, and keep each other accountable, motivated and engaged.
Thanks for reading. If you find other points that you find challenging, then feel free to comment or reach out to me on twitter (@danielelliott3d).