Most people would suggest Python, which no doubt is a good language for beginners. But a lot depends on what you plan to do. If this isn’t only an academic experiment and you’re looking to seriously expand your programming ability then I’d argue for C on GNU/Linux.

C is not object-oriented and certainly more difficult. But knowing C on Linux will help you to understand the basic principles of computing architectures.

Debugging with gdb, strace, valgrind and learning about low level system calls will teach you a great deal about how a program works, where it’s resources are used and how to eliminate it’s bottlenecks. What is a heap, stack or static memory? How does memory management or garbage-collection work on a modern OS? What is IPC and how do the individual system calls function & require as input? How do you compile a program using gcc?

Later check out the sources to some of your programs you use every day (ls, more, cd, or any other command you want to know how it works …) and play with them. Why not write a simple Makefile to put things together?

This is fundamental to deeper understanding how operating systems (and other languages) work later on. Once you mastered it move on up to the user-space languages such as Python, C++, Perl, then maybe Scala, Haskell, Lisp/Scheme, Erlang, Ada.

Sure it’s much simpler to start in Python. But not learning C and instead getting too comfortable with Python or Ruby, … the risk is that you won’t ever bother with learning how the lower levels work (and hence lack a really fundamental skill).