# 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?