views:

1512

answers:

20

I am a .NET webdev using ASP.NET, C# etc... I "learned" javascript in college 5+ years ago and can do basic jobs with it. But I wonder if it is useful to become proficient in it.

Why should I learn Javascript? Is it more advantageous then learning JQuery or a different library?

+26  A: 

Yes, definitely learn Javascript before you learn one of the libraries about. It's the whole walk-before-you-can-run thing.

nickf
Turtles all the way down.
Kevin
+1  A: 

Unless you want to really get into javascript, I think you'd be better off learning enough JS to leverage one of the tried and tested javascript libraries out there.

AlexCuse
+12  A: 

Yes, absolutely you should learn JavaScript if you are doing web development. I highly recommend JavaScript: The Good Parts, by Doug Crockford. And, JQuery is a great framework to use (this site uses it) -- it kind of depends on what you are trying to do -- YUI and ExtJS are also very nice.

Lou Franco
Got the book. Although I disagree with a few things (mostly aesthetics), it's my bible! The first place I turn when in doubt :)
roosteronacid
A: 

Learning a second programming language is always good. By the sound of it, JavaScript is a language that you use, to it will be of practical use too. As a web dev, it has been recommended to me in a review that i learn at least basic JavaScript.

A library such as jQuery is essential for web development thse days, so you could learn that too.

Anthony
A: 

I don't think a lot of deliberate learning makes sense (but of course you need some basic knowledge), but I also think after some years of web development you'll become pretty proficient in the language anyway :)

Michael Pliskin
+1  A: 

One thing nice about JavaScript is that it is quite different from mainstream languages such as C#, VB.NET or Java. Learning it, especially if you have occasions to use it, will give you another insight on programming, and that's always good. I think it's worth learning it.

LBugnion
I'd argue, based on the usage of JavaScript vs. C#, VB.NET, and Java that JavaScrit *is* the mainstream language. ;)
ScottKoon
+2  A: 

Javascript is one of those languages that spending a few hours learning will probably teach you 99% of what you will ever really use. I would imagine you are at the point in your learning of javascript that you know more than enough now and just learn one or more of the frameworks now.

Kevin Sheffield
A: 

If you are a webdev then yes, you should be proficient with Javascript. Javascript is a major part of making web apps as interactive as desktop apps.

With that being said, learn to use one of the cross-browser compatible libraries like JQuery, Prototype, etc. We do not need to have any more single browser crud created using Javascript, just because any real man/woman rolls their own.

A few things to learn in Javascript: 1. Basic syntax 2. The various flavours of function declaration. 3. Passing functions around and how to use passed in functions.

Scott Bevington
A: 

I recommend Jeremy Keith's books: DOM Scripting and Bulletproof Ajax. After you become more fluent in JS I would recommend a JS library(I use jQuery, but that is not important).

JS is important to learn. You cannot use a framework without the proper understanding of how it works. That is doing things backwards.

Silviu Postavaru
+2  A: 

I would recommend brushing up on your non-frameworked javascript first. Refreshing/learning basic concepts of dom manipulation and what not. Like learning how to build a linked list, stack or queue in C++ before learning how to use the STL (standard template libraries).

In addition to brushing up on straight javascript, it might be good to get into a framework that doesn't abstract and change the way things work so much, for instance Prototype. You code with it very much the same way you code with straight javascript. Read through the Prototype code, learn how to make classes, and do some fancy stuff. From experience, I can say reading through the Prototype.js helped me learn alot.

After messing around a bit, then I'd say go for jQuery. If jQuery didn't, literally, change the way you write code I'd say go for it first, but learning how to build classes and js inheritance and what not can be a very important lesson for someone who wants to become fluent in JS.

Wes P
+1  A: 

If you are doing web development then at some point you are going to get exposed to Javascript or ECMAScript at some point in your career for any one of a number of reasons. At a minimum you should know enough Javascript to be able to be able to validate user input; however, the web is moving in the direction of using more an more Ajax so you should also know enough Javascript to properly leverage one of the major libraries out there such as jQuery.

As some of the other users have noted, you can learn most of what you need of Javascript on a day to day basis in a single day or a couple of afternoons. If you want to get more advanced with Javascript then you are going to have to invest much more time in learning the language but odds are that unless you seek out this type of work that you are not going to encounter something that a preexisting library doesn't already exist for.

Rob
A: 

i thing you should have a good knoloedge base of language specification and DOM (Document Object Model). it means,you shoud know how find/create "page object" an edit properties. Also you should have an idea of "object oriented" javascript tecniques, which the starting point of a lot of framework. you don't need learn specific framework if you don't use it. simple keep in mind generic base concept!

stefano m
+5  A: 

Hands down yes. There's a reason that Google have made such a big fuss about the V8 JS engine for Chrome, why Mozilla are working on TraceMonkey for Firefox and why Webkit have been working on Squirrelfish for a while (now Squirrelfish extreme). It's because JS is becoming more popular by the day.

Teifion
+12  A: 

Make sure you add these sites to your bookmarks:

Mozilla's developer site: This contains the reference to the Javascript API in Mozilla. This will help you make sure you're writing code that Firefox understands.

IE's site in Microsoft Developer Network: The same, for IE.

W3's reference of DOM for HTML: In most web applications today, the Javascript code manipulates the DOM, which is an internal keeping track of the objects displayed on screen (but you already knew that, right ?) This is the reference to the DOM API. It is language neutral, which means it does not target Javascript, but these methods exist in Javascript too.

Douglas Crockford' site: Doug Crockford is THE MAN when it comes down to Javascript. The articles in his page are a must read. Because Javascript has closures and first-class functions, he believes it is closer to Lisp and Scheme than to other languages. And he teaches you how to greatly improve your code with these language features.

Yahoo Developer network: You may also want to check this. I'm not a regular visitor to this site, though, so I can't really say much about it.

Leonel
+2  A: 

Learning javascript is recommended for any web application developer. Why?

  • You will better understand the possibilities, limitations and dangers related to developing a web application
  • It is a boost for your career, if you are working on a web application that has a user interface.

However, learning javascript is usually a trade-off between a programming language and another. You should consider whether javascript is relevant for your career or project.

+1  A: 

If all you want is to do some simple UI-effects and the like, I suggest you just pick a library and go for it!

Using libraries eliminates all the flawed implementations of JavaScript and provides you with an API which is the same across all browsers. And if you're working together with others it is also a great way of implementing code-standards and best practices.

roosteronacid
+6  A: 

The answer is simple.

kangax
Its really cool...
Ramesh Vel
That was cool! +1!
kirk.burleson
A: 

I'll go with the opposite answer most are putting out there. Learning javascript as a developer these days is almost pointless. The language is similar enough to java/C# that it's syntax and semantics shouldn't be lost on you.

What you should learn is jQuery.

As you use jQuery you'll pick up the most common things you'll ever need from javascript anyway.

Chris Marisic
But Javascript's semantics are significantly different that Java or C#. That's why it's worth learning on its own. Don't let the curly braces fool you -- what's under the hood is significantly different.
Sean McMillan
Well I guess that's valid, you obviously need to learn the basic constructs of the language but you don't need to learn about any DOM manipulation with javascript that isn't handled with jQuery.
Chris Marisic
A: 

If you're involved with the Web in anyway then the answer is "Yes, always". Maybe an embedded or system's programmer could get by without JavaScript, but not a webdev.

Most of the libraries are designed to alleviate some of the pain of interacting with a multitude of browsers. They will not abstract away core JavaScript functionality.

JonMR
A: 

Yes, you should learn JavaScript. Sooner or later you will need to use it!

Molex