The Internet isn't magic. It's just a series of fairly simple technologies that can fit together in interesting ways, giving us the wide array of websites and services we see today. In the 21st century, a polished website can make the difference in determining the legitimacy and viability of a project. The Web Development track trains students with the techniques needed to build websites using a playful, project-based approach.
We invite participants of all skill levels, especially those with little-to-no development background, to bring their project ideas and web aspirations to this 10-day web-dev intensive. If you aren't sure what you want to work on, we will have projects to get you started. Throughout the 10 days, we will help participants develop core technical skills needed for publishing websites. We offer one-on-one guidance geared towards participants' individual interests and needs, while cultivating opportunities for broader collaboration.
Below is a sample of skills we can teach to help with your project:
- Make web-based synthesizers with Tone.js and the Web Audio API
- Making 3D animations and interactions using the three.js library
- "Drawing" on the web with shapes, imagery, and video with p5js and HTML5 canvas
- Web typography with CSS
- Mobile-friendly website development, using CSS-Grid, flexbox, and grid frameworks such as Foundation, Bulma, and Bootstrap
- Mapping, using the Leaflet library
- Techniques for Collaboration: pair programming, code review
- Managing collaborative code projects using git
- Information Security - encryption, threat modeling, counter-surveillance
- Hosting web services - Linux servers, DNS, Docker
- Internet Structure - How the Internet works, IPs, networking
- Getting projects on the web from your laptop: "Deploying" websites and webapps
This track will give you an understanding of web technology that is quickly, materially useful. By the end, you will have the competency to make a simple website for a local organization or event. You will be familiar with collaboration tools for working on web projects with others. You will know how to troubleshoot problems. We hope you will leave with a project you want to keep working on and a strategy for how to progress. Most importantly, you will come away from this with connections to a trusted community of people you can turn to when you get stuck.
Elective Course Options
The Web Development track emphasizes learning by building things together over pre-planned lectures. Specific courses will evolve as we get to know participants and their needs. To give a sense of possibilities, here are some classes we've been thinking about:
Tech Orientation: Linux servers
This course introduces students to the computer environment they will be operating in for the rest of the camp. Students will learn how to interact with a Linux server to copy, upload and manage files using both graphical and command-line tools.
Tech Orientation: Git & utilities
Version control is a key concept in coding and will be used throughout the camp. Students will learn to use Git for version control, allowing them to manage changes to their files and work collaboratively on the same files with others. Other commonly useful Linux utilities will also be covered.
Intro to the Web: How a series of tubes allows you to reach out across the world and touch people
What is the internet? Students will take a conceptual ride through an everyday action on the web. Learn how physically touching a computer keyboard (or phone screen) can transmit a message to millions of people across vast distances within a brief moment.
Review of HTML & CSS
We'll review the pre-work basics of HTML elements, CSS selectors, and style modifications. This will include an introduction to concepts of the box models, selector priority, and inheritance.
Drawing with Code
Collaborative Techniques: Pair programming & code review
Technical projects require cooperation. It's not enough to have good coding skills, we need to be skilled at working with and caring for each other. This class teaches effective techniques for collaborating with other developers, including pair programming, code review, and specifications.
So you've made a web site or application. How do you get it online? This class is a quick tour through the various systems involved in getting a site into "production". Learn how to set up a domain, secure and configure web hosting, and use application hosting platforms.
Using CSS Grid frameworks
We will learn to use CSS grid frameworks (e.g. Bootstrap, Bulma) to create grid systems to match the layout of a visual design.
Threat Modeling / Security
The internet is a dangerous place, full of bots, hackers, spies, and other enemies. This class introduces the concept of Threat Modeling, or building a model of security threats in order to improve the security of the systems we build.
Hacking Web services for POWER: Don't bother coding when you can hack it together for free
The internet is an abundant place, full of free services that can be put together into powerful applications. Students will collaboratively build highly functional websites without touching any code.
Death to Google, Facebook and Amazon, let's run the internet ourselves! This class builds on the previous class "Deploying" to teach how to run internet infrastructure in a way that protects privacy and autonomy. Learn the basics of running a server, using Docker, and deploying existing web applications like Nextcloud.
Static Sites: Build for the web without using databases and complicated servers
Students will learn about static site generation programs and how they can be used to quickly create websites that are fast and easy to update and maintain.