To join in with the engineer talk:
I absolutely love when I choose the right algorithim for a solution that doesn't involve hash mapping, because DYNAMIC Programming blows sometimes...
I hate when I have to adjust the algorithim blocks so the compiler wants to cooperate, and you simply lose track after 500lines of code and trying to optimize something you can't.