Hacker News new | past | comments | ask | show | jobs | submit login
One page: Javascript in 10 minutes (infogami.com)
139 points by alifaziz on Jan 26, 2011 | hide | past | favorite | 16 comments



Although I thoroughly appreciate the intent of this introductory page, a really bad way of teaching something to the neophyte is to lead with examples of what NOT to do. If they are to appear at all the place for them is far, far down at the page when all the good examples of what to do has been understood and memorized.

Also, the author should probably put something at the top stating who the introduction is intended for. It is clear to me that it is not for newbie programmers, but that would not be clear to the actual newbie.

A beginner could very well set out thinking that this is the perfect introduction to programming for them. And then in the first paragraph discover the semantically very rich phrase "Javascript is a dynamically typed language". To a programmer that is valuable information but to the beginner it just confusing.


Don't do what Johnny Don't does. Huh?

The best method of teaching, in my experience, is to start with the fundamentals (a skeleton model at a high level of abstraction) even if it's not fully accurate and then fill in the details and all of the cautionary advice bit by bit, building up the skeleton model into a more robust and full featured model.


"... Don't do what Johnny Don't does. ..."

Love that Simpson quote, "Boy-Scoutz 'n the Hood" S5E8 ~ http://en.wikipedia.org/wiki/Boy-Scoutz_%27n_the_Hood


Except it's actually "Donny Don't" :)



  Property Maps

  var emptyMap = {};

In JavaScript, these are called Objects. I don't think it's right for them to be called "property maps" in a tutorial like this.

The heading called "Objects" should be renamed something like "Constructors" too.

Also, using

  for (var i in array)
is not the preferred way of iterating over an array (the for construct does not guarantee ordering).


for...in loops also have the drawback of iterating over inherited properties. eg if I extended the prototype of Array with some method, then for...in would iterate over that method too.

traditional for loops incrementing until length is reached are preferable for arrays (personal style: for(var i=0,l=array.length ; i<l ; i++))

For objects, for...in with a hasOwnProperty check is preferred, I think (if you're going to be iterating over objects that is, which usually means you're using an object as a textually-indexed array, which isn't that great).

Over all a nice introduction though.


  using an object as a textually-indexed array,
  which isn't that great
Using it as a hash table is just fine.


Yes, my problem was with people then wanting to iterate over said hashmap, not with using it as a hashmap in the first place. I could have worded that better, thanks.

I mean if you're going to want to iterate over it, you should probably be using an array instead.


The whole page disqualified itself instantly, not a single note about `hasOwnProperty` on the whole page :(



Another interesting introduction I can recommend was written by a friend of mine. It focuses more on the semantic differences to other languages (e.g. prototype based inheritance) as to the syntax:

Javascript for people who are in a hurry:

http://kaijaeger.com/javascript-for-people-who-are-in-a-hurr...

Javascript for people who are in slightly less of a a hurry:

http://kaijaeger.com/articles/javascript-for-people-who-are-...


The first few lines are misleading - Javascript doesn't really have an integer type. At least for Ecmascript 5 http://www.ecma-international.org/publications/files/ECMA-ST... both integers and floats are stored as IEEE floats and the type is called Number. "Small enough" integers are stored exactly so this works well enough in practice.

(Despite this, it does have some functions for converting and parsing integral values.)

Ecmascript 4 (abandoned) had some support for an Integer type (it was a kind-of pseudo-type mess where the value of a Number was checked to see if it was an integer or not).


I teach a series of classes about the web for designers, and this is a great start. It may not be perfect, but in terms of a basic intro to express common structures to anyone with a background in any other language (for example, my students all know php) it's a good summary, and an appropriate bare-bones jumping-off-point into more specific topics.


Good intro for a programmer who just happen to not know javascript.

This propertyMap-thing for objects is scary, though.


There's a special place in hell for people who still put opening curly brackets on the same line in 2011.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: