The Ubisoft Graduate Program offers successful applicants the chance to spend two years working on production teams in two different Ubisoft studios in order to hone their skills in a variety of professional disciplines. With the deadline to apply fast approaching, the Ubisoft Careers Facebook page recently held a special Q&A event for anyone looking for help with their submission. Four current UbiGrads were on hand to answer any and every question potential participants had - including tips on how to stand out, pointers on the interview process, and much more.
We've picked out some of the most popular questions from the event and posted them below:
Frequently Asked Questions**
Is it a paid internship or a full-time position?**
The Graduate Program offers successful candidates their first job (so not just an internship!). This means that when they enter the program, graduates become full-time employees.
There's no Ubisoft office in my home country. Am I eligible for this program?**
Yes! We are recruiting worldwide. However, you should be able and willing to relocate.
Could you walk us through some of your daily tasks as a Project Manager?**
Theo:** As a PM, my daily tasks involve doing stand-up meetings in the morning with all the teams that I follow, to ensure that there are no major issues or blockers to prevent the team from working smoothly during the day. After that, a large amount of my time is spent on the production roadmap, planning, reviews, retrospectives, etc. Also, I end up working on a fair amount of transversal topics, like helping organize playtests and being in charge of the seating plan. There is always a lot happening!
If you had only one piece of advice to give to applicants, what would it be?**
My main advice would be to brush up on your knowledge of the industry. Read articles, get to understand the market and its main actors, the technological trends, emerging markets, etc. Also, play multiple games and try to train your analytical skills to understand what make good games tick.
What are some of the responsibilities of your position?**
Viviane:** I'm working on Mario + Rabbids! As I joined after the main game was already out, I've been working on additional content and improvements on the game.
I mainly work with the game designers to try and make the new rules and new elements clear to players. This involves working on how we do the tutorials (for the Donkey Kong DLC, for example), and working on the user interface elements and design (like the combat HUD in the Versus Mode).
This involves attending meetings to discuss the design and its intentions, creating documents to describe the signs and feedbacks, and producing many, many iterations.
Can you tell us more about your previous studies and how they helped you in this position?**
My previous studies were centered around videogames. I studied game design, and from there went on to study user-centered design for videogames. Thanks to this, I already had some experience working on different videogame projects.
However, having a course focused on videogames isn't a requirement! For example, if your course involved responding to user needs and designing their interactions with the products, it's going to be a great help!
What is the assessment day in UX like?**
The goal of the assessment day is to test your technical and soft skills. So you could be asked to work with the other graduate candidates to discuss an issue and try to reach a solution. You will have different exercises, both in groups and individually.
Keep in mind that that's what happened last year. It might not be exactly the same this year.
What is your main advice to applicants in programming?**
Abde:** My main advice is to be curious. Read a lot, watch GDC or CppCon conferences, and code something whenever you have the opportunity. The more you practice, the more challenges you face, and the more experience you get, the better you will become.
Work alone on certain projects to learn autonomy, work with people to learn to work in team, and browse GitHub and other public repositories to get used to reading other people's code. This way, you will also learn how to use a version control system like Git or SVN, which is extremely important in professional software development.
What kind of tips can you recommend for the recruitment process?**
**Flavius: **I think that a plus in the recruitment process is showing the abilities and knowledge that you have. Present the courses that you've taken and projects that you've worked on. Even if it's a small project done with the help of some friends, or even if you have a basic understanding of a certain programming language, it's good to see that you've worked in a team and that you have knowledge about different programming languages.
What skills do you think are important when applying to the program?**
Abde: Here's some of the skills I think helped with my application:
C++ knowledge: It is the most important, because our engines are written with it. You have to feel at ease with its syntax and its features.
Oriented Object Programming concepts: You need to understand classic notions such as inheritance, polymorphism, constructor/destructor order calls, and static functions.
Design patterns/software engineering notions: Basically, how to write clean efficient code that we can maintain. You will write code that will be used by plenty of other people, so you have to learn how to make it clear. Games comprise millions of lines of code! There is nothing more frustrating than reading obscure code and struggling to understand what another programmer is trying to achieve.
Algorithms and data structures: Classic stuff such as linked lists, trees, stacks, queues, a little bit of sorting, and complexity.
Math: 3D linear algebra, mainly, and some analysis (functions, derivatives, etc.).
Physics: Newtonian dynamics and rigid bodies.
Artificial intelligence: We are speaking about weak AI, goal-oriented action planning, pathfinding (Djikstra, A*), and decision trees. Also, why not start reading about machine learning and how it can be applied to video games?
Networking: Just a little bit about basic protocols, P2P, client-server architecture, socket programming and TCP/UDP.
For the last four, you won't necessarily use all of them right away, but it is a nice toolbox to have at your disposal. It will depend on your tasks for a given project, but you will need them one day for sure!
If you're interested to learn more, or are ready to apply, check out www.ubisoftgraduateprogram.com.