From context (for example the fact that you are using the .each method), the instructions made it rather clear that the lesson is asking you to name the current item being processed as s, then use that value in your code.
Also, the code makes it easier for learners to understand what code they need to write, instead of the lesson prompting them to figure it out themselves. I suppose that plain statements meaning “make it do this” would be fine for later lessons, but it does help introduce the concept and how to do things in this lesson.
I couldn’t figure out why my code wasn’t working so I reset the entire exercise and got the solution. Even the Codecademy code got the exact same error as many others have (myself included):
To throw my two cents into the do vs. { } debate… I remember in something else I was reading about Ruby… the do syntax is for when you know you’re going take up multiple lines and { } is for when its a one liner kind of deal. At the end of the day we all have different speech patterns right? For Example: the Do is maybe : Please give me some orange juice and the { } is OJ Please.
I am getting more frustrated with the instructions in the exercises as I progress through this course. I rack my head over some problem, and once I look at the solution realise they were asking for something else and worded things in a weird way.
The easiest way to deal with frustration is to ask questions rather than gripe about the deficiencies of the course. As we’ve witnessed in this thread, once we learn to see things in a different way (other than the way we expect to see them) then clarity ensues. Keep an open mind and be responsible, thereby learning to be responsive and accepting of alternative ideas and solutions.
It looks like puts and print call the to_s method on the symbol, rendering it as string data. Can’t really explain it, but if you push the symbol to the symbols array, and print it, you’ll see it is definitely made into a symbol.