My Jolly Blog

Anything to educate, inspire and spread general jolliness here.

The Three C's of Programming

Hello World

Wednesday the 7th of September 2016  welcomed the 6th annual European Women in Games conference. The event, held in the stunning grounds of the University of Greenwich London, inspired the positivity, ambition and togetherness of its attendees.

 The University of Greenwich London

The University of Greenwich London

Men and women working across many sectors of the games industry gathered to support Women in Games in their vision of doubling the percentage of women working in the industry by 2025.

One lady to whom inspiring, educating and supporting the next wave of women in games, comes naturally is Timea Tabori. Timea is an engine programmer at Rockstar North, having originally studied computer games technology at Abertay University.

Timea's conference talk, "Hello World: Lessons Learned as a Programmer" attracted a full house of men and women eager to gain an insight into what makes a successful programmer.

This talk was poignant for me, as not only am I nearing graduation as a games programmer myself but Timea has been a constant source of inspiration and a solid role model throughout my studies. Whether you are thinking about getting into programming, studying programming or just about to start your first job in the industry, Timea's experiences and the lessons she has learned from them are relevant, insightful and reassuring.

Lessons Learned As a Programmer

The hints and tips in this talk were insightful and extensive, ranging from beginning a journey in programming to the first steps into the working world.

Studying Programming at University

If you choose to study programming at university, do not be daunted by the many specialisms that computer game programming offers as possible career routes. Also don't worry if you change your mind about your preferred specialism often!

 A full house taking Timea's help and advice

A full house taking Timea's help and advice

As long as you are learning the core principles of programming during your studies, you will be open to many career opportunities, some of which you may not have previously considered or thought possible.

Make the most of your resources at university ad learn the most that you can as you can always specialise at a later date.

The Key Skills of Programming

Timea highlighted Version Control as one element which students and recent graduates regularly have overlooked. Version Control is an integral part to working with other developers successfully across a shared code base. Make sure you look at what version Control software is available and implement this into your personal or academic projects as early as possible.

Get comfortable with looking for information. Programming is problem solving so make sure that you are aware of resources such as tutorials, websites or documentation which may aid your quest to find the perfect programming solution! This comes with repetition and resilience.

Do not be discouraged by knockbacks that present themselves such as gaps in knowledge or code that you can't crack. Turn these negatives into positives and keep on improving by learning from these situations. Remember, there is no one out there that knows absolutely everything!

Your First Job in the Industry

Before you start applying for your dream job, you will need a CV and portfolio. Be sure to get a wide range of feedback from fellow students, peers and lecturers on these before you start applying.

No matter how prepared you think you are, beginning work at first company will come as a massive culture shock!

Here you will have to work with teams of different disciplines, understand the company's internal development pipelines and come face to face with a very large code base.

When faced with these daunting new concepts, be aware of the fact that everyone has been in your current position and mistakes do happen! Do not be afraid to throw yourself into the job, look at the code base, break the build (locally of course!) and encourage code reviews.

If you are unsure about something, do not be afraid to ask questions!

Remember that criticism of your code is not a criticism of you! Do not be defensive. Make the most of constructive criticism and use it to become a better programmer. Also, don't be afraid to give some constructive criticism to others yourself.

Do More Than Write Code

To become a more rounded programmer ensure that you do more than just write code.

Read other peoples code to appreciate and understand their thought processes behind the functionality of the code. Draw inspiration from other creative disciplines. If someone has created a game prototype or painted a wonderful piece of art, appreciate the message and inspirations behind that creation.

Use elements outside of writing code to inspire what you create and how you programmatically approach that creation.

 Timea shares her experiences of the working world

Timea shares her experiences of the working world

Timea highlighted that an element just as important as writing code is debugging it, with the quote "A programmer who cannot debug is blind". She added that having skills in debugging is incredibly important in becoming a successful programmer. As programmers, we are problem solvers and part of that problem solving skill is deconstructing and understanding the code which we work with.

Never Stop Learning

Whether you decide on a certain specialism, or find  a programming language or software which works best for you, never stop learning. Learn new languages, try different approaches to the same problem and get involved in game jams!

Use your passion to guide you towards what you want to learn next.

 The Three C's of Programming

The most memorable part of Timea's talk I felt, were The Three C's of programming. The Three C's of Programming encapsulate the non-technical elements of what makes a great programmer, which are often overlooked or forgotten.

The Three C's are in fact relevant to any profession.

Communication.

It is super important that you are able to communicate your thought processes, opinions and concerns to other members of your team as your task is part of a combined team effort. If you are unsure about something, ask. If something doesn't feel quite right, gain clarification. Above all, always be honest. If you genuinely have no idea how to complete the task you have been given, say so!

It is important to extend this communication across disciplines. If you are working on something which may require insight from an artist or a producer, don't be afraid to cross those communication boundaries.

Care.

Have pride in and care about what you are creating. Even though you will have down days about it, you should love and be motivated by your work. Use that pride and care that you have, to motivate and inspire others.

Take care of yourself! Programming is hard and can often be very mentally demanding. Make sure that you take regular breaks away from your computer, that you keep hydrated and keep active.

Confidence.

Have confidence in your skills and who you are. To achieve this, do not compare yourself to others . If you find that you are comparing yourself to others, draw inspiration from that comparison. Everyone has different strengths and weaknesses, everyone has had their knockbacks.

Do not forget to regularly remind yourself of your strengths and achievements.

What is next for you?

Timea's talk made me feel a lot more prepared for what may come post-graduation. It also gave me an overwhelming sense of reassurance that I wasn't the only one learning these lessons or finding ways of turning negatives into positives.

I think there are lessons to be learned here regardless of where you are on your path to programming.

Thank you Timea!

To find out more about Women in Games, you can visit their website here.