views:

600

answers:

10

Are there any books for C# developers that will help me to improve my performance answering programming questions during an interview? I need practice, and need to work on algorithm types of questions.

+3  A: 

Introduction to Algorithms, second ed.

Otávio Décio
Standard text in many university courses. It's obviously language agnostic, but the code leans toward the classic imperative paradigm (not very OO at all). But otherwise a great book.
Svend
@Svend - I was reminded of it mostly because I was asked about big-O notation on an interview, and I had used and liked this book.
Otávio Décio
+3  A: 

I'd highly recommend the O'Reilly book "C# Cookbook" since it will give you specific algorithm implementations. Another good one is "Algorithms in a Nutshell", for more language agnostic algorithms.

O'Reilly - C# Cookbook
Algorithms in a Nutshell

byte
+2  A: 

"Programming Pearls" by Jon Bentley, nothing to do with C# per se, (it was first published 14 years ago), but is great book on programming problem solving in general

Charles Bretana
A: 

I like Algorithms in a Nutshell.

Edit: and The Algorithm Design Manual is fun, but don't start there.

cfeduke
A: 

I highly recommend "C# in Depth" by our fellow Jon Skeet. :)

John
A: 

You asked about books, but I will advise trying one of the following:

The more You solve, the better You will be at algorithms.

PS: Don't get addicted:)

zeroDivisible
A: 

This might be what you're looking for.

It's what I used in my algorithm class.

nullArray
+3  A: 

As someone that interviews potential developer for my team, I really would rather you didn't try and "game" the interview. If you study for interview type questions you might get really good at it, but then would you be a good developer?

Other than for graduates, who I expect to be learning on the job, any other level of developer will get task to perform in Visual Studio. The candidate will be asked to write a small program in the space of about 4 hours. It will contain all the elements necessary to determine if they are any good or not and we can see examples of their real programming style, thought processes and abilities.

The worst person I ever interviewed was someone who had learned the "standard set" of questions by rote. When we asked a question he knew we got a beautifully crafted answer back. But, when he was asked something he didn't know we got back an instant "I don't know". Some of the questions were logical questions, we didn't expect anyone to know the answer off the top of their head, they were expected to work it out.

So, just learn how to write software. Learn how to communicate that to other people and you'll do just fine in the interview.

Colin Mackay
A: 

I would decide first if you need work on C#, or on algorithms, or on both. It sounds like you're worried about "algorithms in C#", which you shouldn't be. Algorithms are essentially the same across all the common imperative programming languages. If you're really worried about algorithms, you can pick up pretty much any algorithms book and work through it. Same thing with C#.

A lot of "programming type questions" on interviews, unfortunately, tend to be either "do you know this minor tidbit of this language?" Sadly, there's not much you can to do study for those types of questions, other than use the language a lot and become increasingly familiar with its details.

Data structures and the framework they're within, however, are a bit different. In a (relatively) short time you can become familiar with some aspects of the .NET framework that can help considerably. Learning things like how to use generics and how to get a hashtable or a list is good to know. Of course, then you should also know the more general answer of when you should use a hashtable vs. a list.

Beska
The interview questions I got were more along the lines of 'write an algorithm to solve this problem'. Since I have not done a lot of work in high throughput situations, I was not used to looking for the most efficient solutions possible. Perhaps this is common in others' line of work, but it is not common in mine.
MedicineMan
I do feel that I am already at the level you are referring to, but I still feel like I need to be even better.
MedicineMan
+1  A: 

For general programming questions related to .NET technologies, I wrote an eBook called "Shove It, FizzBuzz: How to Find and Land a .NET Development Job."

http://shoveitfizzbuzz.com

It's more than just interview questions, but it's still chock full of them, and comes with a .NET Interview Simulator.

Elmo Gallen