An incomplete list of what's missing:
- Check and re-think the order of topics. Some are Ruby language basics, some are tips and advice about tooling, searching, and general reflections on programming. We used about the same order of language basics, but then just anecdotally threw in other topics. I'm not sure how to best structure this in a book-style online resource.
- Add more exercises, link to additional external exercises.
- Add more topics that walk through the rest of the beginners curriculum, like writing to a file, using ERB to render a static HTML file, basics of HTTP, and building a Sinatra app that serves the same HTML.
- Add a chapter about Ruby (e.g. optimized for happiness)
- Add editor tips (shortcuts, syntax highlighting)
- Add most common exception messages
- Add a chapter about testing
Notes:
- Mention comments
- Mention omitting curly braces for hashes on method calls
- Bonus: calling methods is also referred as "sending messages", the method
send
- Bonus: default arguments
- Bonus: splat operator for assignment and arguments
Preface: Explain how the curriculum works (major milestones). Explain in more detail that everyone's supposed to go at their own pace, and not doing homework is completely acceptable.
If local scopes are like rooms in a house, then instance variables are visible in every room in the house.
In the chapter 02-creation talk about:
- Writing code is creative. It is close to art, design, architecture and philosophy.
- Heidegger: "language is the house of being"
- all you need is a computer, internet connection and time
- Building fun applications, or useful little tools (Debbie's lunch roulette)
I believe people want to express themselves when they program. They don’t want to fight with the language. Programming languages must feel natural to programmers. I tried to make people enjoy programming and concentrate on the fun and creative part of programming when they use Ruby. - Yukihiro Matsumoto http://www.linuxdevcenter.com/pub/a/linux/2001/11/29/ruby.html
Recommend to never copy and paste code, instead type it, and format it well.
Move "String interpolation" up