Skip to content

Latest commit

 

History

History
84 lines (60 loc) · 6.58 KB

Week1.md

File metadata and controls

84 lines (60 loc) · 6.58 KB

Week 1

Weekly Goals

  1. Learn some basic TDD best practices
  2. Debug some programs with errors - follow best practices
  3. Describe some basic OO principles like encapsulation, SRP
  4. Pair using the driver-navigator style

Plans to achieve:

  1. Work through the Boris Bike Challenge and attend workshop
  2. Debug 2 Ruby programs that have multiple syntax and testing errors
  3. Work through OO exercises in the course week outline, and read documentation on Class, since that's an area of weak understanding that I've identified.
  4. Each afternoon work for 3 hours with different paired partners, and follow best practices to maintain collaborative repos. Request feedback in a short Google Form from each of my pair partners.

Evidence:

  • Boris-Bikes Exhaustive step-wise Boris Bike challenge here - commits demonstrate different stages of unit & feature testing. Completed as part of a pair.
  • Roman Numerals TDD'd a very basic 1 to 10 Roman Numeral converter program. Practiced writing a test, failing it, then improving the code to make the test pass, until eventually all test criteria were passed and the code behaves as expected. Repo here
  • Birthdays TDD'd and implemented all features from a Birthday challenge - storing birthdays of people and checking if it's anybody's birthday today. I implemented a basic user interface for added complexity, calling different methods when the user selects a certain option. First commit shows tests written without any feature code.
  1. Debugged a couple of erroneous scripts - Screencaps here and here
  2. Two exercises with examples of understanding SRP and OOP principles for classes:
  • Calculator OOP repo in skills repository - updated with completed commit here. Created instance of class and tested in IRB here.
  • Secret Diary Wrote secret diary script with different methods, and checked that instances of the secretdiary class responded to each method contained within the class. Repo here with screengrab of the code in action! Understood splitting classes into relevant grouped methods, making the code easier to navigate/understand.
  • Airport Challenge Wrote a simple program to govern the taking off and landing of planes, with edge cases. Also demonstrated TDD and followed a the process strictly. Repo here

Daily Goals

Tuesday 20th August

  • GOAL: To be able to debug something
  • PLAN: Work through the debugging exercises - Fizzbuzz and Decoder
  • EVIDENCE: Fizzbuzz/Decoder videos Screencaps here and here - both debugged.

Wednesday 21st August

  • GOAL: Understand some basic principles of OO programming - encapsulation and SRP
  • PLAN: Use the morning to work through OO exercises, perhaps recording progress.
  • EVIDENCE:
    • Calculator OOP repo in skills repository - updated with completed commit here. Created instance of class and tested in IRB here.
    • Secret Diary Repo here with screengrab of the code in action!

Thursday 22nd August

  • GOAL: Improve understanding of instance variables and attr reader
  • PLAN: Read Ruby documentation on attr reader and continue to work through the Boris Bikes challenge
  • EVIDENCE: Boris Bike repo - instance variables and attr reader set up correctly and tested correctly

Friday 23rd August

  • GOAL: Test my knowledge of the 4 weekly learning objectives
  • PLAN: Complete new week1 practicals and practice RubberDucking with comments for each line of my code
  • EVIDENCE: Completed repos with new challenges as part of the skills workshop repo.

Reflection

Question 1

Did you meet all of your goals to the standard you set at the start of the week?

  • Yes, I feel far more confident with OOP particularly, which was an area of weakness I focused on to address.
  • My TDD practices improved dramatically, and it was obvious that when creating large complex programs with multiple user demands, TDD will save so much time and improve code quality.
  • I feel very confident using Rspec to debug programs, having completed all of the debugging practicals available for week1.
  • I thoroughly enjoyed pair programming, and received some great feedback; I'm happy with the process improvement over the week, although I'll keep requesting feedback in order to improve!

Question 2

What would you change/improve moving forward?

Technical:

  • I'd love to improve my understanding of more Ruby syntax, in order to write code quicker
  • I often received syntax errors during testing due to rushing to write code, so taking more care is something I'll be more aware of moving forward
  • I'd consider some of the structures for shared classes that could be incorporated into modules, I found this really great for refactoring and it's something I wish I'd known at the start of the week!

Personal:

  • I'd be stricter with timekeeping and taking breaks
  • I'd make sure to agree with my pairing partner how frequently we'd switch between driver/navigator, to avoid unequal pairing