Insights EDU

The Must Learn Programming Skills for XR

Alternative Text

James Spavold | CTO & Programmer | Petricore

28 Oct 2022 | 4 min read

Hi there! If you are reading this most likely you are a developer interested in learning more about XR. I’m going to lay out the skills that we look for when evaluating developers that Petricore is interested in.

Hard Skills

Programming

Like most disciplines in software, a general understanding and baseline skill in programming is essential for most XR development. Common coding practices help with getting any project off the ground and keeping it stable. Proficiency in any programming language, be it C#, Javascript, Python, etc. will increase the speed at which things can be developed. Experience using and writing shaders will help make it neat and pretty. Familiarity with engines like Unity (or Unreal) gives a base set of tools to work with, and with platforms having SDKs that work well with those engines, allowing for quicker easier development and porting.

Software Development

The process of concepting, prototyping, developing, and releasing a project is only learned by doing. Continually building games, applications, or anything in between, no matter how small or large, is the only way to improve. Familiarity with the development cycle can help with setting expectations and keeping you motivated, along with keeping organization.

Iteration and UX go hand and hand. Don’t be afraid of iteration, embrace it. Iteration seems to always be the first thing cut when trying to meet a deadline, but it is an integral part of improving a project, and making it spectacular.

XR Research and Knowledge

Know the big players of each XR space, and what sets them apart from one another. This information is necessary to make informed decisions, and to ultimately see where the field is heading. A great example of this is VR passthrough becoming a main focus instead of just a safety feature as more and more people started using it. Tech limitations are also important to be mindful of, each platform or tool has its strengths and weaknesses which can be used to solve different problems.

Knowing what others are working on gets the creative juices flowing. Seeing what others are interested in and how they approach problems is great to absorb and channel into your own projects. Creative problem solving is how something seemingly impossible could be possible.

Hindsight story time! A proof of concept that Petricore is working on involves tracking a page that can be physically drawn on. We were using Unity’s ARFoundation in order to track the corners of the page, each an image marker. This worked well, but we had an issue of how close we had to be to each individual marker, roughly 30% of the screen had to be taken up by one marker to start tracking.

After struggling with this for more than enough dev cycles, we decided to do a round of testing other solutions. Lo and behold we found that Vuforia could do the same, but with only needing 20% of the screen. Better yet, tracking the whole page was now possible, improving the UX of scanning the page drastically. Taking the time to do the R&D earlier would have simplified a lot of code, made the earlier demos much better, and left more room for iteration.

Soft Skills

Adaptability

XR is fast moving, and being able to roll with the punches is something necessary to stay ahead of the adoption curve. Swapping platforms, being flexible with programming languages and engines, and having a general idea of what tool in the toolbox can solve problems are all parts of being adaptable. As mentioned above, iteration is very important, and the ability to adapt to problems goes hand in hand with that.

Curiosity

Dive deep into the rabbit hole and pick apart how things work. Wanting to know how the black box works, and how complex problems are being solved helps with your own problem solving. Be curious, ask questions. This ties in heavily with the ability to research, or at the very least the drive in wanting to do the research.

Fearlessness

Don’t be afraid to try new solutions. A lot of what is the ‘correct’ solution is up in the air, and being experimental is exactly what is needed in order to advance. Tackling the hard, seemingly impossible, challenges is exactly what XR needs to continue flourishing. Plus it’s fun.

Bringing It All Together

What I want to drive home is that raw programming skill is essential, but it also takes a certain mindset to be successful when working in XR. All of the soft skills that I look for tie greatly into research, because ultimately a programmer wielding their knowledge as a weapon to tackle hard problems is exactly what is needed in XR.

Hopefully for those starting out in XR I gave you a nice to-do list to start improving yourself with. Hard skills take time to learn and master, but the soft ones also need to be nourished in order to become a better developer.

About the author:

James Spavold is CTO at Petricore. Serving as CTO since 2015, James is passionate about emerging technologies, programming and mentoring. Petricore is focused on building content that delights the world on places and platforms never seen before. Do you want to connect and discuss your XR initiatives, and see if Petricore can help? You can contact James at [email protected].