קורס רובי און ריילס: קורס יסודות - RoR Foundations

קורס יסודות - RoR Foundations

The course will meet 6 times, 8 hours each, once a week on thursday's from 9:00 - 17:00, totaling 48 hours.

Basic information

Description:

This is a course designed for experienced programmers who are new to the Ruby language, and who are new to Web development. Participants will learn how to program in Ruby and how to develop Web applications using the Ruby on Rails framework. The course will conclude with a personal project that will give participants a chance to use what they have learned on a small application that is of personal interest to them.

Prerequisites:

Participants are expected to have a background in object-oriented programming, preferably with a dynamic language such as Perl, Python, PHP, or JavaScript. Participants will use their own computers; while it is possible to use Windows, it will be easier for those who use Macintosh- or Linux-based machines.

Technology:

The course will use Ruby 1.9 and Rails 3.2, the latest versions of both technologies.

  • Day 1: Introduction to Ruby
    • 2.1 The basics
      • 2.1.1 Installing Ruby
      • 2.1.2 Versions of Ruby
      • 2.1.3 irb, running from files
    • 2.2 Data types
      • 2.2.1 nil
      • 2.2.2 Booleans
      • 2.2.3 Numbers
      • 2.2.4 Strings
      • 2.2.5 Symbols
      • 2.2.6 Arrays
      • 2.2.7 Hashes
      • 2.2.8 Sequences
      • 2.2.9 Conditions
      • 2.2.10 Loops
      • 2.2.11 Blocks
    • 2.3 Casting from type to type
    • 2.4 Collections
      • 2.4.1 sorting
      • 2.4.2 collect, reject, detect, select, inject
      • 2.4.3 Complex data structures
    • 2.5 Files

  • Day 2: Objects in Ruby
    • 3.1 Methods
      • 3.1.1 Defining
      • 3.1.2 Parameters
      • 3.1.3 Block parameters and yield
      • 3.1.4 Invoking
    • 3.2 Objects
      • 3.2.1 What's an object?
      • 3.2.2 Methods (revisited)
      • 3.2.3 Singleton methods
      • 3.2.4 Introspection
      • 3.2.5 Classes
      • 3.2.6 Instances
      • 3.2.7 Instance methods
      • 3.2.8 Instance variables
      • 3.2.9 Attributes
      • 3.2.10 Inheritance
      • 3.2.11 Public, private, and protected
      • 3.2.12 Class variables
      • 3.2.13 Class methods
      • 3.2.14 Singleton classes
      • 3.2.15 Inheritance and singleton classes
      • 3.2.16 Duck typing
    • 3.3 Modules
      • 3.3.1 Namespaces
      • 3.3.2 Module methods
      • 3.3.3 Modules as mixins
      • 3.3.4 Enumerable
      • 3.3.5 include vs. extend
      • 3.3.6 Modules and inheritance
    • 3.4 External libraries
      • 3.4.1 require
      • 3.4.2 Using Ruby gems
      • 3.4.3 Creating Ruby gems

  • Day 3: Introduction to Ruby on Rails
    • 4.1 Basics of Web development
      • 4.1.1 HTTP, URLs, and HTML
      • 4.1.2 Web development without Rails
    • 4.2 Rails
      • 4.2.1 History, philosophy
      • 4.2.2 MVC
      • 4.2.3 Structure and conventions
    • 4.3 Controllers
      • 4.3.1 Rendering text
      • 4.3.2 Rendering HTML
    • 4.4 Views
      • 4.4.1 ERb
      • 4.4.2 Variable-passing from controllers
      • 4.4.3 Partials
      • 4.4.4 Avoiding code in views
      • 4.4.5 Helpers
    • 4.5 Databases
      • 4.5.1 Why databases?
      • 4.5.2 SQL vs. NoSQL
      • 4.5.3 Introduction to PostgreSQL
      • 4.5.4 ORMs
      • 4.5.5 ActiveRecord
      • 4.5.6 SQL vs. objects
    • 4.6 Models with ActiveRecord
      • 4.6.1 Configuration
      • 4.6.2 Migrations
      • 4.6.3 Validations
      • 4.6.4 Basic operations – find, save, updateattributes
      • 4.6.5 Dynamic finders
    • 4.7 Generators and scaffolding
      • 4.7.1 Generators
      • 4.7.2 Scaffolds
    • 4.8 Deployment
      • 4.8.1 Heroku
      • 4.8.2 Other environments

  • Day 4: Intermediate Rails
    • 5.1 Environments
    • 5.2 Using the console
    • 5.3 Active Support
    • 5.4 Controllers
      • 5.4.1 Routes
      • 5.4.2 Filters
      • 5.4.3 redirecting
      • 5.4.4 handling errors
    • 5.5 ActiveRecord
      • 5.5.1 Associations
      • 5.5.2 Scopes
      • 5.5.3 Chaining
      • 5.5.4 Callbacks
    • 5.6 Views
      • 5.6.1 Built-in helpers
      • 5.6.2 Writing helpers
    • 5.7 Identifying problems

  • Day 5: Testing, static assets, and JavaScript
    • 6.1 Testing
      • 6.1.1 test/unit
      • 6.1.2 unit, functional, and integration tests
      • 6.1.3 test coverage
      • 6.1.4 test strategies
      • 6.1.5 mocking and stubbing
      • 6.1.6 TDD
    • 6.2 Static assets
      • 6.2.1 Images
      • 6.2.2 CSS
      • 6.2.3 The asset pipeline
    • 6.3 JavaScript
      • 6.3.1 Language basics
      • 6.3.2 jQuery basics
      • 6.3.3 Manipulating the DOM
      • 6.3.4 Rails integration
      • 6.3.5 Built-in Rails helpers
      • 6.3.6 Ajax
      • 6.3.7 CoffeeScript

  • Day 6: Administration, miscellaneous topics, and personal projects
    • 7.1 Rake tasks
    • 7.2 Logging
    • 7.3 Performance tracking and optimization
    • 7.4 Personal projects


Day 6: Personal Projects!

Everyone will work on a project of their choice, in Rails. (It can be relevant to their own company or organization, or it can be something they’re doing for fun.) Participants are encouraged to work in pairs. At the end of the day, we’ll take time for everyone to show off what they've done. This is probably the most important day, educationally, because it allows everyone to put what they’re learned into practice.