At first I didn't want to ask about the differences of Java and Javascript since I was worried we were derailing the topic, but I guess it has to do with game development..! Why are these two separate, and what use is learning javascript (other than it being beginner friendly?)
First of all, I'd like to point out that Java is probably just as beginner friendly as Javascript; hence why it's usually taught to first-year college Comp. Sci. students and AP Comp. Sci. students as a base language.
Javascript is generally used as a scripting language with web pages, but its use goes beyond just that. It's a fun but powerful language and it's straightforward enough to learn basic programming concepts from; it's probably not my top recommendation for such purposes, however. Here's an explanation of why they have similar names:
... The change of name from LiveScript to JavaScript roughly coincided with Netscape adding support for Java technology in its Netscape Navigator web browser. The final choice of name caused confusion, giving the impression that the language was a spin-off of the Java programming language, and the choice has been characterized by many as a marketing ploy by Netscape to give JavaScript the cachet of what was then the hot new web programming language.[11][12] It has also been claimed that the language's name is the result of a co-marketing deal between Netscape and Sun, in exchange for Netscape bundling Sun's Java runtime with its then-dominant browser.
Java is an even more versatile language; it's a purely
Object Oriented language, with a syntax very similar to that of C/C++. It's a (JIT) compiled language -- which for now you can just take to mean "faster execution". Javascript is (generally) interpreted, and is therefore generally slower. One of Java's design purposes was to give software developers efficiency and control similar to that of C/C++, but with better cross-platform support (a single Java executable conceivably will run on any device that has a Java VM; A C/C++ program has to be compiled for each type of device/Operating System in order to run on them.)
With more sugarcoat: Java is focused more around general-purpose programming; Javascript can be used similarly, but its main focus is around Webpage scripting. Java is generally faster than Javascript. Java and Javascript have different language syntax (similar to how English and Chinese have different language syntax.)
With that in mind, Java is often seen as a more viable platform for developing games on than Javascript. Not that there aren't games written in JS, of course, there are just far less.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I think the Code Academy is a great place to learn some of the basics of programming. Another great option is to try learning a language like Python; it's a powerful language, but it's also great for beginners as well. It even has an SDL wrapper, and even better for beginners, Pygame (
http://www.pygame.org/news.html ), which is perfectly fine for generally 2D game development.
Lua + LOVE is another common one, and I personally support the idea of learning Lua since it's an interesting and simple language that's good for beginners as well.
I'd say that while Java isn't hard to learn, I think it's a bad place to start when you have Lua/Python/others. Especially since even the most basic programs require a lot of surrounding code that takes a while to understand.
Mastery of Java would probably lead one into C/C++/Obj-C, which are definitely a bit harder to get a good grasp of. They provide some of the fastest code execution speeds at the cost of a steep learning curve. Definitely not the place to start, but somewhere you should try to get to.
Assembly goes past that in difficulty; it hasn't been an essential in a game programmer's toolkit for over a decade, but learning and getting profficient at an assembly language for one architecture or more is an incredible skill to have (and it looks quite good on a resume!) If nothing else it teaches you to become a much more wary C/C++/Obj-C programmer, and a better programmer in general.