@phaedryx I agree about w3fools.com, I was just having a bit of snark there.
@serenityNOW JavaScript is pretty simple, particularly to those of us used to C-like syntax, but it’s a bit inconsistent and there are a lot of ‘gotchas’. In my experience, some people find it hard to learn, and some take to it like a duck to water. Personally, I’ve been using it (grudgingly) for over a decade, but I still have to look up basic stuff. If there were another way to manipulate the DOM on the client side, I would probably use it.
I don’t like Javascript especially, and if there were such an alternative I would not recommend the use of Javascript to anyone. The fact is that if you want to do client-side stuff with web pages, you must use Javascript- so as a web developer, it behooves you to learn it.
My advice is to learn the basic language until you have a certain level of comfort with it, and then use a framework as @phaedryx recommends. The ones he listed are all frontend (client-side) frameworks. These are good and useful things to know.
I recommend you learn one of the more popular overall frameworks. If you already know PHP, Python, or Ruby, then I recommend Drupal, Django or Rails respectively (personally I detest and despise Rails, but it is wildly popular and successful.)
My own websites are all done in Drupal. Drupal is easy for setting up basic things (I call it “a CMS with a framework thrown in”, but the learning curve is steep for more sophisticated things. Fluther is a Django app. I have installed and played with Django. It’s less easy than Drupal to start with, but probably easier once you start getting the hang of things. Rails is great for programming, but in my experience it’s terrible for reusing someone else’s code. Rails apps are very tightly integrated, and installing someone else’s app can be an extremely picky and difficult process. I struggled with a Rails app for almost a year before finally admitting defeat in the face of an untraceable stack limit excess which neither I nor two professional sysadmins (one of which an experienced Ruby hacker) could diagnose.
These are mostly just my opinions and impressions. If you don’t already know any of these three languages, then there’s probably nothing to choose between these three frameworks. There are a great many to choose from, and probably at least one for every major programming language. (including Haskell, Erlang, and brainfuck!)