New and innovative technology is popping-up around us all the time and, with so many companies wanting to jump on-board to using the latest and greatest, an important skill for a software engineer is the ability to learn new things as well as a desire to continuously learn.
This term, I could have showcased my ability to create an app or to work with a database, both which I feel very comfortable with, but instead I decided that I wanted to showcase my ability to tackle and learn new technology. So I chose the difficult path and for my capstone project, I decided to work on a team to create a 3D escape room using Unreal Engine 5 (UE5). This is very out of left-field for me since I have no experience in game design but I have a great willingness to learn.
In this post I am going to outline some techniques I am using to learn something new that I feel can be used when learning any new technology.
Use the community you have
If you know somebody that already knows what you are learning, reach out to them and ask them for resources that helped them. This will help you get a jump start on learning and will save you hours in trying to find good quality resources.
In our project team, one of our team members has experience with Unreal Engine so the first thing I did was ask him for resources he found helpful when learning. He not only gave me some great resources to start with, he helped me understand which tutorials would be of higher quality than others. For instance, tutorials for Unreal Engine that included using C++ tended to be from people who better understood the engine and knew when to use C++ over blueprints rather than trying to do everything in blueprint which many tutorials do.
Expand your community
Find developer communities that revolve around the topic you are interested in. These communities come in so many different forms from forums to focused learning sites and social media so it is easy to find one to fit your style.
Some examples include: FreeCodeCamp, Twitter, Reddit, StackOverflow, and Women Who Code
Becoming a part of these communities can not only benefit you for your current goal but from a long term career perspective. I am personally a part of Women Who Code and although they have not been a resource for my current project, they have been a resource for a great deal of other things for me, from coding to managing teams to tackling imposter syndrome. It has been inspiring for me to hear from women in the industry and I have not only used their advice to learn new things but it recently helped me suppress my imposter syndrome and and make a move to further my career!
Don’t just watch/read, follow along.
Maybe this is just my learning style but I learn best by doing. I find that I can solidify concepts better when I open my editor and code along and although this takes longer than just watching the video or reading an article, it helps me know that I can execute the concepts.
I am currently going through a Udemy course for learning Unreal Engine and following along in UE instead of just watching has already given me the confidence to understand how to execute certain tasks and since I followed along, I can go back and reference the code I created instead of trying to find a certain section of a certain video to find what I want.
Block out time for learning
I think this speaks for itself but blocking out time for learning can be an important tactic to succeed in learning something new. When self-learning, it is easy to put things off and conversely it can also be easy to lose work-life balance.
So find a scheduling app (I prefer my outlook calendar) and schedule the time you need to set aside for learning and also set aside time for activities to maintain your mental health, this can be especially important if working full-time so you don’t fall into a cycle of work-learning-sleep repeat.
So far I have come to find that UE5 is a complex game development engine so not everything has “clicked” yet, and it all may not before the end of the term, but things are starting to fall into place in my brain and I believe my team and I will be able to learn what we need to create a project we will be proud of. Learning these new concepts for my capstone project may be a risk, and definitely more time consuming than tackling something I already know, but I am happy I chose this path. It would be a lot easier if I always just banked on what I already knew and went on my way but then I would not be good software engineer.