Computer programming changes, so any opinion I offer will be bad advice in a few years. What I offer below are my views at this moment, and they reflect my biases as a programmer.
Suggestion One: CIt's not flashy, it's not trendy, and it isn't the first choice of most programming courses. Yet, C is the language of operating systems, programmable controllers, and a lot of portable logic. When you learn C, it's easy to transport those skills to almost any modern language.
C compilers are free, there are many integrated development environments (IDEs), and lots of resources are available for learning. You can code C in any text editor, too, and compile from a command line.
For OS X and Windows, I suggest using the tools from Apple and Microsoft to learn C, C++, and either Objective-C or C#. Microsoft offers VisualStudio Express for free, as does Apple.
The LLVM Project offers great C/C++ tools, but they do require some skill to install and configure. The GNU Compiler Collection is older and better known than LLVM, serving as the foundation for many open source projects.
If you do opt for open source tools, the two most popular IDEs are Eclipse and Netbeans. Originally intended for Java development, both IDEs offer good C/C++ programming experiences. And, if you feel the need to learn Java, these are the tools professional Java developers prefer.
Other PossibilitiesI still like BASIC dialects for teaching programming to young students.
Visual Basic for Applications (VBA) in Microsoft Office is still valuable, but falling out of favor as more companies disable macros. I understand the security concerns, but VBA makes Excel and Access what they are. Complex Word macros in VBA are also part of my life.
For younger students, MIT still offers versions of LOGO that are fun.
Apple's Swift looks promising. It's still not finished, but there are free books and guides online from Apple.
Java is fine, and as mentioned above the tools are free.
What about Ruby, Python, or PHP? Scripting languages offer instant satisfaction, a lot like BASIC did in the dark ages of home computing. If you have to choose one, I'd be torn between Python and Ruby. Most of my students learn Python and use it with R for statistical analyses.
I still believe Pascal was great for learning. And my wife and I both learned Fortran in the 1980s.
There are hundreds of computer programming languages out there, but in the end the tools provided by Microsoft and Apple tend to dominate the industry.