How can I learn more about your curriculum?

We recommend this page: https://makers.tech/curriculum

A more detailed version is below - please note that it's not completely exhaustive, and it is subject to change. Our course is constantly being developed and refined over time, but hopefully this will give you an idea of what kinds of things you'll be working on over time.

We also recommend you read this blog post from one of our Q&A sessions where current Makers and post-course Makers talk about what they learnt during the course.

Week 1

By the end of the week all developers can:

  • Test-drive a simple program using objects and methods
  • Pair using the driver-navigator style
  • Follow an effective debugging process
  • Describe some basic OO principles like encapsulation, SRP

Practicals

These can be used by the devs independently, or enhanced by a coach delivering and offering structured process, group discussion, feedback, etc.

  • Test Driving
  • Debugging approaches
  • Git collaboration
  • Encapsulation

Resources

  • The three laws of TDD
  • Encapsulation on Wikipedia

Skills workshops

  • Git
  • Introduction to Debugging
  • Encapsulation
  • Mocking

Week 2

By the end of the week all developers can:

  • Use all of week 1's skills (don't underestimate the importance of this)
  • Break one class into two classes that work together, while maintaining test coverage
  • Unit test classes in isolation using mocking
  • Explain some basic OO principles and tie them to high level concerns (e.g. ease of change)
  • Review another person's code and give them meaningful feedback

Some developers may notice they are completing the work easier than their peers and ease off the effort here. They should be identified and pushed to have their code reviewed to a professional standard to make best use of the time available.

Practicals

  • OO Relationships (Forwarding, Polymorphism)
  • Dependency Injection
  • Testing OO Relationships
  • Learning by building RSpec
  • Refactoring with OO

Skills workshops

  • Code Review Recipe
  • Domain modelling
  • OOP 3: Delegate, Delegate, Delegate
  • Making code simpler through polymorphism
  • Mocking with RSpec

Week 3

By the end of the week all developers can:

  • Build a simple web app
  • Follow an effective debugging process for web applications
  • Explain the basics of how the web works (e.g. request/response, HTTP, HTML, CSS)
  • Explain the MVC pattern

Practicals

  • Servers
  • Clients
  • HTTP Servers

Skills workshops

  • Modelling the request/response cycle
  • Debugging 2

Week 4

By the end of the week all developers can:

  • Build a simple web app with a database
  • Follow an effective debugging process for database applications
  • Explain the basics of how databases work (e.g. tables, SQL, basic relationships)

Practicals

  • Entity Relationship Diagrams
  • SQLZoo

Skills workshops

  • CRC Cards
  • REST

Week 5

By the end of the week all developers can:

  • Test drive a simple front-end web app with Javascript
  • Follow an effective process for learning a new language

Practicals

  • Learning a new language by translation
  • JS Objects & Prototypes
  • Closures

Skills workshops

  • Encapsulation with the constructor & prototype pattern
  • Following the flow and getting visibility
  • Following the Ajax request/response cycle
  • Callbacks and following the flow of control

Resources

Count app: A tiny JavaScript/Sinatra app that mimics the architecture of the Thermostat app. A useful guide for developers to use for concepts and idioms.

Week 6

By the end of the week all developers can build tested, easy-to-change software in a team using these processes:

  • Break down projects into tasks and allocate them to pairs
  • Build to a specificiation (rather than challenges)
  • Run stand-ups and retrospectives
  • Use a branch/PR/merge git workflow
  • Give and receive meaningful code review

Week 7

By the end of the week all developers can:

  • Build a front-end app in Javascript
  • Work competently in Javascript *
  • Reason about asynchronous behaviour in Javascript

* This week is analogous to week 2 in that developers will be wrestling with some underlying language concepts that are not well understood (by Makers).

Most of the work and interventions we have run historically are meant to 'de-magic' Javascript and force developers to confront the pieces they are glossing over in an attempt to get work done.

Practicals

  • JS Objects & Prototypes
  • Closures
  • Reading beyond your level
  • Reasoning about JS using frames

Skills workshops

  • Javascript module pattern

Week 8-9

See: Engineering project