Skip to content
Welcome to Scrappy Academy
Latest commit 7fd9759 Oct 27, 2013 @jwieringa jwieringa Add link to using Rake commands with the DB
Added link to personal site until I find the time to get scrappy's site in order. πŸ˜„
Failed to load latest commit information.
README.md Add link to using Rake commands with the DB Oct 27, 2013

README.md

Overview

Welcome to the Scrappy Academy!

We're a Ruby (and Rails) self study group that meets weekly. Our goal is to expand our knowledge of the Ruby programming language; as well as dive into the Rails web framework now and then.

If you are interested in joining us we please reach out. Our contact information is below and we communicate heavily via the Google Group.

Join Us

Location: 1776
Time: Monday, 7:00pm - 8:30pm

We meet almost every Monday. Please check the Google groups for details.

Learning Ruby

Congrats! You've decided to learn Ruby. Yay! We think, like us, you'll fall in love with it and never want to give it up. The Ruby community has so many great resources for learning that sometimes it can be very overwhelming. Hopefully, this section can help you get started.

If you are new to Ruby, our suggested order for learning resources is:

  1. Try Ruby: Free codeschool course
  2. Ruby Monk: Free interactive online short courses
  3. Ruby Koans on github we highly recommend using this as a learning tool which you can work through as you learn the language via other resources
  4. Eloquent Ruby by Russ Olsen

The following are some additional resources we have found useful and recommend to new members.

TODO

[ ] Add books

[ ] Checklist of skills (find other git based programmer checklist)

In general, prag prog (http://pragprog.com) is a great resource (if you can spare the $$) for learning. If you are unsure of a book just ask. I'm sure someone has read (or will be reading it).

Note to New Members

By now I'm sure you're thinking:

This is great! It sure seems like a lot of information. I'm so excited to dive in. In fact, I'm going to get started right now.

Then after diving in a bit you may start thinking:

Gee. This really is so much to learn. 😰

πŸ˜• I keep forgetting things.

😭 I don't know anything. 😭

Maybe this isn't for me...

First, and most importantly take a deep breath. Please don't get discouraged. Learning to program is a long process. No one gets it overnight, or even in a week or month. You start picking more things up with practice. Overtime you get better. You re-learn lots of stuff (I always have the ruby docs open and re-read them daily); know that this is all part of the process.

If you ever feel this way, know that we all do. Even those of us who have been doing this a long time. If you find yourself in this situation, especially, if it is after 10 PM. Go do something else (like sleep 😴). Pick things up fresh tomorrow, or even in a few days. You'll feel better.

When you do come back, focus on one thing. Yep, just one thing. If you are still getting to understand some of the basic syntax, consider using Ruby (with irb or pry) as your calculator. If you are learning blocks, try to use blocks for everything. After a week or two (yeah it's perfectly alright to take your time) pick a new topic. Learn one topic at a time until you feel comfortable, then move forward. This is how the rest of us learn as well πŸ˜‰.

As you learn new topics, try applying the new concepts / syntaxes to your previous programs. See if you can make the code shorter. Can you make it more expressive? Does making it more expressive make it long? Does it make it more joyful to read?

Just keep coding 😣 (that's the persevere face, yeah...we don't get it either) and things will progress.

- The Scrappy Team :shipit:

Misc Tutorials

Podcasts

Learning Rails

A great Rails resource is http://railscasts.com/. Check out the Getting Started episode first.

Misc Tutorials

Git & GitHub

We're using github for all of our source code hosting. To get started and join the fun:

  1. Create a free github account
  2. Contact us and request to join the group

Tutorials & Books

Workflow Opinions

Our Workflow

Since the team is largely distributed and needs to work asynchronously, the GitHub workflow seems the best fit to meet these needs. The workflow boils down to:

  • Everyone has full access
  • Use the campfire chatroom
    • This provides a central location for communications
    • It serves as a living transcript of our process
  • Anyone can pull any story to work on
  • Pair programming is highly encouraged (thus multiple people can work on the same story)
  • Master is always deployable
  • Keep branches simple

This is the base foundation for shipping working software:

  1. Decide to work on something by checking Pivotal Tracker or a new idea you think would be awesome (put it into the tracker)
  2. Branch off master

     $ git checkout -b myfeature master
  3. Work

    • Regularly commit and push to the server

      $ git push origin myfeature
    • If you're not sure about a small chunk of code, create a gist then post it in campfire / google group. Or just open a Pull Request.
  4. Open a Pull Request**
  5. Merge with master after review and delete branch if it is done

    If working locally, merge with a no fast forward when possible:

     $ git checkout master
     Switched to branch 'master'
     $ git merge --no-ff myfeature
     Updating ea1b82a..05e9557
     (Summary of changes)
     $ git branch -d myfeature
     Deleted branch myfeature (was 05e9557).
     $ git push origin master
  6. Wait for Travis to report all tests pass
  7. Deploy immediately

If you run into conflicts while merging, try git mergetool (discussion). If you've setup a graphical diff tool, you'll be able to inspect conflicts and resolve them easily.

** "Pull requests are dicussions, that improve code quality" - Zach Holman How Github Works

While this frees up time from micromanaging, we are still learning, and want to learn together. So we will have code reviews (for now) before merging. The review process is simple:

  • Once you want something to go back into master submit a pull request
  • Email notifications will be sent, and messages added to campfire. As soon as a majority of people sign off on it (fun time to use Emoji you can merge
  • If there is something more, group feedback will be provided to help guide you; or we can submit it for a group pair session the following week
Something went wrong with that request. Please try again.