This summer, I'm looking to get an internship at a local game dev studio. I've got my resume and all that put together, but they also want a code sample (they say a minimum of 6 C++ files). To be honest, I have no idea what to send.
I don't really have any small bits of code lying around other than boring school assignments. I'm working on a game, but it's far from complete and also written in C#/XNA. The only thing I have completed that would fit the requirements is a program to use Rock Band and Guitar Hero instruments as MIDI devices. It's pretty darn cool, and fairly mature, but I'd be worried if they actually want to run the program, as it would take some effort on their part: it's OS X-only (I'm using someone else's CoreMIDI-specific code; I wonder if this might also be a negative to using this code?) and requires a GH or RB instrument, the OS X 360 controller driver, and a MIDI program to play back the data (although that's the smallest issue, since at the least they should have GarageBand).
To any of you with experience at this sort of thing, what kind of sample are they really looking for? Does it make sense to send my Rock Band thing? Since this is a project that I hope at one point to release on the web for other people to use, would I have to do anything to protect my IP from, say, somebody just swiping my code and claiming it as their own?
Signature not found.
Posts
You can tell a lot about a programmer from reading a sample of code. I assume they'll be caring about things like:
I imagine the judicious use of a third-party library would actually be a bonus in this case, you don't want somebody with not-invented-here syndrome.
Short answer: No. Long answer: In the US, your code is covered by copyright as soon as you write it. If you are completely paranoid about a company taking your code and "stealing it," you can register the copyright with the copyright office for something like $30. You have to register a copyright to sue someone for infringement, but you can register at any time. If you register after the infringement, it just means you will need more evidence that you wrote it first. If you register a copyright, you will have evidence that can be used in court that you wrote the code first, and you can sue them for infringement. Note that any real company will not steal your code, because it exposes them to liability and is obviously illegal. Practically, it is unlikely (especially at this stage of your career) that any code you have written is so valuable as to be worth stealing.
One exception would be if the company makes you sign some kind of license granting them permission to use your code. If they do this, I'd question their reputability in general.
Note that copyright protects your code, not the general idea of using Rock Band instruments as MIDI instruments. If you give somebody this idea (as you've just posted here) and somebody else creates their own implementation, you can't do anything about this. If you want to protect the general mechanism you've created for using fake instruments as MIDI instruments, and it's an original idea, you can get a patent. However, patents take months of work and tens of thousands of dollars to acquire, so you would need a really good reason (and likely a business plan) to go about getting one.
Clean up your code and ship it off with an explanation on how to set it up and compile/use it if they wanted to do so.
They won't, but it's always helpful.
Where's the internship, if you don't mind me asking?
Man, that Rock Band code would be so perfect. If it was me, I'd write detailed instructions on how to get it working AND include a video of it working as backup. Using someone elses library is also a bonus. Being able to integrate your own code with someone elses is a big part of programming in a team.
I'd send the C#/XNA game too. It's a similar language and shows your interest in game dev.
Coding style and an interest in game dev is what they are looking for here. I think you cover the second part just fine with those two apps.
took out her barrettes and her hair spilled out like rootbeer
A video of your project would be cool, but ask before you send. Most prefer to see stuff on a website, not through larges files on email. Having something working for the interview is good, too.
And don't say design studio if you're actually thinking dev. Thinking they're gonna swipe your code is pretty . That's beyond insulting.
Dr. Frylock's copyright stuff was a good read and good stuff to just know - thanks! - but in retrospect what I really need to do is take off my tinfoil hat :P
Fair enough, duly noted.
They want six C++ files. I have 5 .cpp files and 5 corresponding .h files. Even though that is technically 10 files, I should include one more bit of code, no?
I'd personally consider that to be only 5 files, unless one of your headers has inline implementations. The terminology is off, but C++ doesn't really have clear cut modules, so files becomes a lazy way of saying implementations.
If all your cpp files are substantial and awesome enough, you could probably pass with the 5 and still be a leg up over your peers. The only reason I think it'd matter is because you don't want them to think you haven't programmed anything substantial.
How big are your implementation files anyhow? It might be wise to split a class into two logical units. Typically any implementation file larger than 500 statements can be split, if needed. Where is your int main located?