# Reading Week(s) Checklist
## Git
- [ ] Why do we use Git?
- [ ] What's the difference between Git and GitHub?
- [ ] What happens when you `clone` a repository?
- [ ] What happens when we do `git pull origin main`
- [ ] How do we create a new branch on our local machine?
- [ ] How do we control which changes will be included in the next commit?
- [ ] When might `git add .` be inappropriate?
- [ ] How do we make sure our local changes don't conflict with `main`?
- [ ] What does `git push origin [branch-name]` do?
- [ ] Why do we make pull requests instead of just changing `main` directly?
- [ ] Why should you review your teammates' pull requests?
## HTML
- [ ] Why is accessibility important?
- [ ] How can you quickly find simple accessibility problems?
- [ ] What is semantic HTML?
- [ ] Why is it important to use the "correct" semantic element?
- [ ] What is the `<form>` element used for?
## CSS
- [ ] How would you use CSS variables to make a reusable colour palette?
- [ ] How would you use flexbox to make elements sit on a single line?
- [ ] How would you use grid to make a layout that automatically adds columns as the screen gets wider?
- [ ] Why is it important to create a responsive design?
- [ ] How would you structure your CSS to make it "mobile-first"?
## Javascript
- [ ] Why should we avoid using `var` to define variables?
- [ ] How might you make a long, complex chunk of code easier to read?
- [ ] What is a "callback"?
### Array methods
- [ ] How would you use `array.map()` to create a new array with transformed values?
- [ ] How would you use `array.filter()` to create a new array with certain values removed?
- [ ] How would you use `array.find()` to get a single value from an array?
### Promises & `fetch`
- [ ] What is a promise?
- [ ] How do promises help manage asynchronous code?
- [ ] What does a promise's `.then` method return?
- [ ] How could you chain promises together to avoid "callback hell"?
- [ ] How would you handle a `fetch` request that failed to get a response from the server?
- [ ] How would you handle a `fetch` request that received a `404` response from the server?
## HTTP
- [ ] What is an HTTP request?
- [ ] What kind of request is sent when you click a link in your browser?
- [ ] What kind of request is sent when you submit a form in your browser?
- [ ] What is an HTTP response?
- [ ] What does the status code of an HTTP response tell us?
- [ ] What are some common status codes?
- [ ] What are HTTP methods for?
- [ ] What kind of request should have a `GET` method?
- [ ] What kind of request should have a `POST` method?
- [ ] What kind of request should have a `PUT` method?
- [ ] What kind of request should have a `DELETE` method?
- [ ] What is the "body" of an HTTP request for?
- [ ] What is the "body" of an HTTP response for?
## DOM
- [ ] How would you get a reference to a DOM element in your JS?
- [ ] How would you get references to multiple DOM elements at once in your JS?
- [ ] How would you update properties of a DOM element?
- [ ] What's the difference between a "property" and an "attribute"?
- [ ] What are some different ways to add content inside a DOM element?
- [ ] When might the `<template>` element be useful?
- [ ] What are the different ways to add event handlers to elements?
- [ ] Why is `addEventListener` the safest way to add an event handler?
- [ ] How can you access submitted form values in your JS?
## Testing
- [ ] Why are tests useful?
- [ ] What is the difference between unit and integration tests?
- [ ] What kind of code is easier to test?
- [ ] Why should your tests be isolated from each other?
- [ ] What is Test Driven Development (TDD)?
- [ ] When might TDD be a useful process to follow?
## Debugging
- [ ] What process would you take to find out why your code isn't working?
- [ ] What tools do JS/dev tools have to help debug your code?
- [ ] At what point should you ask for someone else's help?