> For the complete documentation index, see [llms.txt](https://founders-and-coders.gitbook.io/coursebook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://founders-and-coders.gitbook.io/coursebook/src/course/syllabus/developer/week02-project02-chatbot/resources.md).

# resources

* [What is a web server?](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_is_a_web_server) General background info on how servers work
* [npm for absolute beginners](https://www.youtube.com/watch?v=UYz-9UaUp2E) Kevin Powell's video (Just ignore Astro recomendation at the very end)
* [HTTP topic intro](https://fac-slides.netlify.app/slides/http/)
* [How DNS Works](https://howdns.works) A comic explaining what happens when you type a URL into your browser.
* [HTTP Overview - MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview) Describes the HTTP protocol in a lot more detail. May be useful if you like learning exactly how stuff works under-the-hood, but may also be overwhelming.
* [First-class Functions](https://oliverjam.es/blog/first-class-functions/) How functions and callbacks work in JavaScript. Based on a workshop from this week's curriculum.
* [What the heck is the event loop anyway? (video)](https://2014.jsconf.eu/speakers/philip-roberts-what-the-heck-is-the-event-loop-anyway.html)
* [TDD changed my life](https://medium.com/javascript-scene/tdd-changed-my-life-5af0ce099f80)
* [Behavior Driven Development and Functional Testing](https://medium.com/javascript-scene/behavior-driven-development-bdd-and-functional-testing-62084ad7f1f2)
* [Test Coverage](https://www.martinfowler.com/bliki/TestCoverage.html)
* [Make Your Test Fail](https://kentcdodds.com/blog/make-your-test-fail) Good testing practices so you can be confident your tests are working.
* [The advantages of the template element](https://codepen.io/oliverjam/pen/yLNEOQO?editors=1010) A comparison of creating DOM elements manually versus using the `<template>` element. Useful technique if you're dynamically rendering lots of stuff with JS.
