How to go from a C#/C++ game dev to full-stack web dev
Tags: gamedev, webdev, career, unity3d
Published: 2020-12-16 03:54:04

If you're like me, you've been doing some game development with Unity or Unreal Engine for a couple of years, so you know a few things about programming. But just that: a few. As an indie game developer I found quickly that it's hard to make money from games, and even harder to even get to the point where you can produce anything you can get paid for. I decided that my natural fondness of not being poor was enough for me to consider switching skillsets to something like web development. 

So, you have a couple of options. You could take classes on web development at a university or college, you could join a coding boot camp, or you could go the self-taught route. In my own personal experience I started with the self-taught route, realized I didn't know what I didn't know and opted for the boot camp route since I already had a solid understanding of what I was doing, but I also was ready to get into the field ASAP. Your path may be different but they all will eventually need to learn the same key technologies for the work force, so try to pick the best one for your needs.

A few months later after making this decision, I found myself in Hack Reactor's Software Engineering Immersive. Basically, it's a 12+1 week software engineering program that will bring you up to speed with the industry in a short but very intense couple of months. A program like this take about 66 hours a week of your week so it's designed to be tough and you won't have much of a life outside of the program. I figured I was just ready to get into it and was up for the challenge.

In that time, we've learned some major things:

##For obvious reasons, you'll need a strong understanding of JavaScript, HTML, and CSS.

This one is an obvious. They're the muscles, bones, and appearance of your website. You have to know how to use them well to make just about anything.

##Get used to using the jQuery library. 

It's one of the most commonly used libraries and you'll find yourself using it as much as you use vanilla JavaScript after a while. You can even practice by trying to reverse engineer some of the functions. Also, they have awesome documentation, so that's a huge plus.

##Learn some data structures

You'll need these for information storage/look-up. Most indie game devs don't bother with these, but they'll be useful on the back-end.

##Research and practice making HTTP requests.

It's one thing to build a little web app, but it's another to actually be able to... you know... do things with it. These can be scary looking at first but actually aren't that bad once you're used to them. jQuery actually makes these 1000x easier so make sure you're using that properly here.

##Learn about RESTful APIs

Increase the functionality and integration of your website on the internet. Make it interesting and use other websites within yours for added function. I used to think this was really hard and complicated until I tried it. Can really enhance your website though.

##Learn GitHub

It's a career standard at this point. It's version management on an incredibly well organized and potentially massive scale. You will need this at just about any programming job you go to, I'd bet.

##Get a Mac or use Linux

Since everything that Unity and Unreal offer run well on Windows, you probably haven't gotten used to developing on one of these two platforms. If you have, congrats, you have a leg up on the team. I had to learn Ubuntu when I started this. I, for one, actually decided I liked it more than Windows, so maybe you will, too.

##Learn React

React can help your web development a lot. This should probably be a "later" thing to learn, since you'll want to have a firm base in web development prior to using this one. But it's a crucial skill set for a lot of jobs out there.

##Learn Express and PostMan

These are less life-changing tools and more sheer convenience, at least in my experience, but they can both still help you out a lot and maybe prevent a bug or two.

##Learn Node.js

Most front-end positions don't require this, but a lot of back-end or full-stack positions do. This is basically the engine that runs the back-end a lot of time so it helps to know how to drive.

##Learn how to make use of a database

PostGreSQL, MySQL, and MongoDB are all solid contenders in the field at the moment. You'll probably need one for most projects so it helps to be proficient.

#Develop a portfolio

Having a portfolio and even the experience gained from creating that portfolio is one of the biggest game-changers when you're applying for a job. Anyone can write down that they know a language or a framework on a resume but actually having tangible proof/demonstration of your skills can make or break your chances at a job. You should make your portfolio diverse representation of your skill set but try to only put your best work on there. You don't want a potential employer to see something you're not proud of.

Oh, and try LeetCode.