Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
166 lines (112 sloc) 9 KB

#Week 1


  • Group warmup
  • Introductions
  • Overview the class
    • Syllabus
    • Calendar
    • Office Hours
    • Communication commitments
  • Overview Web Application
  • Introduce Git version control
  • Install Ruby tools
    • Package manager for your OS
    • RVM
    • Ruby
    • Git
    • Sublime Text
  • Participate in the local community
    • First community meetup
    • Community online tools
      • Google Community
      • Google Hangouts
      • IRC
  • Watch introductory Ruby videos from
  • Watch introductory git videos from
  • Complete interactive Ruby exercises from CodeAcademy


  1. Watch the following Ruby Foundations Deep Dive screencasts on Treehouse. Please complete all the badges up to and including hashes.

    • Ruby Basics
    • Objects Classes and Variables
    • Strings
    • Numbers
    • Arrays
    • Hashes

    If you have watched these in the past, please be prepared to discuss the material next Monday night.

  2. Do the first four lessons in the Code Academy Ruby Track.

    • Introduction to Ruby
    • Putting the Form in Formatter
    • Control Flow in Ruby
    • Thith Meanth War!
  3. Watch the following Git Basics screencasts on Treehouse.

    • Why Version Control Matters
    • Getting Started with Git
    • Working with Remote Repositories

    If you have watched these in the past, please be prepared to discuss the material next Monday night. Since you all have github accounts, we're going to move quickly through the basics.

  4. (Optional) Watch the following Console Foundations screencasts on Treehouse if you haven't done much command line work (or if you'd like a review).

    • Getting Started with the Console
  5. Set up your machine with the recommended Ruby development tools.

    We recommend that you do this in pairs on a class night or during office hours.

    1. Install the package manager for your OS. For OSX, we recommend Homebrew. There's a introductory screencast available Note: You don't have to use our recommended tools. However, the rest of the course assumes the use of recommended tools.

    2. Install git. (Optional: install a git GUI client.)

    3. Install RVM. There's a introductory screencast available. We will use RVM to switch Ruby versions, but not to manage gem sets. We'll use the Bundler gem on a per-project basis for gem management.

    4. Use RVM to make sure you can run both Ruby 1.9.3 (latest patch) and Ruby 2.0.0. We will use both. Some time this quarter, we may also use Ruby 2.1.0

    5. Install Sublime Text. This is a paid software product that has an indefinite free trial. You should plan on paying for it as soon as you have a developer job.

  6. Connect up to the community

    1. Attend the Portland Ruby Brigade meeting
    2. Install an IRC client and visit the #portlandcodeschool channel. Say hi to "Auraelius" (me).
    3. Join the Google+ Portland Code School Community, and add your contact information to Shawna's Google Doc. If you didn't get an invitation, contact Cris Kelly.
  7. Prepare a Lightning talk for next Monday's class. This is a 5 minute talk about anything that means something to you. Your goal is to teach the class something new. Any topic is OK, you just need to care about what you are teaching us.

Assignment assessment

Next Monday, you will:

  1. Have a 1-on-1 with your instructor on your machine. You will show the instructor:

    • Your Treehouse badges
    • Your Code Academy progress
    • Your Ruby environment (RVM, Ruby, git, Sublime Text)
    • Your IRC client
  2. Deliver your lightening talk to the class

Community Activity

We encourage all students to participate in the local technical community. This week is the first week of the month, so that means the Portland Ruby Brigade is meeting. We request all students to attend the Ruby Brigade meeting on Tuesday.

Every Tuesday evening there is some Ruby event in Portland.

  • Portland Ruby Brigade - a technical session with very experienced Ruby and Rails developers giving talks. Some times it's pretty deep, but it's always a good place to connect with other developers. They always adjourn to a nearby pub afterwards to have more social time. Fun!

  • Hack & Help - a session where people get together and code. There are always people who are starting out as well as experienced people who are ready to help. A great environment for learning. Not just for Ruby. You should plan on going every week. Consider it like office hours.

  • Ruby Beginners - a session for people like us are learning Ruby. Later in the 12 week period, you will be leading this session.


You can see all the upcoming events by tuning in to Calagator

Community online tools

Mailing lists (Google Groups)

Join these lists!

Google Community

As part of something new, we are establishing a Google+ "Community" just for Portland Code School. We'd appreciate your participation to see if this is something worthwhile. Unlike FaceBook, Google+ is used by technology professionals to network.

Realtime video & desktop sharing: Hangouts, Skype

  • Google+ Hangouts - Multiway video and desktop sharing
  • Skype - 1 on 1 video and desktop sharing.

There's aren't any regularly scheduled hangouts, yet, so contact the person you want to connect with ahead of time.

Realtime chat: IRC

Many developers and all sorts of other people hang out on IRC. It's great for semi-anonymous, real-time communication. Many gems and other applications have IRC channels where the authors are willing to answer questions. It's really a developer's paradise.

There are several command-line clients worth investigating. On the Mac, Colloqy ( is a good choice while Adium ( is a great multi-modal chat client.

Portland Code School has a student channel on called "#portlandcodeschool" that you should check out. Instructors and former students also hangout there.

The Portland Ruby Brigade is on the "#pdxruby" channel and those folks are always helpful.

Like any group or society, IRC has its own norms of interaction. As with any communication situation, it's worth your time to learn how to behave "when in Rome." For an introduction on IRC, see


Additional resources


As you can tell, this course emphasizes online resources. If you'd like to read a book on these many subjects, there are many available. Here are a few (available in paper, EPUB, and MOBI formats):

  • The Pickaxe Book - the original and definitive guide to the Ruby Language (although not the only one).
  • Learn to Program - Recommended for people who have never coded in any language before. You should also check out other titles in the Pragmatic Programmers Ruby and Rails Series
  • Eloquent Ruby - a good introduction to idiomatic Ruby

You'll notice that this last link is to Safari Books Online. I've been a subscriber for over ten years. In the good times, enlightened employers paid for the subscription. As a freelancer, I pay for it myself and consider it an excellent investment. The best thing about this service is that you can search for a particular topic and, within a few minutes, read about it in several different textbooks and watch a bunch of experts on video. You should definitely consider it once you have some cash flow.