

Rebecca Murphey: An Online jQuery Class - jeffreymcmanus
http://blog.rebeccamurphey.com/an-online-jquery-class

======
euroclydon
Tangentially related: I've started using the Google Closure Compiler, and I
see JS in a whole new (and mildly depressing) light now.

When I first learned to use jQuery, I went hog-wild, running circles around
fellow devs who didn't use it. I got so into JS, that I started writing more
logic in the client, because I could, and because JS, with it's loose typing
and object notation was just a fast place to write code.

Now, two years later, I've embarked on a large project, an HMI in an
industrial sector, and I of course made heavy use of jQuery. After 4000 LOC,
the program needed some serious re-factoring in order to handle the next level
of complexity.

To handle the complex demands of the application, I decided to use the Closure
Compiler, which is great! The only problem is, that now, I'm writing typed
code, in a non-typed language, and there's not much to really like about the
language, besides the fact it's on all web browsers and has a ton of third-
party support.

I guess my point is: I think tools like Closure Compiler and others which
produce "compiled Javascript" are the future, if anything is. Maybe we'll see
Python, or Java get JS like support in the browser, but if I could talk to the
me from two years ago, I'd tell him: "Start using the Closure Compiler, and
use less jQuery."

~~~
ericlavigne
Hi, I'm you from two years ago (loving jQuery, moving more code from server to
browser, never used Closure Compiler). I'd like to take your advice, but I'm
confused about something.

It sounds like you said (1) you had a great experience with jQuery, (2)
writing Javascript is a much worse experience with Closure Compiler, (3)
therefore use the Closure Compiler and not jQuery.

Could you please explain why you like the Closure Compiler, so I can
understand the jump to (3)?

(1) "running circles around fellow devs", "JS, with it's loose typing and
object notation was just a fast place to write code" (2) "now, I'm writing
typed code, in a non-typed language, and there's not much to really like about
the language" (3) "Start using the Closure Compiler, and use less jQuery"

~~~
euroclydon
It depends on the size of your project. Mine is large. Javascript becomes
unwieldy after a few thousand lines. Closure Compiler really helps, but in you
have to use comments to tell the compiler what types your functions take and
return. This becomes a drag, making JS, to me, less fun.

If you're going to make a big project, I recommend CC from the start.

~~~
kls
You may want to look at ShrinkSafe and the Dojo build system. While it does
not create quite the compactness of the Closure compiler it does get you close
without enforcing constraint on the way you write JS.

As well, if you are doing large apps with jQuery then you should take a look
at Backbone. It helps organize the JS application architecture. In saying that
though there really are better toolkits for large JS apps that are designed to
provide the frameworks of application architecture in your app.

Dojo is the one that I use and recommend, once over the learning curve you
will find that it is designed to handle large JS application is an intuitive
manner and not just by making it look like Java in the browser. It exploits
the best parts of Javascript while bringing in language constructs from
several schools of thought to provide a very robust toolkit.

I have used most all of them and it is my choice when the webapp surpasses a
certain point in complexity. I always tell people that I can save them a lot
of time when it comes to JS toolkit selection and then I tell them if it's
small use jQuery and if it's large use Dojo. It is meant to be slightly
humorous but there is a grain of truth to it.

There is nothing faster to learn and more intuitive that jQuery but it comes
at the cost of reduction in it's robustness. There are tools to address this
but to me they always feel like bolt on's.

Dojo on the other hand trades up front intuitiveness for robustness. A trade
off that toolkits like Closure make is to make JS more like Java to bring back
some of that intuitiveness but at the cost of some of that robustness. Dojo is
unapologetic a JS toolkit and uses JS concepts as first class citizens. It
then borrows best of class language constructs from other areas of language
progression.

Anyway, my long winded point is, if you are having issue with growth of your
jQuery application you may want to give Dojo a try. Rebecca did and was
pleasantly surprised:

[http://blog.rebeccamurphey.com/2009/11/12/dojo-
confessions-o...](http://blog.rebeccamurphey.com/2009/11/12/dojo-confessions-
or-how-i-gave-up-my-jquery-security-blanket-and-lived-to-tell-the-tale)

------
catshirt
As information begins to flow freely, it's monetary value approaches $0.
Forgive my insensitivity- but based on that sentiment the content of this
course is worth relatively nothing.

I am of course not speaking towards the instructors ability, time, or
guidance. Granted, $350 is a steal compared to formal education; but if
teaching 20 people how to AJAX is worth upwards of $8,000... I need to move on
to teaching.

~~~
jeffreymcmanus
The course is a month long. How much do you bill each month?

~~~
catshirt
Like I said- if the time spent maintaining this course (even considering there
might _"probably"_ be office hours) is worth that much money, I need to
consider teaching. I don't doubt the instructor of this course in particular
is capable of maintaining 4 of these courses in a month.

More arguably: this information is information that is _not only_ documented
thousands of times- but there are even plenty of human resource available for
free as well (consider stackoverflow). I'm certainly not suggesting Rebecca
value her time at nothing. But of all professions, I'd expect programming to
be the first of which you can truly learn for free.

I don't mean to be argumentative, I am just being idealistic.

~~~
jeffreymcmanus
Not at all, I kinda see where you're coming from. But the flaw in your
reasoning is that we're not yet at the point where you can jack the kung fu
program into Neo's cerebral cortex like they did in the Matrix.

You can actually learn anything for free today -- assuming that your time is
worthless. You might not be able to learn it well or very quickly, but you can
certainly learn it for free.

CodeLesson's biggest competitor is Google. Google can get you all the
information you need about how to do pretty much anything -- bake a soufflé,
sire a baby, write a compiler. But it won't tell you where to look for the
information you want, it won't tell you exactly what you don't yet know, it
won't evaluate your work, it won't tell you when you've learned enough to do
what you want, and it won't validate what you've learned. That's where a human
instructor comes in.

If you think that paying to take a course is expensive, then great -- read the
online text for free and get what you can out of that. That's what it's there
for. But taking a class is really about getting access to the knowledge and
experience of an instructor. That's what people pay for.

------
duck
I wish CodeLesson did a better job showing you what a course of theirs is
like. If you have taken one before could you share what it was like?

~~~
jeffreymcmanus
This is a FAQ: <http://codelesson.com/faq>

CodeLesson courses are taught online; there are weekly assignments but no set
meeting times for classes, which works well if you have a day job, as most
CodeLesson students do.

That said, there is plenty of structure, including weekly readings, message
board Q&As, and several hands-on assignments each week that are evaluated by
each course's instructor. Most courses have screencast videos and some have
live chats.

~~~
duck
Thanks Jeffrey. I think it would be great if you put your summary from above
as the top of the FAQ. I finally read through the entire thing and saw
everything you mentioned, but it is just too much for a quick overview (to
answer the first question that came to my mind - is this worth $xxx?).

~~~
jeffreymcmanus
I agree that we do need to do better at conveying what our courses are like.
We'll do more in the near future to make that happen -- a guided tour on
codelesson.com is one obvious and easy thing we have planned.

Another thing we're planning are free courses -- our first one (on programming
the Etsy API) will take place in December. Taking a free course might be a
good entree to what CodeLesson is about if you're unsure as to whether it's
for you or not.

