Advice on expected programming standard for a graduate

Started by
18 comments, last by Structural 16 years, 9 months ago
Hi all, I have been teaching myself C++ for a while now and have reached an okay enough level. I know there is a good bit left to learn but I have a decent command of the language at the moment. I'm looking to apply for graduate/junior AI programming roles in the near future and was just wondering what kind of level I will be expected to be at when entering into a similar style role. Should I be comfortable with templates, data structures etc.? (I assume those but what else will I be expected to know?) Thanks
Advertisement
You will probably be expected to show at least one of two things:

1) That you have completed something (the more the better) in the past that demonstrates your knowledge of the "domain" (AI, graphics, whatever)... it certainly helps if you work was done in the language that the position requires.

2) That you have an educational background sufficient to instill an understanding of "computer science", which implies knowledge of data structures, algorithms, language theory, etc., which means you will understand the design principles that go into a language and can, therefore, learn new ones with relative ease and that you understand how to programatically address problems.

Usually, it is a combination of the two--they will want a degree and some experience of some sort. Some jobs might give you a "programming test" or something of the sort, but most of the time you won't be quizzed about whether you know a particular feature of a language... you'll just be expected to be capable of learning it quickly if you don't.
In my experience, game programming jobs expect a reasonable level of skill from anyone - they don't accept people who just learned at uni, omly those who do it as a hobby. Wheras in other areas, of programming, they might expect graduates to have potential but be fairly useless right at the start.
As a junior, its pretty leniant because you will be typically placed directly under a lead who will supervise the changes you make to the project, until the point where you know what your doing.

As for expected knowledge, the fundamentals of the language, OO design, understanding of simple design patterns (Singleton, Factory, Visitor etc), effective use of STL (pick up a book on this if you havent already), and more importantly the will to continue to learn and a passion for the role your aiming for.

If its game/ai programming, write some demos on agent behaviour, genetic algorithms & neural networks. Know how these work, because they will test your knowledge *before* you get the job.

Hope this helps :D
Thanks for the replies.
I think that they are less likely to hire someone who just graduated from a university because that guy probably never made any games before, so basically he never really made a game on his own before. Hobbyist programmers, on the other hands, probably have already made tons of games by themselves, so therefore they would probably have more experience.
Quote:Original post by Awooga365
Hi all,

I have been teaching myself C++ for a while now and have reached an okay enough level. I know there is a good bit left to learn but I have a decent command of the language at the moment.

I'm looking to apply for graduate/junior AI programming roles in the near future and was just wondering what kind of level I will be expected to be at when entering into a similar style role. Should I be comfortable with templates, data structures etc.? (I assume those but what else will I be expected to know?)

Thanks


Could you write a bot for an FPS currently? Doesn't have to be good, just working enough to not run directly into the wall and respawn when shot. I'm not highly experienced, but that's the sort of task I'd expect an entry level AI dev to be able to do in 40-80 work hours.
Quote:Original post by iSphere
Hobbyist programmers, on the other hands, probably have already made tons of games by themselves, so therefore they would probably have more experience.
Meh... if you just graduated with lots of coursework in graphics, or AI, or whatever the job is for, you probably will be fine if you have some sort of related experience (internships, or whatever). At the very least, you won't be disqualified for a lot of jobs on those grounds. Making games as a hobbyist and working on a team in a commercial environment aren't usually even remotely similar.

That's not to say that they wouldn't PREFER someone who makes them as a hobby.
Well speaking as a recent graduate myself, ( I got my degree last June ) I went through this process myself, and subsequently have got myself a job within the industry.

To be honest I think you need to change your outlook slightly, companies don't just want someone with 'enough skills' to get a junior/graduate position, they want the very best graduate they can find, and they certainly expect a very good standard of programming.

I was in the same position as you when I applied for my job, and after a day of interviews ( for two positions ) including an hour programming test, I quickly realized that my programming knowledge was a lot more limited than I had previously expected!

Basically, learn everything you possibly can, anything to give you an edge over the competition.

You are also at a disadvantage in that you don't have a computer science / games related degree (from my understanding of your post at least ) Therefore you really do need an amazing portfolio to stand out.

In terms of what was in my programming test...

Vector / Quaternion / Matrix math
Pointer arithmetic
Design Patterns
Templates
OOP Principles
Algorithms - Demonstrating knowledge of these with written code, Binary Trees etc

Basically, learn everything you can, and write some amazing demos, along with source code to demonstrate your ability!

Quote:I think that they are less likely to hire someone who just graduated from a university because that guy probably never made any games before, so basically he never really made a game on his own before. Hobbyist programmers, on the other hands, probably have already made tons of games by themselves, so therefore they would probably have more experience.


I disagree with this... *All* new junior staff at my work are graduates, or have previously obtained a degree Bsc or Masters in a related field to the one they are applying for.

Hope that helps
Chris
In addition to the above, there are also areas that you can learn about that will give you a light edge since they are not immediately obvious.

- Use of tools/IDEs (Doxygen, Visual Studio, Bug tracking software etc)
- Source control (SVN, CVS, Perforce)
- Software development methods (XP, Agile)
- Other programming paradigms (functional, logical)

If you know some of these subjects in detail, that will impress in an interview.

Steven Yau
[Blog] [Portfolio]

This topic is closed to new replies.

Advertisement