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