short version Pick a high-level language and learn it. It doesn't matter which one. Python is good. Google is your friend. Here's a tutorial. If you have questions, Google. If you can't find an answer, ask someone, there are tons of forums out there. long version I like to think of languages in "levels" of abstraction. High level languages let you focus on getting your work done, and not worry as much about the details of how it happens. The tradeoff is that they're usually slower and less expressive. But that won't matter for learning. Lower level languages give you more control over the hardware, but much more can go wrong, and it's much harder to get right. Finally, kind of a tangent, functional languages offer a different kind of 'high' level. Functional languages give you much more expressibility, and help you write things like large, stable systems and avoid duplication. But the vast majority of code out there is in imperative languages, not functional. So I wouldn't worry about functional programming until much later. Python, Ruby, and Javascript are good examples of high-level languages. They're easy to pick up to learn the basics of programming, without encountering incomprehensible errors. Java, Go, C++, and C# are good examples of somewhat-low level languages. They'll teach you important things you need to know, like pointers, memory management, and parallelism. C and Fortran are very low level. You'll probably never need to be that low – unless you want to play with hardware like Arduino – and C won't teach you much that you can't learn from C++. I'd recommend Python or Ruby to start. I'd shy away from Javascript. It's too complex, too easy to learn terrible habits. Even if you want to do web stuff, I'd suggest Python first for good programming habits, then pick up Javascript. Once you feel like you've learned the basics of programming and how to do stuff, go learn Java or C#. Once you have a handle on how they work, C++. By that time, you'll know enough to pick your own functional language, or whatever else you want to learn. Alternatively, if you learn Python and feel like you can do everything you want, just stick with it. Unless you're a professional, you can probably do everything you want with a single high-level language. longer version Just kidding. Go learn Python.