A set of tasks to do in a programming language to ensure you understand how to do the basics.
Each task involves writing some basic code e.g. write to a file. Build it with the appropriate tool, unit test it, bechmark it and strace it to see what it is doing unde rthe covers.
Both asynchronous and synchronous IO:
- Copy a file
- Read whole file into memory
- Random access in a file
- Sequential access
- Stream a file without bring it all into memory
Both asynchronous and synchronousi for both server and client:
- Transfer a large amount as quickly as possible (Throughput)
- Transfer a small amount in the shortest time (Latency)
- Benchmark operations on primitive types if they exist
- Build a binary calculator
- Profile the above
- Build a B-Tree and profile
- Use classes, structs, records, discriminated units etc to model a portfolio management domain