I don't know anything about controllers. Most people who use controllers go with the Hercules.
Programs
I personally prefer Serato, but Traktor is great too
If you want to make your own tracks, and produce buy Ableton. But It's expensive.
Speakers, I would suggest getting a pair of Rokits.
If I were you I would buy a pair of used CDJ 400's, or 800's and a used DJM400. You'll probably just end up upgrading to something like this anyways.