Thread: C job test

  1. #1
    Registered User
    Join Date
    Nov 2008
    Location
    Phoenix
    Posts
    70

    C job test

    I need a little advice here. I applied for a C programming job at a game company and there is an all-day at-home test involved. Other than studying up on everything, which may not be practical, I'd like some ideas from the experienced people out there on good things to brush up on and what I may likely expect.

    I know plenty, which is why I got a reply, but it's my first programming job opportunity, so I lack actual real world experience and don't want to screw it up over something stupid.

  2. #2
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    39,659
    > and there is an all-day at-home test involved.
    Oh, how is this supposed to winnow the wheat from the "google all the answers chaff" ?

    On the face of it, it seems unlikely that you're going to be faced with several hundred multi-choice questions.
    An all-day thing seems more like an actual programming challenge for a mini game - lets say implement 3D tic-tac-toe.
    If the company is good, they will have pre-googled for existing answers, to easily spot the cheaters.

    I guess being a game company, it will heavily focus on your graphical API abilities, as well as some of your design abilities.

    If you've already done several such games, then it should be easy for you.
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.

  3. #3
    Registered User
    Join Date
    Nov 2008
    Location
    Phoenix
    Posts
    70
    Well of course, granted, I figured it's not going to be a test of the standard kind in school, but more of an actual project. Though, I totally forgot about the 3D part of it (games, duh), since they were asking about all skill and experience levels. I was mainly thinking more along the lines of structures and concepts. For example, in my classes we did go heavily into stacks, queues, linked lists, trees, binary trees and hash tables. We only briefly touched on AVL trees. Definitely no moderate or extensive work in them, and only a brief overview and handful of exercises in graphs, maps, and heaps. Certainly nothing more than a passing mention of B-Trees, Red-Black Trees and some other things. Which is unfortunate, because it seems that a lot of the structures in the previous two sentences are what most modern applications use anyhow. So I think I need to do some practice with those.

    I guess I'll just have to study and practice and get as much of it to the point of familiarity and learning it cold as I can.

  4. #4
    Registered User
    Join Date
    Dec 2006
    Location
    Canada
    Posts
    3,229
    You'll be surprised how infrequently (if ever) you end up using those exotic data structures you learned in classes.

    97% of containers used are arrays/vectors, 2% linked lists and simple trees, and you don't have to code them up 99.9% of the time. Either just using a library, or someone in the company has already coded it up and everyone is using it.

    It's good to have a fairly good intuitive understanding of those data structures and know their advantages vs shortcomings, etc, but don't worry about the nitty gritty implementation details (self-balancing algorithms, sentinel pointers, etc). Unless you happen to need to implement one. Just read Wikipedia when/if you ever do.

  5. #5
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    Most of the programming tests issued now are quite simple. The Microsoft test was by far the easiest with game company tests coming in a close second. I have taken a few programming tests from game studios that were quite challenging and quite fun. You will run into very complex issues in game programming, however, that being said most of them have already been solved by the engine or scripts from past games by the same studio. Very rarely are you going to attack something like a massive physics problem from scratch. You will probably be using Havok or some other 3rd party API. However it is good to understand how to go about solving problems and how to take the classroom example and modify it to work in a real time game. Some problems range from implementing a singly linked list (cake) to writing a design for a race car game taking into account position calculation (1st, 2nd, 3rd, etc), if the cars are going the right way...etc, etc. I will not reveal too much out of respect for the company who uses this question (b/c it is a very good question). That same test also created a fake assembly language with limited instructions and then wanted you to write a program that did a calculation. Another very good question.

    If you understand vectors and operations on vectors and matrix transformations you can pretty much solve any game programming related question.

  6. #6
    Registered User
    Join Date
    Nov 2008
    Location
    Phoenix
    Posts
    70
    I think I failed miserably. I did my best, so I don't have to wonder "What if?..." The problems seemed simple enough in my head; they weren't hard to think out or follow through. But I guess turning it into code wasn't as straight-forward as it sounded in my head (given that their goal was 3-5 hours, and even after 8 I wasn't done).

    Oh well. good experience I suppose, and now I know what sorts of things I can practice on.

    Thanks for the thoughts and feedback guys, I appreciate it.

  7. #7
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    39,659
    But did you actually finish it (even if it took longer than someone else's estimate)?
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.

  8. #8
    SAMARAS std10093's Avatar
    Join Date
    Jan 2011
    Location
    Nice, France
    Posts
    2,694
    Moreover it would be very kind of you if you provided what kind of code did they ask you to develop?
    Code - functions and small libraries I use


    It’s 2014 and I still use printf() for debugging.


    "Programs must be written for people to read, and only incidentally for machines to execute. " —Harold Abelson

  9. #9
    Registered User
    Join Date
    May 2009
    Posts
    4,183
    Quote Originally Posted by Salem View Post
    But did you actually finish it (even if it took longer than someone else's estimate)?
    If yes, I suggest seeing if any of the code would be worth creating your own reusable code modules in case you get a similar problem in the future.

    Tim S.
    "...a computer is a stupid machine with the ability to do incredibly smart things, while computer programmers are smart people with the ability to do incredibly stupid things. They are,in short, a perfect match.." Bill Bryson

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Test at http://www.artlogic.com/careers/test.html
    By zMan in forum C++ Programming
    Replies: 6
    Last Post: 07-15-2003, 06:11 AM
  2. test
    By Brian in forum A Brief History of Cprogramming.com
    Replies: 1
    Last Post: 11-03-2002, 06:52 PM
  3. test IQ~
    By black in forum A Brief History of Cprogramming.com
    Replies: 3
    Last Post: 08-31-2002, 01:28 PM