Unless stated otherwise, checking off a learning goal involves completing a project using the thing that is learnt.
Tech-related
General
- Launch 1 project
- Launch 2 projects
- Launch 3 projects
- Create an app that includes some kind of chat functionality
- Create an IoT enabled device (Alarm clock with wireless connectivity?)
Web Development
General
- Set up a reverse proxy
- Run multiple services on one machine.
Frontend
- Svelte
- Vue
- HTMX
- Hugo templates
Backend
- ScyllaDB
- Utilize Pocketbase to develop an app
- Learn about database security and encryption
- Build a basic backend in Go
- Build a basic backend in Rust
Automation Tools
- Create a backend that can be deployed with a single docker/podman compose file
- Learn to use GitHub actions for CI
- Use CD to automatically create releases
Embedded
- Design and commission a PCB relying on a RP2040 board
- Design and commission a PCB relying on a nRF52840 board
- Design and commission a PCB relying on an ESP32S3 board
- Design and commission a PCB relying on a ESP32C6 board
- Implement a parallel adder in SystemVerilog
- Implement an ALU in SystemVerilog
- Design a simple CPU in SystemVerilog
- Simulate a SystemVerilog design using a Verilog emulator (like Verilator)
Low-level Programming
Microcontrollers
- Learn to write bare-metal code using C++
- Learn to write bare-metal code using Rust
- Learn how USB works
GPU Programming
- Draw a triangle using Vulkan/Vulkano
- Use GLSL to implement a shader
- Implement any algorithm on the GPU using Vulkan
- Learn about Vulkan Kompute