Ruby on Rails Engineering

The Iron Yard Austin

View the Project on GitHub

Welcome

I hope you all are as excited as I am about getting this class started. It is in the best interest of everyone to make sure you are as prepared as possible for the coming twelve weeks. Through large amounts of hard work and determination, you will learn, grow, and achieve.

Remember, we are all in this together. We will have individual assignments and group assignments. Always be willing and ready to help your peers.

Thank you for your commitment and hard work. It will be rewarded.

There are quite a few tasks and topics that are necessary to take care of before we can actually start learning how to be Ruby and Rails developers. Rather than using class time to get through these, I expect that you can accomplish and learn these things without assistance so that we can spend class time only on those things that are difficult to learn on your own. If you have any questions or confusion about these tasks, please email me so I can help you work through them.

Objectives

The following are the learning objectives for this prework, all of which are important requirements expected of a professional developer. Though they are not technically “programming” skills, they are crucially important to success both during the class and on the job.

  1. Be able to communicate technical accomplishments and struggles in writing.
  2. Be able to learn in contexts that aren’t necessarily suited to your primary learning style.
  3. Adapt to the workflows used by professional developers (using the command line in particular)
  4. Describe the importance of mindset on learning and be able to analyze one’s own type of mindset.

Mindset

  1. Read all of the Class Policies and the Code of Conduct
  2. Read Fixed vs. Growth: The Two Basic Mindsets That Shape Our Lives
  3. Compose an email to me (justin@theironyard.com) answering the following questions:
  4. What aspects of the Growth and Fixed mindset can you identify in your personal history? In what areas do you feel Fixed? Where do you see the most Growth?
  5. What difficulties do you predict that you will encounter during our course? How have you reacted to similar situations in the past? How do you plan on reacting to these situations during the class?

Computer Setup

Install OSX Yosemite, if you haven’t already

  1. You'll need to sign in to the Mac App Store with your Apple ID. If you don't have one, sign up here.
  2. Download the Yosemite upgrade from the Apple Store: download here.
  3. Double-click "Install OS X Yosemite” to begin installation. WARNING: The OS X upgrade can take a bit of time to complete and will require a restart. Plan on doing this in the evening or over a weekend.

Additional Software

The Command Line

The command line is an interface to the internals of your computer, as opposed to the graphical user interface (GUI) that we commonly use. We will be using the command line extensively in our class, but the point of this prework is not to be an expert, just to start to get comfortable.

Especially if you’ve never used the command line before, you may want to go through these more than once. Make sure not just to read/watch, but really dive in and use the commands that you learn about.

  1. Read http://skillcrush.com/2012/12/03/command-line-2/
  2. http://blog.teamtreehouse.com/command-line-basics
  3. http://cli.learncodethehardway.org/book/
  4. Read and practice with A Command Line Primer for Beginners

Git

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

It is a command line tool that we will be using for every project we do in class. Again, the objective is not to become an expert before the class, but just to start to get comfortable.

Supplemental

If you want to spend some more time with git, Git immersion is a great resource.

GitHub

GitHub is a web-based hosting and communication service for software development projects that uses the Git revision control system.

  1. Sign up for a GitHub account at https://github.com/
  2. Make sure to add a profile picture and your full name, since this will help me learn your name.
  3. Email me (justin@theironyard.com) the username you choose so that I can get you added to the group we'll be using for class.
  4. Complete https://try.github.io/

Supplemental

Check out the GitHub Guides if you want to learn how to use GitHub prior to class.

Ruby

If you haven’t completed it already, Codecademy has a Ruby course that you should walk through to familiarize yourself with the concepts.

(If you are having trouble finishing the ruby course, move on and finish all the other pieces of prework and come back to this one last. It will take up the most time.)

http://www.codecademy.com/en/tracks/ruby

Supplemental

HTML/CSS will be covered in the course, but not to the same depth as Ruby and Rails, so it would benefit you extremely to be familiar with building websites.

http://www.codecademy.com/en/tracks/web

Typing

Believe it or not, a lot of time in the life of a programmer is spent fixing simple typing errors. It would not be ridiculous to suggest that many of you will spend 12-24 hours (or more) fixing typing errors during class.

If you don't know how to touch type (i.e. type without looking at the keyboard), try to spend some time each day working on touch typing (you can try http://www.keybr.com/). If you already know how to touch type, I would highly recommend working through the JavaScript lessons on http://typing.io. Typing for programming is actually a good bit different than everyday typing, so getting some practice in could potentially save you a ton of time the first few weeks of class.