As a long time programmer and Linux user I would say use Linux and learn C - That will take you a long way toward learning an OO language such as C++ or Java as at least some C syntax is used in both. Also, since C is the native language of UNIX and Linux knowing it will be very useful everywhere. For doing larger projects, try Java (training wheels snark not withstanding) or C++ or even Python. It is important if you really want to be a pro programmer to understand OO languages as well as being able to program in one.

eclipse is a great tool for doing the OO stuff as well as doc and design using UML and the Unified Method -

C is a good start, with K&R C being a good starting book.

Have fun!