Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I was told not to use Jquery as a beginner because it would hamper my learning of Javascript. Now I've read a couple books on Javascript, read loads of sites, and made a Javascript web app. Am I ready for Jquery? If not, then how will I know when I'm ready?

share|improve this question

closed as not constructive by maple_shaft Feb 12 '13 at 0:46

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

18  
The jQuery library only loads for people who are ready. –  webbiedave Oct 19 '10 at 17:51
    
What's this webap? –  Incognito Oct 19 '10 at 18:02
1  
@user1525, I really appreciate your interest, but I don't want to tell because it would break my pseudonymity. –  Cornucopia Oct 19 '10 at 18:38
1  
@webbiedave If only that were true. There'd be a lot less noise on SO. –  N3dst4 Dec 1 '11 at 15:43
2  
When you can snatch the pebble from my hand. –  kevin cline Feb 11 '13 at 19:55

6 Answers 6

If you understand the DOM API and the problems jQuery has historically solved (I highly recommend quirksmode.org if you don't yet), by all means start using jQuery. As you do, ask yourself how it works and then commit to learning what it's doing under the hood if you really want to upgrade your javascript skills.

What you see in that $ function looks awful at first but it actually does a lot to reduce jq object memory footprints and keep things reasonably performant and can teach a lot of valuable tricks for writing JS. Just keep in mind that jQuery has actually inspired (or included early versions of) a lot of new official-spec (W3C and ECMA) JavaScript methods that are now common or easily normalized for in most browsers. We have forEach and a number of similar callback-iteration methods now for arrays. We have query selection built-in in IE>=8 and post IE8 all of the bad old IE-proprietary DOM methods are no longer necessary. Method chaining is a really simple trick. With that under your belt you can pretty much write your own JQ that would cover 98% of use-cases.

Whether it's a must-have nowadays is certainly more of a dilemma than it used to be for starting a new app but I personally continue to find it helpful for reducing DOM API boilerplate/cruft and a convenient way to get a UI team on the same page quickly. It's also an ideal model for any tool/library in that it stays out of your way when you don't want or need it to help you.

I personally still like it for the way it implements generic events, the fact that it's selector API can still be faster than the querySelector methods in a lot of cases (they appear to plug into the right to left evaluating CSS engines for most browsers) and its implicit iteration of collections which reduces a ton of cruft for common DOM-handling. I could write my own much slimmer version but it's already there and minimized to the size of a medium-sized jpeg so I don't.

share|improve this answer

I would say if you are an experienced programmer with other languages (PHP, Java, whatever), then there's no reason not to just start with jquery right off the bat. Its just that immensely useful. Besides, jquery is a framework, so you'd still be using javascript - just instead of messing around with DOM, you're using jquery.

If you are new to programming alltogether... then I'd say do a couple projects w/ javascript to get a basic understanding of client-side scripting without jquery, so you can learn a bit about what it is doing for you. And then when you feel like you have a handle on things, move on to jquery.

share|improve this answer

I am not certain I would insist on one before the other, but using jquery without a decent understanding of the underlying features of javascript sometimes leads to some odd complexity when a newer dev starts writing everything from a jquery point of view first.

Use both, but be careful not to create complexity where it is not required. Some of those jquery functions can be quite expensive/complicated. On several projects I have had to replace jquery with plain javascript because they didn't perform as well as they should have at scale or on slower clients.

IMHO the jquery is probably best mixed with more plain javascript than I see in many cases.

share|improve this answer

You don't have to listen to everything people say. Just download jQuery and start using it. Who cares if someone told you not to use it while you're a "beginner"?

The point is to write the best code you can, not to be a slave to every silly opinion another programmer has.

share|improve this answer
11  
If I didn't listen to the advice of people who know more about a subject than I do, then I would hardly learn anything at all. –  Cornucopia Oct 19 '10 at 18:50
1  
@Cornucopia, +1 for being a model SO user. –  N3dst4 Dec 1 '11 at 15:57
    
Learning everything you can and not just relying on crutches is in fact, the key to not relying on other people's opinions. As long as you're committed to that however, I don't care when you learn jQuery as long as it doesn't stop you from learning how to make do without. If you wouldn't know how to start normalizing for IE7 or 8 support without JQ, I would never consider you an expert UI dev. –  Erik Reppen Feb 11 '13 at 20:55

Should have already started

jQuery is the only syntactic sugar I find indispensable for daily development. Selectors and events make everything more pleasing.

Prototype and MooTools alter the way you write JavaScript while jQuery merely fills in the gaping holes that span between browsers.

share|improve this answer
    
I still think that for a rounded education, you should appreciate the difference between "native" JS and what's provided by jQuery. Still too many people think that $ is a reserved word in JS. –  N3dst4 Dec 1 '11 at 15:55
    
The minute you want to build a website that works on more than one browser, you need jQuery or another cross-browser library. –  kevin cline Feb 11 '13 at 19:58

Wow, I know this may go against some people's ideas about crawling then walking and then running. But Javascript is not some awesome language you need to totally understand and then you'll be a whizbang programmer.

Just use JQuery and have fun. Use it wiseley, use it cleverly!

I did my company's website 3 years ago with just Javascript and replaced nearly everything I did with JQuery over the last year.

Knowing every last IE6 browser quirk is not going to help in the long run, so just go for it man!

share|improve this answer
10  
We no longer support IE6 at work! –  Chris Oct 19 '10 at 17:40
1  
"Website... with ... jQuery" jQuery's for Websites. JavaScript is for way more than that. But I have to agree, in this case. Since he has already learned JavaScript to some degree, I think it's just fine that he uses jQuery. But don't get me wrong, there are still thousands of people out there whose poor souls have been swallowed by the jQuery demon because they weren't able to control it! –  Ivo Wetzel Oct 19 '10 at 18:48
3  
That it makes people think they know JavaScript, when in fact they only know how to throw together some jQuery. Yes it's not jQuery's fault, but the one of the people who are using it because it's "chic". More than often enough you see those "How do I X in jQuery" questions over at SO, where X is one of the easiest things you can do with plain JavaScript. –  Ivo Wetzel Oct 19 '10 at 19:03
3  
@Ivo, the main question is who cares about knowing Javascript? It's not like it's the most expressive language in the galaxy. I think the less Javascript you write the happier you'll be. –  Peter Turner Oct 19 '10 at 19:11
7  
@Peter Then you miss out on a really awesome language :/ –  Ivo Wetzel Oct 19 '10 at 19:14