I wrote this course as the one I would’ve wanted when I was a junior/senior in undergrad trying to grind through a Computer Science degree. I knew how to write code, but did not quite understand how it built up to form a system.
Low Abstraction.
This course uses a very intentional stack:
- Raw Data - CSV
- Database - SQLite
- Server - Deno
- Templating - JSX
- Styling - Tailwind
- Ajax - HTMX
- Typing - JSDoc
I’m not interested in jumping straight to high level abstractions. I’ve spent enough of my career seeing what messes a lack of fundamentals can result in.
The formula:
-
Source. Data comes into the system as a CSV.
-
Normalize. Break it into related schemas.
-
Load. Move the data from a flat file into a database.
-
Interact. Scripts are written to interact with the data and aggregated into a CLI application
-
Expose. API layer is built on top of scripts to provide a simple REST interface for the data.
-
Enhance. UI layer is built on top of the API to enhance the experience of users interfacing with the application.
-
Analyze. Query the data to track key metrics.
-
Visualize. Present your data in a chart.
-
Package. Compile the application into a more portable to minimize friction for delivery.
-
Deploy. Run the application locally; expose with a VPN to your client devices.
Did I mention any hot new languages or frameworks?
No because that is not what’s important.
Wax on, wax off. I want you to focus on the basics.
It doesn’t matter how much syntactic sugar you layer on top of it. The fundamentals stay the same.
What matters more when the middle of the night and you’re debugging an issue in prod: how well you know the syntax of the abstraction you are using; or what is happening under the hood?