Sessions
Topics
1. Interfaces
- terminal / command line interface (CLI) → session 01
- essential commands:
ls, cd, pwd, mv, cp, rm, mkdir, cat, less
- shortkeys:
Tab, Up, Ctrl-r
- productivity commands:
grep, find, rsync
- SSH → session 02
- public-private keys, configuration
- Zsh → session 02
- Oh My Zsh plugins and themes
- editors → session 03
- VSCode: overview, extensions
- Vim: configuration, being productive
- Git → session 04
- status, init/clone, add/commit, pull/push, diff/log/show
- branch/switch/checkout, merge
- (fetch, rebase, remote, stash)
- AI agents → session 05
- AI for coding (web) and agents (CLI)
2. The Go language
- tour of Go → session 06
- example: duplicate lines
- go tool basics
- example: fetching URLs
- tour of Go (continued) → session 07
- example: lissajous
- example: web server
- Go's programming syntax → session 08
- basic syntax:
packages, imports, functions, variables, types, constants, for, if, ...
- deeper dive:
structs, pointers, methods
- many workers with Goroutines → session 09
- parallel thinking, fork-join pattern, workgroup management, goroutines vs. threads
- example: Mandelbrot
- shared memory between workers → session 13
- race conditions
- mutex, rw-mutex
- example: bank account with shared variables
- message passing with Go channels → session 14
- unbuffered, buffered, and unidirectional channels
- multiplexing
- example: bank account with channels
- case studies with concurrency → session 15
- caching function calls
- building a chat server
- performance and scalability → session 16
- case studies with parallel algorithms → session 17
- matrix-matrix multiplication
- histogram
3. Neural networks and PyTorch