TODO Write an actual guide. This is just notes at this point.
Programming learning objectives:
- State - Values, types, and their access with variables and lists
- Iteration - repeated operations on similar state
- Branching - altering operations on different state
- State over time - trace and expect values changing over execution time
- Abstraction - create functions and classes to build upon over project time
Library learning objectives:
- Documenation - Find, use, and evaluate primary and secondary documentation sources
- Date/Time - Work with existing abstractions for calendaring utilities
- Input/Output - Flags & Environment variables, standard input and output, file reading and writing
- Data structures - lists and maps as a user
- HTTP Server - expose functionality as request/response over a network interface
- GUI Application - provide a clickable interface for users to interact with
- Math & Data Science - Polars, https://github.com/pola-rs/polars
Engineering learning objectives:
- Execution - Run programs with various inputs
- Source Control - create repositories, commits, and branches; compare and merge revisions
- Exceptions & Errors - Read and troubleshoot error messages from the programming environment
- Testing - write and execute automated programs to test & verify implemenations
- Debugging - Use environment tooling to inspect state and step through execution of a program
- Team - Collaborate on a project, in a single repository and reviewing other's changes