Notes

TypeScript and Set Theory

How does set theory help to understand type assignability and resolution in TypeScript?

#typescript

Typing a convict Config Schema

How can we map config options to return types in a convict config schema?

#typescript

Revisiting Data Structures in JavaScript

Implementing in JS all methods of linked lists, stacks, trees, hash tables, and graphs.

#data-structures

Docker

How can we run an app in a reproducible isolated environment?

#docker

The OAuth Protocol

How can a user allow an app to access user data at a third-party service?

#oauth

Git

How do we use git to manage changes to source code over time?

#git

Just JavaScript by Dan Abramov

What does Dan Abramov's mental model of JavaScript look like?

#javascript

JavaScript Hard Parts by Will Sentance

What does Will Sentance's mental model of JavaScript look like?

#javascript

Pointers in C

What is the purpose of pointers in C and how should we work with them?

#c-lang

Big O Notation

Understanding Big O notation, approximations when determining runtimes, and classification of runtimes: constant, logarithmic, linear, quasilinear, quadratic, exponential, factorial, etc.

#algorithms

Behavioral Design Patterns

Summary of all the behavioral design patterns: memento, state, iterator, strategy, observer, command, template method, mediator, chain of responsibility, and visitor.

#design-patterns

Structural Design Patterns

Summary of all the structural design patterns: composite, adapter, decorator, facade, flyweight, bridge, and proxy.

#design-patterns

Hash Tables

Understanding what hash tables are and how they work, collisions, common operations, etc.

#data-structures

Arrays and Linked Lists

Features and implementation of linked lists and arrays, singly and doubly linked lists, circular linked lists, common operations, etc.

#data-structures

Stacks and Queues

A stack is container where pieces of data enter and exit from a single end, following the last-in-first-out (LIFO) principle.

#data-structures

Trees

Trees, nodes, binary trees, breadth-first search, depth-first search, pre-order, in-order and post-order traversal, common operations, etc.

#data-structures

Graphs

Graphs, cycles, adjacency matrix and adjacency list, implementations, etc.

#data-structures

Recursion

Recursion is when a function calls itself, reducing a task to smaller subtasks until reaching a base subtask that it can perform without calling itself, and then using the result of that base subtask in the smaller subtasks until reaching a final result.

#algorithms

Sort Algorithms

Bubble sort, selection sort, insertion sort, merge sort, quick sort, counting sort, bucket sort, etc.

#algorithms

Search Algorithms

Linear search, binary search, ternary search, jump search, exponential search, etc.

#algorithms

Heaps and Tries

A heap is a type of tree with two properties: completion and heap property. A heap is complete, i.e. every level is fully filled, or has nodes inserted consecutively from left to right.

#data-structures

Flutter State Management with Provider

Managing state in Flutter with Provider: ChangeNotifier, ChangeNotifierProvider, Provider.of, Consumer, etc.

#flutter #dart

Flutter UI

Notes on Flutter UI: assets, app icon, splash screen, themes, fonts, images, widgets, gestures, etc.

#flutter

PyQt

How to work with PyQt: setup, QtDesigner, free-form design, event handling, intercepting events, fbs, styling, etc.

#python #qt

Flutter Basics

Notes on Flutter: commands, VSCode tips, navigation, networking, persistence, releasing, etc.

#flutter

Firebase Basics

Notes on Firebase and Jeff Delaney's courses: setup, data modeling, CRUD ops, composite index, data relationships, etc.

#firebase

SQL

Operations, operators, modifiers, data types, constraints, aggregate functions, numeric functions, string functions, date functions, conditional functions, subqueries, views, stored procedures, triggers, events, transactions, concurrency, database design, indexing, etc.

#sql

JavaScript OOP

Object-Oriented Programming in JavaScript: principles, object creation, factory functions, constructor functions, classes, prototypes, composition, inheritance, static methods, getters and setters, etc.

#javascript