Academy Library
Online Resources

Learning resources from the Prescription Free Academy of Web Development and Software Engineering.

"Master software engineering for the web with teaching and mentoring available seven days."

This document is considered stable. Updates are made but what is here is considered enough as it stands to do the title justice.

Courses and Resources

This is a collection of online courses and resources that are generally recommended or mentioned in sessions. Use your own judgement with what works for you and discuss it with Nigel.

Just starting out? Towards the end you’ll find three suggested projects that you can work with to gain some experience with what web development is all about. Create a website, make an API and write a command line script.

MDN Web Docs

The MDN Web Docs site features comprehensive coverage of all front-end web technologies. With HTML, CSS, JavaScript and HTTP being the main contenders.

It’s from the folks who create the Firefox web browser. Many of the links here are from MDN.

Class Notes

Our very own “class notes” collection features summaries of important topics along with carefully chosen links to help you study.

They’re generally written in preparation for sessions with students and then shared here.

There’s not a great deal of them yet but there are enough to be useful and a lot more on the way.

Class Notes
docs.prescriptionfree.academy/class-notes

Software Pattern Library

We’re really excited about this resource. It’s the main focus of our content development at the moment.

After starting as Markdown files on GitHub Pages it’s rapidly growing to become a substantial database. Or at least on its way to becoming that.

The idea is to have a collection of building blocks for software that you can learn and use beyond the basic constructs. It’s how programming works anyway, but mostly we pick them up as we go along.

The pattern library enables you to learn and use them directly rather than coming across them by chance or figuring them out due to need.

These are not rules. They’re ideas. To build on, work with, learn from, combine and to make your own.

Software Engineering Patterns
docs.prescriptionfree.academy/patterns

Getting Started

Just starting out? Or ready to refresh the basics? Working through these will give you a solid grounding in the essentials.

Getting Started with the Web
developer.mozilla.org

Structuring the Web with HTML
developer.mozilla.org

Introduction to HTML
developer.mozilla.org

Learn to Style HTML Using CSS
developer.mozilla.org

Learn JavaScript
developer.mozilla.org

JavaScript Tutorial

This covers both the core language and the web browser environment (the front-end).

The Modern JavaScript Tutorial
javascript.info

JavaScript Guide

This is the main JavaScript guide from MDN Web Docs. It covers the core language.

JavaScript Guide
developer.mozilla.org

Guides and Tutorials

There’s a lot of information here. We start with a full index of all web technology content from MDN. The next two are key selections from that. Finally there are guides for learning Node.js, TypeScript and GitHub.

[Complete Index of MDN Covering All Front-End] Web Technology for Developers
MDN: Web Technology for Developers

[Complete Index of MDN Front-End] Developer Guides
MDN: Developer Guides

[Complete Index of MDN Front-End] Tutorials for Web Developers
MDN: Tutorials for Web Developers

Node.js Walkthrough
Run JavaScript anywhere. Back-end starts here.
nodejs.org

TypeScript Documentation
Upgrade your JavaScript to leverage types.
typescriptlang.org

GitHub Skills
Learn all about this important platform.
skills.github.com

Deep Dives

Ready to learn all the details? To gain some deeper understandings? Here’s a set of deep dives in to some of the essential areas of web development that it can help to know well.

Objects in JavaScript
developer.mozilla.org

Asynchronous JavaScript
developer.mozilla.org

Client Side Web APIs
developer.mozilla.org

HTML Forms
developer.mozilla.org

Page Load Time Optimisation
developer.mozilla.org

Browser Extensions
developer.mozilla.org

How Browsers Work
web.dev

Differences Between Node.js and the Browser
nodejs.org

The Event Loop
developer.mozilla.org

CSS Deep Dives

Cascade, Specificity, and Inheritance
developer.mozilla.org

”While working through this lesson may seem less relevant immediately and a little more academic than some other parts of the course, an understanding of these concepts will save you from a lot of pain later on! We encourage you to work through this section carefully and check that you understand the concepts before moving on.”

~ Well said, MDN! The same could be said of a lot of the learning that you can find from this page, although the specific quote is from the link below.

CSS Layout Guides
developer.mozilla.org

CSS Flexbox Layout Guide
css-tricks.com

CSS Grid Layout Guide
css-tricks.com

CSS Grid vs. Flexbox: Which to Use and When
levelup.gitconnected.com

Using CSS Animations
developer.mozilla.org

Reference

HTML Reference
developer.mozilla.org/en-US/docs/Web/HTML

CSS Reference
developer.mozilla.org/en-US/docs/Web/CSS

JavaScript Reference
developer.mozilla.org/en-US/docs/Web/JavaScript/Reference

Web APIs
developer.mozilla.org/en-US/docs/Web/API

Event Reference
developer.mozilla.org/en-US/docs/Web/Events

HTTP Reference
developer.mozilla.org/en-US/docs/Web/HTTP

Node.js Documentation
nodejs.org/docs/latest/api/

Courses

freeCodeCamp
freecodecamp.org

MDN Curriculum
developer.mozilla.org/en-US/curriculum

Frontend Masters
frontendmasters.com/trial

The Odin Project
theodinproject.com

Hyperskill (Partner with JetBrains)
hyperskill.org/courses

Codecademy: Learn JavaScript
codecademy.com/learn/introduction-to-javascript

Coding Challenges

JS Challenger
jschallenger.com

Edabit
edabit.com/challenges

CodingJS
the-winter.github.io/codingjs

Code Wars
codewars.com

LeetCode
leetcode.com

Codility
codility.com

CSS Challenges
wikiversity.org

Tools and Utilities

WebStorm: The JavaScript and TypeScript IDE, by JetBrains
jetbrains.com

Node.js — Run JavaScript Everywhere
nodejs.org

Developer Tools
developer.mozilla.org

Postman
postman.com

TypeScript
typescriptlang.org

Markdown
markdownguide.org/basic-syntax

Homebrew — The Missing Package Manager for macOS (or Linux)
brew.sh

Node Version Manager - Manage Multiple Active Node.js Versions
github.com

Git Bash/Git for Windows
git-scm.com

Learn to Use Your Tools

Get Started with WebStorm
jetbrains.com/webstorm/learn

Getting Started with Git
docs.github.com

Using Git
docs.github.com

Pro Git
git-scm.com/book/en/v2

Introduction to PowerShell
learn.microsoft.com

Create a GitHub Pages Website

This can be great practice for working with web technologies. Jekyll is a simple and powerful system that’s easy to learn. GitHub Pages is a free and well designed system for easily using it. Improve many important skills. Not least Git itself.

Creating a GitHub Pages Site
docs.github.com

Setting up a GitHub Pages Site with Jekyll
docs.github.com

Adding a Theme to your GitHub Pages Site Using Jekyll
docs.github.com

About GitHub Pages and Jekyll
docs.github.com

Extras: Embed HTML in MarkdownEmbed Markdown in Jekyll HTMLView Build Logs

Docs: JekyllGitHub Pages

Create a Strapi Back-End API

Interested in learning to create APIs? Strapi is a great system for getting in to that. You can do everything with their admin interface (no coding) or customise everything with code to get more advanced.

This library site itself integrates Strapi with GitHub Pages to manage the Markdown for the content for the class notes and pattern collections.

It’s easy to get started. You can have an API going in less than an hour and build from there. Use it to create a back-end API for your front-end to use.

Strapi Quick Start Guide
docs.strapi.io

Strapi Admin Panel User Guide
docs.strapi.io

Strapi Developer Docs
docs.strapi.io

Integrate it with a Node.js command line script to generate HTML or Markdown for your site, practice with fetch to query the API, or whatever else you can think of.

Create a Node.js Command Line Script

Did you know that you can use Node.js to run JavaScript from the command line or terminal on your computer?

You wouldn’t have access to any browser APIs, but Node.js comes with its whole own set of APIs for working with the operating system.

Like file access, network access, running other programs, launching software. There’s all kinds of useful stuff that you can do.

Add any library from Node’s massive and open package library - npm - and use it from the command line to do quick tasks. Write complex scripts or even create full applications.

Introduction to Node.js
nodejs.org

How To Build Command Line Applications with Node.js
digitalocean.com

Mastering API Requests: Using Fetch with Strapi’s Content API.
strapi.io

Extras: Introduction to npmNode.js Documentation

Standards and Governance

W3C: World Wide Web Consortium
w3.org

WHATWG
whatwg.org

TC39: ECMAScript
ecma-international.org/technical-committees/tc39

TypeScript
github.com/microsoft/TypeScript

List of Internet Organizations
https://en.m.wikipedia.org/wiki/List_of_Internet_organizations