The Webonomicon
An Introduction to Web Programming for the Cautious and Weary
This tutorial is a short introduction to web programming using modern tools and practices for data scientists who are comfortable using Python but have never built interactive websites before. All of the material is available under open licenses, and contributions through our GitHub repository are welcome. All contributors are required to respect our Code of Conduct.
This tutorial is still being outlined. Most sections will have additional examples (and much more explanation) before learners encounter it. Suggestions and help are greatly appreciated.
Learner Persona
- Harper, 28, has a master's degree in animal physiology and now works for a mid-sized veterinary pharmaceutical company.
- She learned a bit of R in an undergraduate biostatistics course, then picked up Python in grad school. She spends several hours a week analyzing data with Pandas and visualizing it with Plotly Express, and is comfortable with basic Git commands.
- Harper recently became responsible for maintaining a dashboard application built with Dash. She believes a better understanding of how web applications work in general will help her debug and extend it.
- Harper has tried doing asynchronous online courses a couple of times, but strongly prefers learning in real time with other people.
Lessons
- Introduction
- HTML and CSS
- An Hour of JavaScript
- JavaScript in the Browser
- HTTP
- A Server
- Using a Database
- Testing the Server
- Serving HTML
- Using Forms
- Using HTMX
- Database Migration
- Authentication
- Testing in the Browser
- Encryption
- Uploading Files
- Logging and Auditing
- Permissions
- Accessibility
- A Graphical User Interface
- Dynamic Graphics
- Internationalization
- Sessions
- Caching
Appendices
Acknowledgments
-
Juanan Pereira is a lecturer in Computer Science at the University of the Basque Country (UPV/EHU), where he researches and tries to integrate open source software, software engineering, and LLMs in education.
-
Greg Wilson is a programmer, author, and educator based in Toronto. He was the co-founder and first Executive Director of Software Carpentry and received ACM SIGSOFT's Influential Educator Award in 2020.
-
Grateful to co-authors of [Gans2020]
- And to everyone who gave feedback on [Wilson2022, Wilson2024]
start where you are · use what you have · help who you can