- Gather evidence and use reflection to choose goals and track their progress
- Test-drive a simple program using objects and methods
- Pair using the driver-navigator style
- Follow an effective debugging process
https://github.com/delexii/makers-dir/tree/main/test-driven-development
https://github.com/delexii/boris-bikes-3
https://github.com/delexii/airport_challenge
- learn how to debug on vscode
- understand gem packages
- learn the rspec one liner syntax
- test-drive my code using the red-green-refactor cycle
- use a methodical approach to solving problems
- use my own initiative
- define unit testing as the process of testing the smallest possible 'unit' of a programme.
- understand each of the "3 As" of a unit test.
- write some simple unit tests
- identify errors and understand how to find the root cause
- write methodical software - organised, clear and correct
- good health
- catching up with friends after a long time
- completing my first individual challenge
- being present and really taking in the learnings from each workshop session
- the weekly retrospective meeting with the cohort
- learning how to plan before implementing code
- being curious and dedicating extra time to cementing various concepts
- keeping notes of my progress
If you don't do the push up, you don't get the muscle.
I had the chance to attend a few pair-programming sessions with some cohort colleagues and apply the independent learning to a live project. The individual challenge which I am currently working on is also quite good as it brings my learning together and I am definitely able to pinpoint the things that have not quite settled or that I may need to practice more.
I've really enjoyed learning about rspec and its functionality. I now understand how to apply the principles of test driven development to a project. I think this enables devs to build clean, organised and methodical lines of code which are easy to read and debug. Although quite challenging, I did enjoy working with user stories and breaking those down into objects and methods that would later then drive the code implementation.
I feel a bit more settled into my learning journey. I appreciate the endless amount of resources available and I feel like I am definitely getting better by the day! I have started t have a more focused approach to studying and make use of my calendar to block time out for different tasks. My intention for the following week is to
General learning
- learn to be specific in my google search
- make use of available resources
- structure my learning
- build a decision tree using user stories
Test Driven Development
- test-drive a simple program using objects and methods
- RSpec use and best practices - Red Green Refactor method
- each test should make only one assertion
- learn how to create a directory and initialize rspec —init from the command line
- local, instance, class, global
- ruby class variables
- set up a simple project
- explain why a complete README is important
- initialise and push a git project
- give the structure of a User Story
- extract a Domain Model from User Stories
- define 'Feature Test' and use irb to implement
- explain how to use a stack trace to debug errors
- debug an error using a stack trace
- define RSpec as a testing framework
- describe an Object using a specification
- set up a Unit Test and implement the simplest code to make it pass
- move between Feature and Unit Tests
- test that an Object responds to a Message
- use RSpec 'predicate' syntax
- pass an instance as an argument
- set an attribute on an instantiated Object using an
@instance variable - use
attr_readerto read an attribute on an instantiated Object - use
failorraiseto raise an error - use a 'guard condition
- set an initial attribute value using initialize
- use the Single Responsibility Principle
- explain why doubles are needed to isolate unit tests
- use a double to isolate a unit test
Debugging
- explain what a bug is
- explain a good approach to debugging
- follow an effective debugging process to identify a bug
- follow an effective debugging process to fix a bug
Empathy
-
ability to sense other's emotions and imagine what they might be thinking or feeling
-
validation of others' emotions is so important
Three types of empathy
- affective - feeling but without the drive to help
- empathetic concern - internalising emotions and driven to help or respond appropriately
- cognitive empathy- consciously imagining how someone is feeling without internalising
Tools
- 'Just like me' - Instead of defaulting to create measurements and separations, we attempt to find similarities. Humans are far more similar than different
- Metta Bhavana - may you be happy
- Empathy Active Listening - attention is a commodity; reflect back, ask more questions instead of responding, validate emotions, don't offer unsolicited advice, be present
- Body → Heart → Head (settle body, self compassion, solution oriented)
- Radical Candor
- The 5 Dysfunctions of a Team
Pair programming
- learning more as you have to explain the code
- idea generation
- spread knowledge - new programming language, new development environment, new techniques, short cuts TDD
- communication skills
- better software through faster feedback