There are a ton of options and you will hear a lot of different answers to this question. In my opinion, the (free!) Stanford Programming Methodology online course is the best way to get started.
Read more about that and the (free!) Unity engine here: