Our first #MentorMonday focused on gaming. We had three amazing mentors with years of experience in the industry share their thoughts, answer your questions, and, for this blog post, respond to the most common questions they were asked. Make sure to join us for our next #MentorMonday, Oct. 2 on getting a tech job.
What's the most common question you were asked this week? What's your answer?
"I just started my first engineering job! How do I transition to a job in games?"
I don’t think you need special knowledge to work in games. Just a lot of passion, and some understanding of how real time applications work. However, it is important to show the passion -- it's often done through side projects or participation in game jams. Game companies also value team work, especially communications with non-engineers, so seek out people of other disciplines to collaborate with!
Furthermore, participating or volunteering in games conferences would also connect you to a lot of people. Even if they can't get you a job, they are all passionate about games and are great people you can work with!
Overwhelmingly people wanted to know how to get started with a career in programming. For some it was breaking into the games industry. For others it was starting a web development career. This line of inquiry came from beginners to working professionals. Everyone I talked to had at least some experience; which is awesome. Showing initiative is a key skill for both beginners and professionals alike.
In Indiana Jones 4 there's a scene where a student asks him for reading advice and Indie recommends someone from the field with the line "You wanna be a good archaeologist, you gotta get out of the library." I love this line, because it's exceptionally true for programming. The question of starting a career in programming is the question of how do I create value that others will recognize. You can spend your whole life being inundated by theory, whitepapers, books, tutorials, demos/samples, courses, etc. but if you never make something then you never take an actual step down the path in your career.
How does one get to the place of adding value? It starts by building intuition. Intuition comes from mulling something over till it clicks in your brain. People want to hire programmers that have a good mental model of the problem set(s) they are facing. That mental model is built on small blocks of intuition that get built up over time.
What's the quickest way to build these blocks? It's to make something. This is a golden era of social programming. Open source projects are in abundance. It's easier than ever to share your work with a wide variety of people. Open source contributions act as portfolio pieces. It's a statement of ambition, passion, collaboration, and competency. It's also a great place to cut your teeth and learn something new or brush up on dusty skills. But take advantage of it to its fullest.
Leverage it to your success. It's a much better calling card than anything you can put on a resume. ( and you can put it on your resume )
So in closing, instead of buying another book, fork a project you're interested in and make it your own. Improve it. Submit patches to it. Add new features. Get Noticed. Profit!
What's one piece of advice you'd like to share with newbies?
Take your time to build up your coding skills. Learning coding can be like learning a new language, and it takes a lot of projects and hands on time to get good.
The best way to do that is through projects that you can show to the world. They could be as simple as personal projects you install on a friend's phone for show, or contributions to open source projects. Every time you have to show something it forces you to make decisions about your project, which helps you grow as a programmer.
As you are learning and growing, don't be afraid to keep sending your resume to companies. A lot of them will take in promising junior coders, but they often won't post the job postings.
Being at the start of a career, things can appear so uncertain and professionals can appear very distant. But a lot of the things you need to be doing at the start of your career are things you need to be doing even at the peak of your career. Here are some examples.
You'll always be learning:
Our field evolves quickly by any human standard. I'm always reading new books or checking out a new repository somewhere. That's exactly what anyone getting into programming is doing as well. The learning process never stops. And that's the fun part!
Humans respond to passion:
What's this talk about passion in programming? Listen to one of John Carmack's speeches sometime. He's practically giddy about the technology he's working on. Whole companies and industries are born from an individual or small group's labor of love. I'd argue that passion is just as important in tech as logic is. If you're not passionate about what you're working on, your work will suck and you'll stagnate in your career. You don't have to like every little thing, or be happy all the time. But on a whole people should hear it in your voice. Bonus, passion sells. So take advantage of that when interviewing for a job.
Don't beat yourself up:
Being a senior means you've screwed things up enough times to know better. Frustration is a familiar friend and imperfection is a close relative. Seniors still struggle with the "right" answer to a problem. We still have to go home and sleep on it. We still break the build. We still have to hack things together to work sometimes. The key to not souring is to enjoy your successes. Take your failures with grace and move forward. Admit when you're struggling and reach out. Pursue knowledge and understanding. Seniors are just further down the track from you, but they still walk the same path.
A common theme that I saw this week was about taking the initial steps to get started learning development for a VR or game development career. There are many different options for the types of career you can have in games or VR that require various skills, but the one thing that stays core to all of it is to show an experimental and passionate, curious nature! Developing side projects and sharing them with the world is one of the best ways to gain traction for any type of role, whether you’re more focused on graphics engineering, environment design, animation and rigging – show off your experiments and try different tools. Find one that you like and try building with it. Side projects don’t have to be large, and you can always try to recreate something that exists but with your own spin on things. I find that small projects posted on GitHub and blog writeups are an excellent way to develop an informal portfolio. It’s also important to be excited about the thing you’re trying to make, because that enthusiasm will be a hugely motivating factor for picking up new skills. Set aside a little bit of time where you can to do tutorials and explore game concepts when you can, but try to do it regularly and get into the habit. Often times, skills from other areas of art or software development tie in nicely – there is a growing need for networking, data, AI, and hardware engineers in varying capacity for games and VR in particular, so highlighting interesting ways that those skills can be used in interesting ways as a game component can also help hone in on a particular role that might suit you. Finally, don’t be afraid to reach out to people who work in roles you’re interested in! People in games are generally a friendly bunch who love to help each other out and can provide invaluable feedback and advice.