Skip to content

Instantly share code, notes, and snippets.

@dustinbrownman
Last active August 29, 2015 14:01
Show Gist options
  • Select an option

  • Save dustinbrownman/9476d13edf33e93124e5 to your computer and use it in GitHub Desktop.

Select an option

Save dustinbrownman/9476d13edf33e93124e5 to your computer and use it in GitHub Desktop.

Unit 1: BDD with JavaScript

BDD, Mocha, Chai, Branching, Looping, Callbacks, Basic Git, jQuery, Using objects to store info.

Methods:

  • if / else if / else
  • for loop
  • parseInt()
  • forEach()
  • split()
  • join()
  • push()
  • pop()
  • slice()
  • concat() / +
  • indexOf()
  • some()

###jQuery:

  • select elements on a page
  • event listeners
  • hide / show / toggle / append / prepend / text / first
  • preventDefault()
  • this
  • manipulation & traversal
  • simple effects

###Git:

  • git config / pairs
  • git remote (concept)
  • git init
  • git add .
  • git status
  • git commit -m '...'
  • git push

Exercises:

####Generic:

  • Write a function using BDD. It should include looping (using for or forEach()) and branching (if, else).
  • Create an HTML form that pops up an alert when submitted.
  • Initialize, commit, and push a new Git repsitory.

####Specific:

  • Create a webpage that allows a user to enter a paragraph of text to find out the word count.
  • Add a second field that would allow users to enter a word and get the count of how many times that word appears in the provided paragraph.
  • Make the word finding feature case-insensitive.

Unit 2: OOP with JavaScript

Object properties, Object methods, This, Prototypes & Instances

Concepts:

  • properties vs methods
  • prototype objects
  • object instances
  • this (!!!)
  • create()
  • initialize()
  • isPrototypeOf()

Exercises:

####Generic:

  • Create two prototype objects that have create() and initialize() methods and an all property that holds all instances of that prototype. Create instances of each prototype and add properties to each.
  • Build a simple game using OO and BDD. Make a webpage so people can play!

####Specific

  • Using BDD and objects, create the logic for a to-do list with support for multiple lists, and the ability to add/remove tasks from the list.
  • Make a webpage that allows users to add new lists and add/remove tasks from lists. Spend some time making it look nice!
  • Notify the user with an alert when there are no tasks left in a list.
  • Display the total amount of tasks / lists in the top-right corner.

Unit 3: BDD with Ruby

Rspec, Ruby Syntax, IRB, Gems, Cool Ruby methods

Methods:

  • between?, even?
  • to_s, to_i
  • inject
  • any?, all?, include?, nil?
  • select, reject, detect
  • ranges (0..5)
  • each, each_with_index,
  • not relying on for / while / until
  • hashes
  • (make a gem?)

###More Git:

  • git clone
  • git pull
  • git checkout
  • git reset
  • git log
  • git diff

Exercises:

####Generic:

  • Write some basic methods with Ruby Sytanx in IRB.
  • Write a function that incorporates some of the newer methods available in Ruby.
  • Using the command-line, create a basic interface to allow users to input data for your function and view the return.
  • Git: Clone a repository to your local machine. Make changes then roll back to the last commit. Pull changes from your remote respository.

####Specifc:

  • Create a command-line interface which allows users to input a string of text and returns a hash with the word as the key and its length as the value.
  • Remove commas and periods using regex.
  • Use the reject method to exclude words that have more than 1 vowel.

Unit 4: OOP with Ruby

Classes, Ruby Objects, Instance Variables, Class Methods, Class Variables

Concepts:

  • Ruby Objects vs JS Objects
  • .methods, .class, .new
  • self
  • initialize
  • attr_reader, attr_accessor (don’t use)
  • shovel (<<)
  • debugging: p / puts, binding.pry
  • initializing with hashes

Exercises:

####Generic:

  • Create a class that takes a hash to initialize and saves the values to properties. Create 2 additional methods and another class.
  • Create a command-line interface that allows a user to interact (create new instances, list, etc.) with your classes.

