Working notes on individual programming languages, C, Kotlin, C#/.NET, and Haskell, captured while learning, not polished tutorials.
- 01/28
C# Essentials
Curated C#/.NET content creators, conferences, libraries, and topics to keep an eye on.
- 02/28
Akka & the Actor Model
What the actor model is, why it beats blocking OOP method calls, and how to wire up Akka.NET actors in an ASP.NET Core API.
- 03/28
.NET Service Lifetimes
The three service lifetimes in .NET dependency injection, Transient, Scoped, and Singleton, and when each applies.
- 04/28
JWT Authentication with ASP.NET Identity
Setting up JWT bearer authentication on top of ASP.NET Core Identity, from NuGet packages through token generation.
- 05/28
Haskell
A learning resource for getting started with Haskell.
- 06/28
C: Variables
Declaring variables in C, and the printf format specifier basics.
- 07/28
C: Operators
Arithmetic and increment/decrement operators in C.
- 08/28
C: Statements
if, while, do-while, and for statements in C.
- 09/28
C: Functions
Defining and calling functions in C, and what the return type declaration means.
- 10/28
C: Function Prototypes
Declaring a function prototype so a function can be defined anywhere, not just before its first use.
- 11/28
C: Variable Scopes
Local vs. global variables in C, and how nested blocks can shadow an outer variable.
- 12/28
C: Storage Classes
What a storage class is, using static to persist a variable's value across calls, and extern for cross-file globals.
- 13/28
C: Pointers
What a pointer actually is, memory addresses, and the address-of operator.
- 14/28
C: Pointer Types
Declaring pointer variables in C, and the type rules for assigning into them.
- 15/28
C: Dereferencing
Using the dereference operator to access the original variable through a pointer.
- 16/28
C: Pointers as Parameters
How passing a pointer to a function lets that function modify a variable in the caller's scope.
- 17/28
C: Structures
Grouping variables into a struct, declaring the type, and accessing fields with the dot operator.
- 18/28
C: Pointers to Struct
Why you'd pass a pointer to a struct instead of the struct itself, and the arrow operator syntactic sugar.
- 19/28
C: Struct Pointers to Functions
Passing struct pointers to functions so modifications are visible back in the caller.
- 20/28
C, Resources
Curated links for practicing and learning C.
- 21/28
Kotlin: Variables
Declaring variables with val and var, type inference, string templates, and creating arrays in Kotlin.
- 22/28
Kotlin: Type Checks & Casts
The is/!is operators, smart casts, and the safe (nullable) cast operator in Kotlin.
- 23/28
Kotlin: Android/Compose Essentials
The onCreate/setContent entry point, writing @Composable functions, theming, and using Surface + Modifier for background color and padding.
- 24/28
Express Generator
Scaffolding a new Express project with express-generator, its CLI options, and running the generated app.
- 25/28
Setting Up Node.js with TypeScript
Initializing a Node project with TypeScript, compiling with tsc, and switching to ts-node so you don't have to juggle a dist folder.
- 26/28
TypeScript Compiler Basics
Initializing a TypeScript project and running the compiler in watch mode.
- 27/28
Express with Handlebars Templating
Wiring up the hbs templating engine in an Express app and pointing it at a views directory.
- 28/28
Testing with Jest & Supertest
Setting up Jest as a dev dependency, structuring test files, watch mode, and using Supertest for HTTP assertions against an Express API.