Skip to content

Instantly share code, notes, and snippets.

@kawilliams8
Forked from rwarbelow/mod_0_session_4_readings.md
Last active February 8, 2019 16:22
Show Gist options
  • Save kawilliams8/171fedb3f8e8232be12f069182be103c to your computer and use it in GitHub Desktop.
Save kawilliams8/171fedb3f8e8232be12f069182be103c to your computer and use it in GitHub Desktop.
Mod 0 Session 4 Readings and Responses

Session 4 Readings and Responses

The readings and responses listed here should take you approximately 50 minutes total.

To start this assignment:

  1. Click the button in the upper right-hand corner that says Fork. This is now your copy of this document.
  2. Click the Edit button when you're ready to start adding your answers.
  3. To save your work, click the green button in the bottom right-hand corner. You can always come back and re-edit your gist.

Reading 1 (30 min)

Read Turing Instructor David Whitaker's article on Git and GitHub

  • Use the article and outside resources (Google!) to describe the general process of a collaborative git workflow in the space below.
  1. Create a repository for your team and brainstorm ideas/goals/tasks for the project
  2. Get everyone access to the Git repo with appropriate user rights
  3. Assign tasks/features to some team members and start working on separate branches
  4. People upload/commit their work for others to see and review
  5. The approved and tested files are merged into the master

Reading 2 (20 min)

In preparation for our final technical session on Tuesday, read FreeCodeCamp's Object Oriented Programming Concepts. This article touches on four big concepts: encapsulation, abstraction, inheritance, and polymorphism. Although the final two are beyond the scope of Mod 0, it's good to be exposed to unfamiliar terms so that when you hear them the second time around, they make more sense. After reading the article, describe in three sentences or less each of the concepts in your own words. Feel free to use Google to supplement your understanding.

  • Encapsulation: Each object has its private variables, and none of the other objects can change those variables directly (unless explicity allowed). The other objects can however call public methods that might affect the private variables or maybe even call the encapsulated object's private methods. The other objects are just throwing things against the wall to see what sticks!

  • Abstraction: Codebases can be really large, so it isn't fair to expect everyone to know every line and detail to use the code. If they know how to get through the basics, the code for the deeper functions will reveal itself when its needed. The interface is very easy but the whizbang operations all happen seemlessly under the hood.

  • Inheritance: Objects can have many similarities, but there's no need to create copies upon copies when they can just subdivide and differentiate (when its finaly necessary). Say a woman has two children with two fathers: The kids inherit half of their genes from the shared source (Mom) but each gets the other half from a different source (the Dads.)

  • Polymorphism: This is a way of simplifying and solving conflicts between differing child classes. Imagine a large family getting together for taco night. A parent buys all of the ingredients, preps the ingredients (cooks meat, chops tomato, etc.), and sets everything on the table. Each child inherits the full menu of ingredients, but uses their individual preferences (and methods!) to execute their perfect individual tacos.

@rwarbelow
Copy link

👍

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