Skip to content

Instantly share code, notes, and snippets.

@robbiejaeger
robbiejaeger / rj-prework.md
Last active March 18, 2016 21:34 — forked from mbburch/prework.md
Robbie Jaeger's Turing pre-work Gist

Turing School Prework - Robbie Jaeger

Task A- Practice Typing:

  • screenshots of scores will be posted in comments

Task B- Algorithmic Thinking & Logic:

  • screenshots of completed sections will be posted in comments

Task C- Create your Gist:

  • Completed
  • What do you know about modules already? If little, what would you guess modules are all about?
    • Only that they create a "container" for a group of classes. It is a way to have classes with the same name not interfere (different namespaces?...)
  • Golf and basketball both use a ball. But if you're on a basketball court and ask for "the ball," no one is going to throw you a golf ball. Why? If you were as dumb as a computer, why would a golfd ball be an acceptable response?
    • In the game, you have context of the game being played. The computer doesn't have the context.
  • You've learned about the object model and method lookups. What would the imapct be of injecting an additional ancestor into a class' lookup chain?
  • Another scope level?
  1. Define CRUD.
  • Create, Read, Update, and Delete. This methodology gives full functionality for an object in any web application.
  1. There are seven verb + path combinations that are necessary in a basic Sinatra app in order to provide full CRUD functionality. List each of the seven combinations, and explain what each is for.
  • /tasks GET - lets the user see all of the tasks that have been created (Read)
  • /tasks/:id GET - lets the user see a single task and its contents (Read)
  • /tasks/new GET - gives the user a form to create a new task (Create)
  • /tasks POST - submits a new task to the database (Create)
  • /tasks/:id/edit GET - gives the user a form to edit an existing task (Create)
  • /tasks/:id PUT (PATCH) - submits edits/updates for an existing task (Update)

Agile Manifesto Workshop

How does the Agile model compare to the Waterfall model?

Agile promotes continues and early delivery of a viable product. The process demands that you can tolerate changing requirements. In Waterfall, the final product could be developed over the course of months or years, and you would not see a working product until the end. In Agile, you want to have sprints or iterations that produce meaningful value to the customer that you can show.

Why do you think Agile is so popular in software development?

In software development, the requirements can change easily and frequently. Also, software is very easy to adapt to changing requirements compared to modifying a physical product in manufacturing, for instance.

Do you think Agile is applicable to all industries?

Agile is not applicalbe to every part of every industry, but it can be adopted by small teams. For instance, if you have an assembly line, then the line itself works on a Waterfall process. However, developing the ide

  • Find an example commit from your Rush Hour project which was dealing exclusively with a Git problem rather than a feature or bugfix (e.g. "Fix merge commit", "Really add file...", "Merge master multiple times in a row", etc)

    • Sometimes we had to commit changes again because the person who commited wasn't on the correct branch or didn't have the right changes on their branch.
  • What do you believe the root cause of some of these issues were?

    • Possibly not looking at the branch before commiting.
  • How did they impact your ability to work on the project?

    • We were a bit unsure if we had the actual changes we wanted when we merged to master and pulled onto everyone's machine.
    • Sometimes to merge changes from multiple people we just sent changes over slack so that only one person was changing a file at a time.

Setting Group Expectations

Group Member Names: Kerry Sheldon, Karina Gonzalez, Robbie Jaeger

  1. When are group members available to work together? What hours can each group member work individually? Are there any personal time commitments that need to be discussed?
  • Everyone can be at Turing until 6:00-6:30pm and then work from home individually. There are no big personal time commitments foreseen at this point.
  • If we want to leave at 6:30pm, make sure we stop development/code work at 6:00pm and then wrapup the day together and plan next steps (so we can actually end at 6:30pm).
  • Re-DTR every other day to make sure everyone is on the same page and things are going well.
  1. How will group members communicate? How often will communication happen, and how will open lines of communication be maintained?

Asset Pipeline Overview

  • What are assets?
    • They are javascript files, css files, and images
  • Where do assets live? (app/assets, lib/assets, vendor/assets)
    • Assets can live in three different places: app/assets, lib/assets, and vendor/assets
  • Why do we have the asset pipeline?
    • To make the assets faster to use on the server
  • What is Sprokets?
  • Sprokets is a gem that is included in Rails by default (it concatenates, minifies, and then preprocesses JS and CSS files)
  1. What is an INNER JOIN?
  1. What is a LEFT OUTER JOIN?
  1. What is a RIGHT OUTER JOIN?