I am a student in college, and I notice that a lot of companies look for people who have experience with Javascript. Does this include Javascript's libraries, like JQuery? Or, are they looking for Javascript people only? It probably depends on the company, but what is the general advice for a student wanting to do some front end work? Is Javascript more powerful than JQuery? I know Jquery is a library and simplifies many tasks, but is there some reason why you would use Javascript over Jquery?
6 Answers
They're looking for JavaScript - and they may not know about JQuery
To gain the broadest possible audience for their advert, companies will often just state the top level technologies for the job. The vast majority of major websites using JavaScript will have some reliance on an underlying framework such as JQuery, YUI, Prototype and so on.
I would suggest that you definitely learn JavaScript as a language (it won't take that long to learn the syntax), then introduce JQuery to understand why JQuery is so much more powerful as a web framework. That way you'll have both sides of the coin: you can understand how you can get into a terrible tangle with JavaScript, and then you can see how neat and elegant a solution can be found through JQuery.
Once you have that knowledge, you can then explain it to companies that have not yet seen the light and have rolled their own - probably inferior - framework.
-
I would personally stay away from any company that uses javascript heavily without using JQuery or similar framework. Just because jquery reduces so many cross browser issues that not using it makes life 3x harder then it needs to be Mar 9, 2011 at 10:28
-
@Zachary K But what if the company is developing server side JavaScript? I'd be interested in getting in on that...– GaryMar 9, 2011 at 11:33
-
1Then what I said doesn't apply. But I would expect anyone doing server side javascript is also doing browser side javascript. Mar 9, 2011 at 11:44
-
To be clear, we're talking about three distinct technologies here:
- JavaScript, which is to say ECMAScript 3rd edition. JavaScript, the language, does not contain anything that is browser-specific (e.g. windows scripting host lets you write batch scripts in javascript).
- The DOM API provided by the browser. People tend to lump this together with JavaScript, but it is separately specified (see the W3C DOM specs), and it's best to consider it as such. Interacting from javascript with the raw DOM API is a shaky proposition, due to the many bugs, gaps and quirks, not to mention the verbose and ugly syntax.
- A DOM abstraction library, like jQuery, Prototype, or even Dojo and Ext JS (on the complex end). These libraries wrap the DOM API in a better syntax, smoothing over the browser differences and bugs.
So, my advice would be:
- Learn JavaScript (ECMAScript) well, because it will prove invaluable for anything you do, with jQuery or without. By "learn it well" I mean that you have to learn about its functional programming and prototypal inheritance paradigms. Learn about scope chains and activation objects, execution contexts, prototype chains, and so on. Douglas Crockford's book is a good tool (even if it is somewhat dry), and reading the ECMAScript spec itself is feasible as well.
- Learn jQuery.
- Learn about the DOM API, and how it interacts with the in-memory DOM of the browser, but don't dive too deep in browser differences. Just learn the basic architecture of what happens "underneath" libraries like jQuery. Reading the jQuery source may help.
This way you'll understand what the technologies can do, how they interact, and how to use them effectively, which will get you the jobs you want.
If you understand Javascript, you'll understand jQuery. The inverse is not necessarily true.
jQuery is a framework based on Javascript, so I would be focusing on Javascript. If you know that, you'll have no problems with jQuery.
Jquery is a JavaScript library, as you've written. So you definitely need to know JavaScript to be able to use Jquery efficiently.
Understand Javascript.
Understand Javascript: The Good Parts by Crockford. It isn't too long.
jQuery is good and powerful. I like it. But it isn't the only framework out there.
Does this include Javascript's libraries, like JQuery? Or, are they looking for Javascript people only? It probably depends on the company, but what is the general advice for a student wanting to do some front end work?
If the job is web development it's very likely that they want both javascript and jQuery. And if you want to do front end work you should do both including jQuery UI.
Is Javascript more powerful than jQuery? I know jQuery is a library and simplifies many tasks, but is there some reason why you would use Javascript over Jquery?
You still need to know the basic of Javascript before you learn jQuery. The reason why most people and myself included, use jQuery over JavaScript is because cross browser compatibilities issues (IE is notoriously evil). But at the same time you should learn not to abuse the jQuery $ selector when there is a javascript way of doing things, due to performance issues. An example is having $ in a loop would makes your site very slow ^__^.
For front end you should learn some JavaScript and then learn jQuery. Jeremy Keith's book on DOM scripting is a very good introduction to Javascript and web development. After that picking up jQuery gets a bit easier... ^__^
Understanding javascript does not imply that you will understand jQuery just fyi, because there is still a learning curve for jQuery. Oh and jQuery UI makes making tab menu, modal, and whatever a piece of cake. So learn that too when you have a chance.