/ruby_kickstart

Makers pre-course: Ruby practice

Primary LanguageRubyMIT LicenseMIT

Welcome to RubyKickstart!

RubyKickstart is an interactive guide to learning the Ruby programming language.

**Disclaimer - this is a shameless continuation of the original Ruby Kickstart by Josh Peek. I have no intention of reinventing the wheel, and I gladly stand on the shoulder of giants :)

How you should use this

You should fork this repo and download the files and folders to your computer.

The course consists of six sessions, all of which have common features:

Notes

Each session has a set of notes files, which are just simple Ruby programs that are heavily commented to walk you through the material of that session. You should go through this section first.

The first item in each section has a link to a video that you should watch as you go along. The notes are synched with the videos - try to keep up, and add your own notes for clarification wherever you need it.

Examples

Examples are sparse, to say the least. They're full Ruby programs that demonstrate the material taught in the notes.

You can run them on your own machine, and modify them to experiment with the ideas they demonstrate.

Once you've gone through the notes for a section, have a look and a play with the examples to check you fully understand what's going on.

PLEASE BE ENCOURAGED TO ADD AS MANY EXAMPLES AS YOU CAN AND MAKE A PULL REQUEST!!

Challenges

Challenges are found in each session, and you should try to tackle all of them BEFORE looking at any of the solutions. They provide fun programming exercises for you to work through, so you have something to work on that checks and develops your understanding of the session's information.

Challenges are taken from a few different places. Several are taken from different books, including the third edition of Absolute Java by Walter Savitch, and one was taken from Learn to Program by Chris Pine, a book to teach programming to absolute beginners, using Ruby.

The rest were spawned out of the brain of Mr Peek himsef.

Don't forget to run "rack session_number:challenge_number" as you go along for feedback on whether your solutions are correct, and once you've got all your tests passing, you can compare your solution to the solutions in the 'solved' section (next)

If you have suggestions for further challenges, please create them and MAKE A PULL REQUEST!! :)

FYI - when you solve a challenge, please move your solution into the relevant file in the 'solved' directory and make a pull request. I would like to keep the challenges empty so future students don't immediately see the solutions... And remember to do 'git pull' before you add your solution, so I don't have to spend my life fixing merge conflicts :)

Solved & Specs

Along with challenges, each session provides solutions to its challenges and a suite of automated tests you can use to test the correctness of your solutions.

Feel free to add your own alternative/improved solutions in this section and make a pull request to me. It would be cool to have dozens of solutions in every section so people can analyze all the different ways you can solve a problem and learn from them.

Cheatsheets

Although not part of the sessions, RubyKickstart has a number of cheatsheets which contain all the syntax for various topics. Some of the material in the cheatsheets is not covered in the notes or examples for sessions, so make sure you check out the cheatsheets before diving into the challenges.

It might also be worth printing out the cheatsheets and sticking them on your wall, or turning them into Anki / Memrise / Quizlet decks - if you do this, be sure to share the link with us so we can let all our students use them!

Sessions Overview

  • 1
    • Introduction
    • Arithmetic
    • Logic
    • String
    • Basic IO
  • 2
    • Arrays
    • Basic Classes
    • Singleton Classes
  • 3
    • Symbols
    • Hashes
    • Blocks / Procs
    • Method Parameters
  • 4
    • Boolean Return Values
    • Introspection / Reflection
    • Ranges
    • Simple File IO
    • Inheritance
    • Exceptions
  • 5
    • Modules
    • Regular Expressions
    • Ruby gems
  • 6
    • The Web
    • Sinatra
    • ERB
    • Rack
    • Git
    • Heroku

What you'll need to use it

To use RubyKickstart, you'll need several tools:

  • Ruby the happy programming language :)
  • Rake version 0.8.7+ see if you have it by typing "gem list" at the command line, we use it to apply the tests
  • RSpec version 2.0+ currently we use this for testing
  • git lets you download our changes without overwriting your work. Good installation instructions at (http://help.github.com/git-installation-redirect)
  • A text editor Our Recommendations:
    • Windows: SciTE should come with the one click installer
    • Linux: SciTE also works great on linux :)
    • Mac: Sublime Text 2 or Atom. Atom works straight away with Terminal and is growing in popularity. Sublime Text will need you to setup env variables to launch projects using the subl command.

Age

This is several years old now, but it was updated to RSpec 3 and cleaned it up a lot in December 2014. Everything should still work fine and be applicable.

There is now a Gemfile in the root, you can ignore it, it's mostly for letting me know what versions I last checked it against.

Quizzes

There used to be quizzes that were placed at the end of each section, and could be used to check that you'd retained all the information you'd just been taught. They're gone now... While I'll try to create them in the near future, if you fancy the challenge, feel free to jump in and make them on Memrise/Quizlet and send a link to jordan@makersacademy.com

That's it - enjoy the walkthrough!