There is a best language, and you shall know it by its parentheses. However, since you probably aren't going to be able to use it because your co-workers aren't up to it, you have to pick a second best. I would strongly recommend learning a strongly typed language for one's first programming experience. Java, with a suitable development environment, such as a Intellij Idea ( http://www.jetbrains.com/ ), is probably the best way to get started. Java is a safe language, which means that any bugs are explicable at the program level, rather than appearing as random damage to unrelated parts of the program It is important to have a good IDE when using java, as without one it is much too verbose. I recommend Intellij as the java-only edition is now open sourced, and it has the best auto-completion and refactoring support, as well as built in support for unit testing. A lot of important data structures are built in to java, which means you can learn how to use them without having to know how to write them. The second language should be lower level; C is probably the best choice for that. Learning C forces you to learn about memory management, which you need to understand, even if it's better to let a garbage collector take care of it for you. Learning how to implement the data structures you get for free in java et. al will help you know how to use them more efficiently, and design your own data structures in the future. It is easy to see the assembler/machine level code generated by a C program and relate it to the code you wrote; again, you may not write much code at this level, but it is important to understand what the computer is actually doing when its running higher level code, and how this affects efficiency. It's also important to get a basic grasp of algorithmic complexity; you don't need to be able to develop proofs like knuth's, but you should understand what big O notation stands for, and why some problems or programs won't scale up. After that, its safe to learn a scripting language; you'll appreciate the stuff you can get away with not doing, but you'll also know just when you're cheating, and why the Duck is a lie. Simon