Course Introduction

Full Stack Web WEBD-2007

Red River College

This Course

Cat

You are like an experiment and so is this course. :)

In this course I hope to expose you to:

  • The Ruby Programming Language
  • The Rails Web Programming Framework
  • The Git Source Control Tool
  • Web Server Configuration & Deployment
  • Pair Programming
  • CSS Frameworks & Tooling
  • Containerization (Docker)
  • Front-End Javascript Frameworks
  • Moar!

Why Ruby?

Ruby_makes_me_happy
  • Dynamic interpreted languages are gaining popularity (Perl, Python, Javascript, Lua, &c).
  • Ruby is free (with a very open license for program distribution)
  • Strong programming community (good tutorials, example code, forums, &c)

Ruby Design Principles

  • Principle of Least Surprise
  • Principle of Succinctness (a.k.a. Principle of Least Effort)
  • Write more understandable code in less lines
  • Less code means less bugs
  • The quicker we program, the more we accomplish

Resources

Why Rails?

Ruby_rails
  • Model View Controller (MVC) is becoming the defacto standard for coding web apps.
  • Rails code is very DRY (With Rails you Don’t Repeat Yourself)
  • Convention over Configuration (Sane defaults but still customizable)
  • Open Source with over 3,500 contributors.

Careful! The Rails framework is ‘opinionated’ meaning that it tries to steer you to code in the ‘Rails Way’. If your program becomes overly complex or bogged-down in details, you have drifted from the ‘Rails Way’.

Who's Using Rails

Rubyrails

You’ve probably heard of many of the applications that were built with Ruby on Rails:

Education, Learning and Responsibility

Understanding-the-brain

“Education is an admirable thing, but it is well to remember from time to time that nothing that is worth knowing can be taught.” – Oscar Wilde

Understanding Requires Action

If you find yourself falling behind in your understanding of the course material please contact me, or ask a classmate for help. Remember that you reap what you sow. If you put minimal effort into this course you will get very little out of it. This means:

  • Reading all assigned reading materials.
  • Completing (and understanding) all challenges.
  • Mastering the Rails / Ruby documentation.
  • Typing out Code (No Copypasta)
  • Experimentation is better than Stack Overflow and Google-coding
  • Permission for Failure / Learning from Mistakes