> I'm not sure that I find the ability to cram for data structures and algorithms questions to be indicative of intelligence and problem solving skills.
I liked the interview approach of my last job - they had me debug some simple code. This was C++ for gamedev, so they showed me - a class violating the rule of 3 leading to a double delete, some multi-threaded code without memory barriers - or even volatile - and another example that escapes me at the moment. I was able to blitz through that. I floundered slightly when asked to explain the observed behavior of the buggy code pre-fixes - the exact behavior of the multi-threaded code before fixes surprised me, and I couldn't figure out the probable cause in my own head - but that segued easily into a discussion of the disassembly (at which point I was able to explain the behavior) when I suggested I'd look at the disassembly when asked how I'd go about finding out.
They asked about basic usage and design on a broader range of topics as well - I failed to remember to store a salt (doh!) for the simple user DB example schema, and floundered a little on my 3D math skills (in what to apply to solve a problem, not to recite the exact math - an area I admitted up front I was weak in) but otherwise did okay. Also a lot of discussion about previous problems I'd tackled and how (I've got a file of notes I keep called "War Stories".) I ended up getting the job at the price I named - they didn't even try to negotiate me down, perhaps I should've asked for more? :3
I liked the interview approach of my last job - they had me debug some simple code. This was C++ for gamedev, so they showed me - a class violating the rule of 3 leading to a double delete, some multi-threaded code without memory barriers - or even volatile - and another example that escapes me at the moment. I was able to blitz through that. I floundered slightly when asked to explain the observed behavior of the buggy code pre-fixes - the exact behavior of the multi-threaded code before fixes surprised me, and I couldn't figure out the probable cause in my own head - but that segued easily into a discussion of the disassembly (at which point I was able to explain the behavior) when I suggested I'd look at the disassembly when asked how I'd go about finding out.
They asked about basic usage and design on a broader range of topics as well - I failed to remember to store a salt (doh!) for the simple user DB example schema, and floundered a little on my 3D math skills (in what to apply to solve a problem, not to recite the exact math - an area I admitted up front I was weak in) but otherwise did okay. Also a lot of discussion about previous problems I'd tackled and how (I've got a file of notes I keep called "War Stories".) I ended up getting the job at the price I named - they didn't even try to negotiate me down, perhaps I should've asked for more? :3