####Specific:

  • Create an app to manage the inventory of a car dealership. Using the command-line, users should be able to add a new car (brand, model, year, purchase price), list all cars, remove a car and search by make or model.
  • Make a method that automatically sets a Sale Price by adding 20% to the purchase price.
  • Add an option to sort inventory by year, make, model or sale price.

Unit 5: Database Basics

SQL, Database Relations, Postgres, Schema's, User Stories

Concepts:

  • one-to-many
  • many-to-many
  • one-to-one
  • join tables
  • db's, tables, columns, entries (rows)
  • SQL Commands
  • Data types
  • CRUD Methods (manual)
  • spec_helper

###Advanced:

  • join queries

Exercises:

####Generic:

  • Write a command-line program that is backed by a database. Include a one-to-many relationship and a many-to-many relationship.

Unit 6: DB with ActiveRecord

Inhertance, ActiveRecord, Rake, Migrations, Bundler

Concepts:

  • ActiveRecord Associations
  • ActiveRecord Queries
  • AR Validations
  • AR Callbacks
  • Writing Migrations (clarify def up/down)
  • find / find_by
  • ActiveRecord shovel (<<)
  • Gemfile

###Advanced:

  • scopes

Exercises:

####Generic:

  • Write a command-line program using ActiveRecord. Include has_many, belongs_to and has_many_through associations and validations. Use shoulda-matchers for testing.
  • Make use of the find or find_by ActiveRecord methods.

Unit 7: Rails Basics

HTTP, MVC, Rails, ERB

Concepts:

  • HTTP Requests (methods, path, headers, body)
  • GET, POST, PUT/PATCH, DELETE
  • HTTP Responses (Status, headers, body)
  • Routes, controllers, views
  • Params
  • Forms
  • Heroku
  • Redirecting
  • Using dropdown menus
  • Flash
  • Partials
  • Asset pipeline
  • Nested routes

###Advanced:

  • Sass

###General Exercise:

  • Make a rails app with at least 3 models. Users should able to CRUD. Make sure to display error and success messages.

###Exercises:

####Generic:

  • Build a basic CRUD/L app that includes: flash messages, partials and some css styling.

####Specific:

  • Create an app to keep track of the movies you've watched. Allow users to add a movie with a title, year and genre.
  • Deploy it to Heroku.

Unit 8: Conventional Rails

Helper methods, Security in Rails, Integration testing, Images

Concepts:

  • Resources (routes)
  • Link helpers, Form helpers
  • CSRF, Mass Assignment, Cross-site scripting, SQL Injection
  • Using checkboxes for HABTM
  • FactoryGirl
  • CapyBara
  • Authentication from scratch
  • Upload images (Paperclip)

###Advanced:

  • Polymorphism
  • Parse CSV files
  • PORO
  • Nested Attributes

Exercises:

####Generic:

  • Build a Rails app using strong params and conventional rails methods (helpers).
  • Use Capybara and FactoryGirl for integration testing.
  • Include User Authentication

####Specific:

  • Update your movie app to make use of rails helper methods (link_to, form_for, route helpers).

  • Add abiltiy to upload an image with your movie.

  • Add title search and soriting by genre or year.

  • Add integration tests using Capybara and FactoryGirl.

Unit 9: AJAX with Rails

AJAX, Emails, Devise, CanCan, JS Testing

Concepts:

  • AJAX with Rails
  • Understanding asynchronous
  • Exposure to popular gems

Exercises:

####Generic:

  • Write a Rails app that uses AJAX for creating, updating, and destroying a model.
  • Bonus points for using accepts_nested_attributes with AJAX.

Unit 10: APIs

Concepts:

  • Connecting with 3rd party web service APIs
  • Building a Rails API

Exercises:

  • Build an app that uses a third-party API
  • Create a Rails API app that responds with JSON

Not sure what to do about these weeks...

Unit 11: Ember

Ember flow, Connecting with rails backend

Concepts:

  • Router and Routes
  • Controllers and Templates
  • ActiveModel adapter

Unit 12: Ember, cont’d

Ember views, Standalone ember app, Connecting with 3rd party APIs

Concepts:

  • Nested routes ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment