Photo: Ivan Sutherland invented Sketchpad, the ancestor of modern computer-aided design (CAD) programs, in 1962 while at MIT. Sequence: Interactive Web
Sequence Summary:
This sequence is an introductory guide to modern web design and development. It covers the foundational, front-end languages HTML, CSS and JavaScript as a tool for creating interactive content for the web.
Why?
The web is an integral part of our everyday lives – Amazon Echo Show, Google Nest, Zoom, FaceTime, Slack, Netflix, Apple Maps. As a communication medium, the web has its own inherent characteristics and ways of impacting the people that use it. Marc Andreessen, founder of Netscape, famously said, "Software is eating the world." By understanding the potentials and limitations of creating digital experiences through software (or hardware), architects have an opportunity to shape the future of both the built and virtual environment.
While this modules' focus is front-end web languages – those that work together to make up the visual side of web sites. The visual elements of all websites use a combination of three languages:
- HTML — which stands for HyperText Markup Language and creates and controls content such as paragraphs, headings, links and more.
- CSS — or Cascading Style Sheets, which sets how the content of websites (the HTML) should look, such as how websites look on a mobile screen, versus tablet or desktop.
- Javascript – which defines how a user interacts with the web. For example, when a user types in their email address into an input field, JavaScript can check the text is correctly formatted. Anything that happens after a page has loaded is usually controlled with Javascript.
These languages form the foundation for further exploration into emergent technologies such as voice search or control, blockchain, conversational AI, development of the metaverse and much more.
Modules:
- Javascript in the Browser I
- Data and APIs
- JavaScript in the Browser II
- JavaScript in the Browser III
Github
At a high level, GitHub is a website and cloud-based service that helps developers store and manage their code, as well as track and control changes to their code. To understand exactly what GitHub is, you need to know two connected principles:
- Version control
- Git
What is Version Control?
Version control is the management of changes to documents, computer programs, websites, and other collections of information.
What is Git?
Git is a specific open-source version control system created in 2005 by Linus Torvalds, the creator of Linux. Specifically, Git is a distributed version control system, which means that the entire codebase and history is available on every developer’s computer, which allows for easy branching and merging. It can be used with any file type such as such as Word documents or Final Cut projects, but is most often used for tracking code files.
GitHub is a Git repository hosting service. It allows developers and engineers to create remote, public-facing repositories on the cloud for free. While Git is a command line tool, GitHub provides a Web-based graphical interface.
For the following reasons, GitHub is the version control manager of choice:
-
It manage changes over time.
-
It aids sharing and collaboration.
-
It allows for experimentation.
-
Getting Started with GitHub Desktop, GitHub Desktop Documentation
HTML Basics
HTML stands for HyperText Markup Language and was invented in 1989 by Sir Timothy Berners-Lee, a computer scientist. The fundamental building block of HTML is the element. Elements consist of an opening tag, closing tag and content (text, image, video) sandwiched in between. The content is what the user sees on the webpage. The tags tell the browser the type of content and how to present it.
- Comprehensive List of HTML elements
- HTML & CSS by Jon Ducket
- Structuring the web with HTML
- Learn to Code: HTML & CSS, Lesson 1: Building Your First Web Page by Shay Howe
- Learn to Code: HTML & CSS, Lesson 2: Getting to Know HTML by Shay Howe
- HTML Essential Training, LinkedIn Learning
- A Brief History of HTML Wired
- Basic HTML Is the New Punk Folk Explosion, Zach Mandeville
CSS Basics
CSS stands for Cascading Style Sheet and was invented in 1994 by Håkon Lie. It handles the presentation layer of our webpage and allows us to associate style rules with HTML elements.
- Common CSS Properties Reference, basic list of the most common CSS properties
- CSS Essential Training, LinkedIn Learning
- Introduction to CSS, LinkedIn Learning
- Learn to Code: HTML & CSS, Lesson 3: Getting to Know CSS, Shay Howe
- Learn to Code: HTML & CSS, Lesson 4: Opening the Box Model, Shay Howe
- Learn to style HTML using CSS, MDN Documentation
Web Typography
- Google Fonts
- Fonts in Use. An independent archive of typography.
- How to size text using ems by Richard Rutter 18 May 2004
- Web Typography: Using the Golden Ratio and REMs by Greg Rickaby 19 May 2013
- Thinking with Type by Ellen Lupton (book)
- Professional Web Typography by Donny Truong
Layout Basics
- A Brief History in Layout Design: The Early Grid Systems by Natalie Boyd. December 04, 2016. PRINT Magazine.
- Getting Started with CSS Layout by Rachel Andrew 25 May 2018
- A Complete Guide to Flexbox by Chris Coyier 21 December 2020 CSS Tricks
- An Animated Guide to Flexbox by Free Code Camp. 31 January 2017
- The Experimental Layout Lab by Jen Simmons
Animation Basics
- A Pocket Guide CSS Animations by Val Head
- Animate SVG with CSS, Jonathan Suh. July 2014
- Animating SVG with CSS by Chris Coyier. January 7, 2017
- Batch Optimization Using Photoshop, Medium
JavaScript Basics
- What is JavaScript, MDN Documentation
- JavaScript Data Types and Data Structures, MDN Documentation
DOM Manipulation Basics
- JavaScript and the Browser by Marijn Haverbeke. Chapter 13. Eloquent JavaScript (2018)
- The Document Object Model by Marijn Haverbeke. Chapter 14. Eloquent JavaScript (2018)
- Introduction to the DOM, MDN Documentation
- Locating DOM Elements Using Selectors, MDN Documentation
- Events and the DOM, MDN Documentation