Hacker News new | past | comments | ask | show | jobs | submit login

I am no one's girlfriend, and I am stuck on lesson five :P

I think that if this is aimed at beginners it needs to be dumbed down more--I am a reasonably intelligent absolute beginner curious about coding and whether I'm interested in learning some, and in this lesson you have completely lost me; I no longer understand what I am doing or why, and I don't know how to proceed:

Everything we've talked about so far has one value. But what happens when you need to store an ordered list of values? You use a data structure known as an array.

The editor now has an array named numbers with the numbers 1, 4, and 6 (look at how we set the values). To access a particular value, you can use the name of the array and its position, or index (they start with 0). To get the number 4 from the array numbers, you would write numbers[1].

Try writing a line that will set the value of a variable called six to third number in the array.

I feel like there is not enough building on the previous lesson and not enough practice/repetition for me to get a toehold on what I'm doing/learning before moving on to the next thing. Here you have already moved me up to a level of abstraction where I cannot continue the exercise without seeking outside help (from Google, a book, a friend...).

And my hint is: To do this exercise, you have to declare a new variable (using var six =) and set it equal to the value of the array (done with numbers[2]). Remember: array indexes start at 0, not 1.

I'm totally lost. This hint is not helpful to me and there are no more hints. I'm stuck and can't continue within the lesson itself without more hints, exercises or explanation.

Also, I think this is brilliant <3. Keep going.




The way I would describe an array to a novice is that it's a more complex and potentially useful type of variable, similar to the ones you've been making so far, only instead of having a single "slot" for data, they are organized in a way that allows for multiple slots for information, and you can reference each slot by their position in the array, starting with position 0 (0, 1, 2, etc. describing the first, second and third. etc. positions in the array).

An array is a variable declared with square brackets around all the data, with a comma in between (delimiting) each positioned slot of data.

Example:

    var array = ["data1", "data2", "data3"]
In this case, we've created an array containing text strings. It could just as easily contain integers, or as you will see demonstrated a little later in the course, other variables, including other arrays.

Then, in order to retrieve or modify a piece of information from the array, you reference the array variable with the array position you want in square brackets.

Example: To get the "data1" string from the above array, use the variable like this:

    array[0]
To get an alert dialog with the "data2" string, the code would look like:

    alert(array[1])
You can easily modify a piece of data in the array using this technique. For example, to change the string "data3" in the array to "third", the code would be:

    array[2] = "third"
If you would like to add a new piece of data to the array, you could do the following:

    array[3] = "fourth"
Note that this would require that you know the size of the array and that the position [3] is an available slot. A simpler method of adding data to an array is to use the .push function as such:

    array.push("fourth")


I need some milk! Let me add that to my shopping array.

Back in the real world, I see non techies deal with lists every day. Ordered lists. Given a list, with numbers in the margin, they can easily answer "Who came first?" or "What's next on the list?", or "What's item 5 on the agenda".

But noooo. We have to call them arrays. Lists are something else. o_O

The way I would describe an array to a novice is that it's a more complex and potentially useful type of variable

Fuck me no!!!! Shut up Moss!


That's because arrays do get more complicated than flat lists like the example I gave above. You can actually have multiple organized data points in each position of the array as well, making arrays function more as a 2D relational database than as a flat list of data.

For example, I could make an address book array with multiple data points as such:

    var addressbook = [{"firstname": "John", "lastname": "Doe", "phone": "555-555-5555", "email": "johndoe@host.com"}, {"firstname": "Jane", "lastname": "Smith", "phone": "666-666-6666", "email": "janesmith@host.com"}]
Then, I can retrieve a piece of information like Jane's phone number like this:

    var janesnumber = addressbook[1].phone
Arrays are very powerful tools, especially once you start referencing other arrays in them, as it allows complex organization of data without always needing to resort to a database solution, with a whole new language to learn.


Thanks so much for the feedback. This lesson needs some improvements and we'll be shaping it up over the next few days.


Judging by the text of the hint you gave us, I believe it's trying to make you type:

   var six = numbers[2]
I am not sure where the hangup is, considering I just copy-pasted that from two parts of the hint. Have they described arrays to you yet? Perhaps the problem is that they insufficiently described what an array was and what it did? I have not tried to use the site, so I'm not sure.


Yes. This is the problem for me. The only description of arrays is what I've pasted above from the lesson. I'd never heard of them before and all I currently know about them is that I will use them when I "need to store an ordered list of values."

I'm not sure how much I need to know or understand about them at this point, either--I speak some human languages that are not my native tongue and I was very lost when I first began learning them and relied heavily on memorization. What I need is just to be able to follow along well enough to produce an answer and for there to be enough repetition and regurgitation that things start to gel if I keep it up.

This wasn't clear enough for me to be able to continue with the lesson; I was literally stuck since there weren't any more hints or resources (though I have since downloaded an e-book ;). Perhaps it would be good for there to be a cheat revealing the answer and additional problems that appear whether or not you fail the first time.

This format is excellent and the site looks great. More coddling, please!


I see what you're saying. The analogy I would use is a numbered list in a word processor.

That got me thinking, just about every intro to programming book I've seen explains arrays with a picture. I then thought to do a Google image search for JavaScript array and found this:

http://www.webreference.com/programming/javascript/diaries/1...

Would that have helped? (I also wonder if that's a good tutorial as well.)

It seems the focus at Code Academy is on doing, which is fantastic, but more (any?) images will help get the point across faster, esp. for visual thinkers (like designers, who are the perfect audience for learning JavaScript).




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

Search: