Coder Social home page Coder Social logo

m1_project_reflections's Introduction

M1 Project Reflections

Warmup Project - Flash Cards Game

Project Overview

This project used ruby and rspec to demonstrate test driven development, where criteria were specified and code was later written to achieve the objectives outlined in tests. 3 iterations were completed using 4 spec files and 4 classes.

List out the tools you used:

  1. VS Code
  2. Mac Terminal
  3. RSpec
  4. Ruby
  5. Ruby classes
  6. pry
  7. Test Driven Development (TDD) ...

Write a 1-2 sentence synopsis of what this project does:

This project loads a deck of cards and quizzes the user on trivia knowledge. It is capable of organizing cards by category. It evaluates the user responses as correct or false and reports a score of the round.

Reflection Questions:

1. How do you approach solving something when you don’t have all the information?
When I don't have all the information I need for a problem, I first organize what I do know. Then I look at my next step and see what I might need to find to complete the next step. I usually start with a search of Turing resources and my notes. If I don't find what I need there, I continue to google or my cohort.

2. What was your most effective strategy for getting through blockers during this project? How did this help your process?
My most effective strategy when faced with a blocker was relying on my cohort. I'm thankful it's full of smart people I can rely on. Once I got the help I needed to continue, I would refactor the code to make sure I understood.

3. Tell us about a time that you found yourself in an unproductive struggle, how did you get out of it?
One night, Billy and I had spent 30-45 minutes with the same error. It was getting late so I reached out to my cohort for help and it turned out we were just missing some punctuation.

4. What was the benefit of using TDD while building out this project?
TDD helps establish the goals of the project and then to build the important classes, methods and variables to satisfy them. It can be a kind of cypher when opening the project the next morning to see what outputs what.

First Solo - Beat Box

Project Overview

The Beat Box project used Ruby classes to create a linked list of beat box sounds in order to make my computer beat box.

List out the tools you used:

  1. Test Driven Development
  2. RSpec testing
  3. Ruby Classes
  4. VS Code
  5. Mac Terminal
  6. Github

Write a 1-2 sentence synopsis of what this project does:

The Beat Box project used Ruby classes to create a linked list of beat box sounds in order to make my computer beat box. Methods for the linked list included append, prepend, count, insert, and pop.

Reflection Questions:

1. Pick 1 technical concept you used for this project (look back at our lessons and the learning goals of the project to pick this). Explain what this concept is, how it works, and give an example of where you used this in your code.
Test Driven Development was pivotal on this project. It changed my perspective from writing code, to writing code to meet goals I set. Although I don't have it perfected, I saw how TDD can help programmers see edge cases before diving into the code. Then when they do dive in, they are better prepared to address edge cases.

2. What was your process when you got stuck?
Similar to other projects, I would first check out the stack trace to see if I made a simple error. Next I would turn to the internet for an explanation. If I couldn't find an answer there, I would check with my cohort.

3. If you had to do this project again, what would you do differently and why?
To do this project differently, I might allow myself more time and space to complete the extensions. I would have started a list of approved beats at the beginning of the project so I didn't have to go back and find them later.

Second Solo - the DMV

Project Overview

List out the tools you used:

  1. Nested Collections
  2. Hashes
  3. API
  4. Test Driven Development
  5. RSpec testing
  6. Ruby Classes
  7. VS Code
  8. Mac Terminal
  9. Github

Write a 1-2 sentence synopsis of what this project does:

Reflection Questions:

1. Describe the steps you took to dig in to this code base. What was your process? If you don’t feel you had a process, define one that you might like to try next time.
I started by running the rspec file and seeing what falures resulted. I systematically worked thorugh the failures one by one to address the issues. Once I thought one was addressed, I would re-run rspec to see if it was solved. If it was, I would move on to the next failed test. After solving the failures, I read through the .lib files and tried to make sense of how the classes interacted.

2. What was hard about working with code you did not write?
It was hard to put someone else's code under a microscope and find the smaller errors in it, like missing syntax. It also took some time to look through the classes and understand how they interacted.

3. What was easier than you expected about jumping in to an unfamiliar codebase? What made it easy? If nothing felt easy, what would’ve helped you feel more comfortable more quickly?
With some experience in fixing failues and reading rspec output and stack trace, it was somewhat easy to pinpoint where errors happened.

Paired - Battleship

Project Overview

List out the tools you used:

  1. Nested Collections
  2. Hashes
  3. API
  4. Test Driven Development
  5. RSpec testing
  6. Ruby Classes
  7. VS Code
  8. Mac Terminal
  9. Github

Write a 1-2 sentence synopsis of what this project does:**

This project allows users compete against a computer in a game of battleship. The user starts the game by placing their two ships on the 4x4 grid. The computer places their two ships and the game begins. The boards are rendered, with the computer's ships hidden and the user's ships showing. The user and the computer take turns firing upon each other's boards, and the turn results are reported. The board renders again between turns with misses, hits, and sunk ships reported. The game ends once either all the user's or computer's ships are sunk.

Reflection Questions:

1. What was your pairing style like? How did you manage your Github work flow? What are your thoughts on that workflow?
We worked as a team of 3 on this project, and used driver-navigator-backseat as our pairing style. The navigator directed the driver's code and tests, while the backseat role looked for refactoring opportunities, and chimed in if the driver and navigator got stuck or off track. We found this to be a really effective way to write good code. 2. What skill do you feel you have a better handle on after working on this project? What skill has this project lead you to realize you need more practice on?
This project showed me the value of pair coding. Where I previously thought that we would work most efficiently async, some parts of the project on our critical path needed to be completed before we could progress. I was also able to learn live from my partners and code faster since I had them as a resource if we got stuck. 3. What strategies help you best work with others? What would you like others to know about how you work best?
Completing a DTR at the beginning of this project helped our group set expectations and boundaries early on. We also checked in midway through the project and after the project to reevaluate our DTR. Besides having a successful project, we all agreed that we enjoyed working together at the end of the project.

Group Project

Project Overview

List out the tools you used:

...

Write a 1-2 sentence synopsis of what this project does:

Reflection Questions:

1. Group: What conflicts came up and how did you resolve them? This could look like different opinions on how to code a method, what to name a class, when to do stand ups, or communication breakdowns.
2. Pick 1 technical concept you used for this project (look back at our lessons and the learning goals of the project to pick this). Explain what this concept is, how it works, and give an example of where you used this in your code.
3. Describe your team’s code review process. How did you ensure your end product worked and was of high quality?

m1_project_reflections's People

Contributors

kameronk92 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.