In 2020, James and I prepared and delivered an introductory course on web development. Videos of our lectures, notes and all exercises are available at:
https://learnyousomeweb.bloomventures.io
The audience was various technical staff (but not full-time programmers) at Bell Media. It assumes basic knowledge of programming, but that's pretty much it.
The course was delivered over 8 days, covering:
- Intro to Web and HTTP
- An overview of how 'The Web' works and how web applications are made.
- Intro to Javascript
- Getting started with the Javascript programming language.
- Intro to HTML & CSS
- The basics of HTML and CSS for making static web pages.
- Making a Web Application (Traditional MPA style)
- How to make a web application in the traditional multi-page style (server-rendered pages, no javascript on the front-end).
- Intro to Front-End Javascript
- An overview of the DOM, how to use Javascript in the browser, and various common browser APIs.
- Making a Web Application (SPA style)
- How to build a web application in the single-page style (building the entire interface on the front-end with 'vanilla' Javascript, and making a JSON API w/ Javascript/Node on the back-end).
- Intro to React
- How to use React for make modern SPA applications in Javascript.
- Intro to Web Security
- How to build web apps securely. The bare minimum cryptography and security principles that every web developer should know.
The first lecture (Intro to the Web) is one I continue to share with my mentees Clojure Camp; by providing a high-level overview, it helps "ground" students before they go on to learn the various specific sub-technologies that make up the web.
The last lecture (Web Security), is also one that I tend to share a lot, because it covers concepts that are usually glossed over in introductory curricula, but IMO, shouldn't be.