I'm a mechanical engineer and I'm currently in a software job because I fell in love with Project Euler. Turns out a ton of modern software development doesn't care a whit about the algorithmic considerations PE makes you learn about. It's not very rewarding.