Cheat sheets
Cheat sheets for programming subjects, one page each, from Novice to Master: the commands, syntax and ideas you reach for every day.
Angular
- Templates and Interpolation · Novice
- The Structure of a Component · Novice
- Angular Components: an overview · Novice
- Project Structure · Novice
- Creating an Angular App · Novice
- Linking to Other Pages · Apprentice
- Event Binding and Two-Way Binding · Apprentice
- Passing Data with input() · Apprentice
- Defining the Routes · Apprentice
- Providing the Router · Apprentice
- Services and inject() · Apprentice
- Component Lifecycle · Apprentice
- Signals and computed · Apprentice
- @if and @for · Apprentice
- Property Binding · Apprentice
- Creating a Shared Data Service · Journeyman
- Route Parameters in Angular: an overview · Journeyman
- Sending Messages with output() · Journeyman
- Login and Register in Angular · Journeyman
- Reading Query Parameters · Journeyman
- Query Parameters in Angular: an overview · Journeyman
- Defining the Links · Journeyman
- Reading the Route Parameter · Journeyman
- Signals and Observables Together · Journeyman
- Observables and RxJS Basics · Journeyman
- HttpClient in Angular · Journeyman
- Why Share Data Between Components? · Journeyman
- Route Guards and HTTP Interceptors · Freelancer
API
- History of Client-Server Architecture · Journeyman
ASP.NET Core
- What is ASP.NET Core · Novice
- Creating an MVC Project · Apprentice
- Layouts and _ViewStart · Apprentice
- Authentication vs Authorization · Apprentice
- Model Binding and Validation: an overview · Apprentice
- Client-Side Validation · Apprentice
- HTTP Status Codes: an overview · Apprentice
- Web APIs with Controllers: an overview · Apprentice
- Your First Minimal API · Apprentice
- The MVC Pattern in ASP.NET Core · Apprentice
- Razor Syntax and Tag Helpers · Journeyman
- Controllers and Actions · Journeyman
- Passing a Model to a View · Journeyman
- GET and POST Actions · Journeyman
- Model Binding a Form · Journeyman
- Route Values and the Query String · Journeyman
- Conventional and Attribute Routing · Journeyman
- Cookie Authentication and [Authorize] · Journeyman
- Registering Services · Journeyman
- Data Annotations and ModelState · Journeyman
- Securing a Web API with JWT Bearer · Journeyman
- POST · Journeyman
- Creating an API Controller · Journeyman
- Deploying a Web API and an Angular App to Azure · Journeyman
- Returning a Partial View from an Action · Journeyman
- MVC Partials with fetch: an overview · Journeyman
- Returning ActionResult<T> · Journeyman
- PUT and DELETE · Journeyman
- GET · Journeyman
- Partial Views · Journeyman
- Session State · Journeyman
- Handling Global Exceptions in ASP.NET Core · Freelancer
C#
- C# Data Types · Novice
- Introduction to Arrays · Novice
- What is a Variable · Novice
- Your First C# Program · Novice
- Understanding the String Class · Novice
- String Interpolation · Novice
- While Loop · Novice
- If · Novice
- Arithmetic and Expressions in C# · Novice
- Windows Setup for C#: an overview · Novice
- Network Communication, IP Addresses and Ports · Novice
- DRY Code in C# · Novice
- Working with Objects in C#: an overview · Novice
- For Loop · Novice
- Array Basics · Novice
- Introduction to Methods: an overview · Novice
- Switch · Apprentice
- Switch Expressions and the Conditional Operator · Apprentice
- Foreach Loop · Apprentice
- Organizing Code into Methods · Apprentice
- Multiple Conditions · Apprentice
- Do-While Loop · Apprentice
- Useful String Methods · Apprentice
- Converting Data Types in C# · Apprentice
- But Arrays Can Be Tedious · Apprentice
- Common String Tasks · Apprentice
- What is a Constructor? · Apprentice
- Methods on a Class · Apprentice
- What Arrays Solve · Apprentice
- Dictionaries in C# · Apprentice
- Writing Tests · Apprentice
- Inheritance in C# · Apprentice
- What is a Dependency · Apprentice
- Adding Test Classes · Apprentice
- Polymorphism in C# · Apprentice
- Test-Driven Development · Apprentice
- Lambda Expressions · Apprentice
- Abstraction in C#: an overview · Apprentice
- Exceptions in C# · Apprentice
- Reading a File in C# · Apprentice
- File, FileInfo and Path · Apprentice
- Working with Files in C#: an overview · Apprentice
- What is a Design Pattern · Apprentice
- Software Interfaces · Apprentice
- Inheritance Review · Apprentice
- Introduction to Inheritance in C# · Apprentice
- Planning Unit Tests · Apprentice
- The MSTest Framework · Apprentice
- Working with List<T> · Apprentice
- Introduction to List<T> · Apprentice
- Auto-Properties and Read-Only Properties · Apprentice
- Fields vs Properties · Apprentice
- Writing the Class in C# · Apprentice
- Defining an Object · Apprentice
- Practice: Creating Methods · Apprentice
- Data Access Objects · Journeyman
- Mapping Data to Models · Journeyman
- ADO.NET Objects · Journeyman
- Example: a Product DAO · Journeyman
- Configure the Project for SQL Server · Journeyman
- Querying a Database with ADO.NET: an overview · Journeyman
- Inheritance and Constructors · Journeyman
- Calling a Stored Procedure from C# · Journeyman
- Overriding Methods · Journeyman
- Layers: Models, Services, Controllers · Journeyman
- HashSet · Journeyman
- Constructor Injection · Journeyman
- Query and QuerySingle · Journeyman
- Parameters and Mapping to Models · Journeyman
- Appending to a File · Journeyman
- Solving Multiple Inheritance · Journeyman
- Writing Log Entries · Journeyman
- Defining Interfaces · Journeyman
- Adding Abstraction · Journeyman
- A Simple API Client · Journeyman
- Iterator · Journeyman
- Factory Method · Journeyman
- Common LINQ Methods · Journeyman
- JSON Web Tokens · Journeyman
- Hashing and Encryption · Journeyman
- HttpClient Basics · Journeyman
- Reading JSON into Models · Journeyman
- Tasks, async and await · Journeyman
- Query Syntax vs Method Syntax · Journeyman
- What is LINQ? · Journeyman
- Creating the LogService · Journeyman
- Logging Exceptions in C#: an overview · Journeyman
- Writing a File: StreamWriter's Defaults · Journeyman
- Summary · Journeyman
- Execute: Insert, Update and Delete · Journeyman
- Why Dapper · Journeyman
- Stacks · Journeyman
- Queues · Journeyman
- Polymorphism with Base Classes · Journeyman
- Mapping Rows to Models · Journeyman
- Working with User Input · Journeyman
- Full Example · Journeyman
- Polymorphism with Interfaces · Freelancer
Containers
- Windows + WSL + Docker · Apprentice
- Intro to Docker · Apprentice
- Dockerfile Essentials · Journeyman
- Docker CLI Essentials · Journeyman
- Hosting Postgres in Docker · Journeyman
- Docker vs Kubernetes · Freelancer
CSS
- CSS · Novice
- What is Bootstrap? · Novice
- Put Your Page Online for Free · Novice
- The Box Model: Content, Padding, Border and Margin · Novice
- Fonts and Text: Family, Size, Weight and Spacing · Novice
- Pictures from CSS: Background Images · Novice
- Color: Names, Hex, rgb() and hsl() · Novice
- Type, Class and ID Selectors · Novice
- Hooks for CSS: the class and id Attributes · Novice
- Structure Elements: header, nav, main, section and footer · Novice
- The Page Skeleton, and Three Places CSS Can Go · Novice
- Elements, Tags and Attributes · Novice
- Look Inside Any Page with Developer Tools · Novice
- Your First CSS Rule · Novice
- Setup: VS Code, a Browser and Node.js · Novice
- What You Can Build with CSS · Novice
- Absolute and Fixed · Apprentice
- FlexBox and Justify Content · Apprentice
- Static and Relative · Apprentice
- Sticky · Apprentice
- Utility Classes · Apprentice
- Components · Apprentice
- The Grid System · Apprentice
- Transforms: Move, Turn and Grow · Apprentice
- Transitions: Smooth Changes · Apprentice
- Custom Properties: Variables in CSS · Apprentice
- Finishing Touches: Rounded Corners, Shadows and Gradients · Apprentice
- Hierarchy, Alignment and Whitespace · Apprentice
- Responsive Design and the Viewport · Apprentice
- CSS Grid: Rows and Columns · Apprentice
- Flexbox Alignment: justify-content and align-items · Apprentice
- Flexbox: Lining Things Up in a Row or a Column · Apprentice
- Positioning: fixed and sticky · Apprentice
- Positioning: relative and absolute · Apprentice
- Normal Flow and the display Property · Apprentice
- Browser Defaults and a Small Reset · Apprentice
- Pseudo-Elements: ::before, ::after and ::marker · Apprentice
- Pseudo-Classes: :hover, :focus-visible, :nth-child() and More · Apprentice
- Attribute Selectors · Apprentice
- Combinators: Descendant, Child and Sibling · Apprentice
- Inheritance: What Children Get from Their Parents · Apprentice
- Specificity: Scoring a Selector · Apprentice
- The Cascade: How the Browser Picks a Winner · Apprentice
- Units: px, rem, em, % and Viewport Units · Apprentice
- box-sizing: Making Width Mean What You Think · Apprentice
- Margin, Padding and Border in Practice · Apprentice
- Web Fonts: Using Any Font You Like · Apprentice
- Grid · Journeyman
- Mobile-First Layouts with Bootstrap · Journeyman
- Will It Work Everywhere? Browser Support and @supports · Journeyman
- Common Layout Bugs and How to Fix Them · Journeyman
- Debugging Layouts with Developer Tools · Journeyman
- Bootstrap and Tailwind: What a Framework Gives You and What It Costs · Journeyman
- Utility Classes and Utility-First CSS · Journeyman
- Naming Things: BEM and Component Classes · Journeyman
- Motion That Respects the Reader: prefers-reduced-motion · Journeyman
- Keyframe Animations · Journeyman
- Light and Dark Themes with prefers-color-scheme · Journeyman
- Design Tokens: a Small Design System · Journeyman
- Color That Works: Palettes and Contrast · Journeyman
- Type That Reads Well: Scale, Line Length and Pairing · Journeyman
- Fluid Type and Spacing with clamp() · Journeyman
- calc(), min() and max(): Math in CSS · Journeyman
- Responsive Images: max-width, object-fit and srcset · Journeyman
- Mobile First: Start Small, Then Add Room · Journeyman
- Media Queries and Breakpoints · Journeyman
- Flexbox or Grid? Choosing the Right Tool · Journeyman
- Grids That Fill the Space: repeat(), minmax() and auto-fit · Journeyman
- Placing Items: Lines, Spans and Named Areas · Journeyman
- Flexbox Wrapping and gap · Journeyman
- Flexbox Sizing: flex-grow, flex-shrink and flex-basis · Journeyman
- Stacking: z-index and What Sits on Top · Journeyman
- Cascade Layers with @layer · Journeyman
- CSS Nesting · Journeyman
- Modern Selectors: :is(), :where() and :has() · Journeyman
- CSS Performance: What Slows a Page, and Critical CSS · Freelancer
- Container Queries: Components That Fit Their Space · Freelancer
- Subgrid: Lining Up Cards · Freelancer
Data
- ETL - Moving from OLTP to OLAP · Apprentice
Data Structures
- Setup: VS Code and Your Language · Novice
- 800 Lost Items and a Line at the Desk: What a Data Structure Is · Novice
- Arrays and Lists · Novice
- Why "Play Track 750,000" Is Instant and "Find Golden Hour" Isn't: Memory as Mailboxes · Novice
- What You Can Build with Data Structures · Novice
- Loops and Methods, Five Ways · Novice
- Twice the Stuff, How Much More Work? · Novice
- Why the Library Check Slows Down and Play Doesn't: O(1) and O(n) · Novice
- How Slow Will It Get? Counting Steps · Novice
- How Many Times Can You Halve a Million? O(log n) · Novice
- Will It Survive a Million Users? The Doubling Table · Novice
- Why the Duplicates Button Crawls: O(n²) · Novice
- Classes and Objects · Apprentice
- Generics: a Box for Any Type · Apprentice
- References: Two Names, One Object · Apprentice
- Why Does This Loop Take Seconds? Your Language's List · Apprentice
- Jump to Song 500: Arrays · Apprentice
- Fast in the Demo, Slow for Users: Best, Worst and Average · Apprentice
- Is It Really Slow? Measure Your Own Code · Apprentice
- "Play Next" Without Moving Everyone: Linked Lists · Apprentice
- Are Two Loops Twice as Slow? Why O(2n) Is Still O(n) · Apprentice
- The Ninth Song Won't Fit: Growing Arrays · Apprentice
- Sorting a Million Songs, and the Playlist You Can't Compute: O(n log n) and O(2ⁿ) · Apprentice
- Answer It in One Step: Trading Memory for Time · Apprentice
- Reaching the Last Song, and Going Back One: Doubly Linked Lists · Apprentice
- First Come, First Served at Rush Hour: Queues · Apprentice
- Undo the Last Thing First: Stacks · Apprentice
- Is That Song in My Library? Linear Search · Apprentice
- Redo, the Back Button and Matching Brackets: Stacks at Work · Apprentice
- One Song in a Million, in 20 Looks: Binary Search · Apprentice
- The Folder Tool That Never Stopped: Base Cases · Apprentice
- Where Do the Waiting Calls Wait? The Call Stack · Apprentice
- Putting the Leaderboard in Order: Selection Sort · Apprentice
- One New Score on a Sorted Leaderboard: Insertion Sort · Apprentice
- Finding Maya's Coat Without a Ticket: Hash Tables · Apprentice
- How Big Is This Folder? Recursion · Apprentice
- The Front Desk Finds You in One Scan: Dictionaries · Apprentice
- Have I Seen This Before? Sets · Apprentice
- Who Works Under Whom? Trees · Apprentice
- Is Adding a Song Slow? Amortized Cost · Journeyman
- In Your Textbook: Big-O, Big-Θ and Big-Ω · Journeyman
- Arrays vs Linked Lists · Journeyman
- Asking the Same Question Twice: Memoization · Journeyman
- Sections Inside Sections: Recursion on Nested Data · Journeyman
- Sorting Without a Second Copy: Quicksort · Journeyman
- In Your Textbook: Abstract Data Types · Journeyman
- A Million Songs to Sort Before Bedtime: Merge Sort · Journeyman
- Most Played, Then A to Z: Stable and Built-In Sorts · Journeyman
- 5,000 Folders Deep: Recursion or a Loop? · Journeyman
- Cutting In, and Keeping Only the Last 100: Deques and Ring Buffers · Journeyman
- The Feature Is Slow: Which Structure Fixes It? · Journeyman
- Print the Chart, Count the Teams: Walking a Tree in the Right Order · Journeyman
- How Many Steps Apart? Breadth-First Search · Journeyman
- Who Knows Whom? When Anything Can Connect: Graphs · Journeyman
- Your Turn at the Whiteboard: Solving a Problem Out Loud · Journeyman
- Who Can I Reach? Depth-First Search · Journeyman
- How a Phone Suggests the Next Word: Tries · Journeyman
- Fair Ties, Ready-Made: Priority Queues in Your Language · Journeyman
- Who's Next in the Emergency Room? Heaps · Journeyman
- Are These Two Friends? Adjacency Lists and Grids · Journeyman
- When a Loop Inside a Loop Is Too Slow: Hash Tables at Work · Journeyman
- A Contact List That's Fast to Search and Easy to Change: Binary Search Trees · Journeyman
- Why Can't the Dictionary Find Card 1042? Good Keys · Journeyman
- The Sorted Import That Made Search Crawl: Why Balance Matters · Journeyman
- New Problems, Your Choice · Journeyman
- Can Any Sort Go Faster? The n log n Speed Limit · Freelancer
- Which Course First? Topological Sort · Freelancer
- The Fastest Drive, Not the Fewest Roads: Dijkstra's Algorithm · Freelancer
- One Row in a Billion: B-Trees and Database Indexes · Freelancer
Developer Tools
- Visual Studio · Novice
- Using Finder and Working with the Terminal · Novice
- IntelliJ IDEA · Novice
- winget · Novice
- What is a Code Editor? · Novice
- VS Code · Novice
- Using File Explorer · Novice
- Working with the Terminal (Windows): an overview · Novice
- Common Terminal Commands · Novice
- Windows Terminal and Git Bash · Novice
- Working with the Terminal (macOS): an overview · Novice
- What is an IDE? · Novice
- OS and Terminal Tools (Windows): an overview · Novice
- Homebrew · Novice
- .http Files in Visual Studio · Journeyman
DevOps
- DevOps - Terraform - Infrastructure as Code (IaC) · Freelancer
Entity Framework Core
- Dapper or EF Core? · Journeyman
- Querying and Saving with EF Core · Journeyman
- DbContext and Entities · Journeyman
- What is an ORM? · Journeyman
Files
- JSON File Structure · Novice
- CSV File Structure · Novice
- XML File Structure · Apprentice
Git
- Git and GitHub · Novice
- GitHub · Novice
- Git · Novice
- Working with Git: an overview · Novice
- What is Version Control? · Novice
- Git Workflow · Apprentice
- Git Feature Branching · Apprentice
- The Git Workflow · Apprentice
HTML
- HTML and the Power of CSS · Novice
- HTML · Novice
- Ordered and Unordered Lists · Novice
- A First Look at CSS · Novice
- Adding Pictures · Novice
- Links to Other Sites · Novice
- Bold, Italic and What They Mean · Novice
- Paragraphs, Line Breaks and Special Characters · Novice
- Headings and the Page Outline · Novice
- The Page Skeleton · Novice
- Attributes · Novice
- Elements and Tags · Novice
- Files and Folders for a Website · Novice
- Setup: VS Code, a Browser and Node.js · Novice
- How a Browser Shows a Page · Novice
- What You Can Build with HTML · Novice
- What you can build with HTML · Novice
- Semantic HTML · Apprentice
- Developer Tools · Apprentice
- Form Validation · Apprentice
- Titles, Descriptions and Search Results · Apprentice
- Who Accessibility Helps · Apprentice
- Video and Audio · Apprentice
- Image Formats and File Size · Apprentice
- Alt Text That Helps · Apprentice
- Built-in Validation · Apprentice
- Dropdowns, Text Areas and Suggestions · Apprentice
- Checkboxes, Radio Buttons and Fieldsets · Apprentice
- Input Types for Email, Numbers, Dates and More · Apprentice
- Buttons · Apprentice
- Text Inputs and Labels · Apprentice
- How a Form Sends Data · Apprentice
- Validating Your Page · Apprentice
- Details and Summary: Show and Hide · Apprentice
- Quotes, Dates, Code and More · Apprentice
- Tables for Data · Apprentice
- Description Lists · Apprentice
- Div and Span: Boxes with No Meaning · Apprentice
- Article, Section and Aside · Apprentice
- Header, Nav, Main and Footer · Apprentice
- What Semantic HTML Means · Apprentice
- Put Your Site Online for Free · Apprentice
- Links Within a Page, Email and Phone Links · Apprentice
- Links Between Your Own Pages · Apprentice
- Developer Tools: Inspecting a Page · Apprentice
- Link Previews with Open Graph · Journeyman
- Testing a Page for Accessibility · Journeyman
- What a Screen Reader Hears · Journeyman
- Icons, Stylesheets and Resource Hints · Journeyman
- Loading Scripts: defer, async and Modules · Journeyman
- How a Page Loads · Journeyman
- Embedding Maps and Videos with iframe · Journeyman
- Captions and Subtitles · Journeyman
- The Picture Element · Journeyman
- Responsive Images with srcset and sizes · Journeyman
- Image Dimensions and Lazy Loading · Journeyman
- Hints and Error Messages Everyone Can Use · Journeyman
- Autocomplete and Phone Keyboards · Journeyman
- Why the Server Checks Again · Journeyman
- Popovers and Dialogs · Journeyman
- Table Headers, Sections and Spanning Cells · Journeyman
- Keeping Up with HTML · Journeyman
- Structured Data with JSON-LD · Freelancer
- ARIA: When HTML Isn't Enough · Freelancer
- How the Browser Parses HTML · Freelancer
- Templates, Slots and Custom Elements · Freelancer
Java
- What is a Variable · Novice
- Java Maven Project · Novice
- While and Do-While Loops · Novice
- Introduction to Functions · Novice
- For and For-Each Loops · Novice
- The String Class and Useful String Methods · Novice
- Working With Data Types · Novice
- If and Multiple Conditions · Novice
- Arithmetic and Expressions · Novice
- Introduction to Arrays and Java Array Basics · Novice
- Working with Objects: What is an Object · Novice
- DRY Code · Novice
- Network Communication: an overview · Novice
- Converting between Data Types · Apprentice
- Organizing code into functions · Apprentice
- Practice: Creating Functions · Apprentice
- Switch · Apprentice
- Defining an Object · Apprentice
- Introduction to ArrayList: Working with ArrayList · Apprentice
- What is a Constructor · Apprentice
- What Arrays Solve, and Why They Can Be Tedious · Apprentice
- Writing the Class in Java · Apprentice
- JUnit Testing Framework and Planning Unit Tests · Apprentice
- Writing Tests · Apprentice
- Adding Test Classes · Apprentice
- Introduction to Inheritance and Generalization vs Specialization · Apprentice
- Lists · Apprentice
- Inheritance in Java · Apprentice
- Maps and Sets · Apprentice
- Abstraction in OOP and Inheritance Review · Apprentice
- The File Object · Apprentice
- Reading a File · Apprentice
- Working with Exceptions · Apprentice
- Software Interfaces · Apprentice
- Data Access Objects · Journeyman
- Objects from a Database: Creating Data Models · Journeyman
- Working with User Input · Journeyman
- JDBC Objects · Journeyman
- Configure the Project · Journeyman
- Mapping Data to Models · Journeyman
- Mapping Data to Models: an overview · Journeyman
- Queues and Stacks · Journeyman
- Working with Java Streams · Journeyman
- Inheritance and Constructors, and Overriding Methods · Journeyman
- Common Stream Functions · Journeyman
- Adding Abstraction · Journeyman
- Writing to a File · Journeyman
- The LogService · Journeyman
- What is Polymorphism? Changing Roles · Journeyman
- Defining Interfaces · Journeyman
- Logging Exceptions: an overview · Journeyman
- Summary · Journeyman
- Solving Multiple Inheritance · Journeyman
- Polymorphism with Interfaces · Freelancer
JavaScript
- Introducing the DOM: an overview · Novice
- Java vs JavaScript: an overview · Novice
- The JavaScript Runtime · Novice
- Static vs Dynamic Typing · Novice
- Static vs Dynamic Typing · Novice
- C# vs JavaScript: an overview · Novice
- The CSS You Need for JavaScript · Novice
- The HTML You Need for JavaScript · Novice
- What Is an Object · Novice
- What Is an Array · Novice
- Parameters and Return Values · Novice
- What Is a Function · Novice
- Counting with for · Novice
- Repeating with while · Novice
- Making Decisions with if and else · Novice
- Booleans and Comparisons · Novice
- Strings and Template Literals · Novice
- Numbers and Math · Novice
- Variables with let and const · Novice
- JavaScript on a Web Page · Novice
- Your First JavaScript Program · Novice
- Setup: VS Code, a Browser and Node.js · Novice
- What You Can Build with JavaScript · Novice
- Manipulating the DOM Structure · Apprentice
- Working with Elements: Common DOM Interactions · Apprentice
- Working with Functions and Arrays · Apprentice
- Form Events · Apprentice
- Locating DOM elements · Apprentice
- Responding to Events · Apprentice
- Non-Form Events · Apprentice
- Fetch vs Axios · Apprentice
- Fetch · Apprentice
- Summary · Apprentice
- Arrow Functions · Apprentice
- Arrays · Apprentice
- Working with Functions · Apprentice
- Getting Data with fetch · Apprentice
- What a Web API Is · Apprentice
- Timers: setTimeout and setInterval · Apprentice
- Why Code Can't Stop and Wait · Apprentice
- Remembering Data with localStorage · Apprentice
- Reading What People Type · Apprentice
- The Event Object · Apprentice
- Responding to Clicks with addEventListener · Apprentice
- Modules: import and export · Apprentice
- Debugging with Breakpoints · Apprentice
- Handling Errors with try, catch and finally · Apprentice
- Classes: Blueprints for Objects · Apprentice
- Methods and this · Apprentice
- Scope: Where a Variable Can Be Seen · Apprentice
- JSON: Data You Can Save and Send · Apprentice
- Missing Values: null, undefined, ?. and ?? · Apprentice
- Equality and Truthy Values · Apprentice
- String Methods · Apprentice
- Sorting Arrays · Apprentice
- map and filter · Apprentice
- Functions as Values: Callbacks · Apprentice
- Spread and Rest · Apprentice
- Destructuring · Apprentice
- Arrays of Objects · Apprentice
- Finding Things in an Array · Apprentice
- Looping Through an Array · Apprentice
- Adding and Removing Items · Apprentice
- Function Expressions and Arrow Functions · Apprentice
- switch and the Conditional Operator · Apprentice
- Combining Conditions with And, Or and Not · Apprentice
- Types and Converting Between Them · Apprentice
- Using The Fetch API · Journeyman
- Canceling Events · Journeyman
- Using Async / Await · Journeyman
- Using the fetch API · Journeyman
- Async and Await · Journeyman
- Put Your App Online with GitHub Pages · Journeyman
- Keeping Pages Safe: XSS and innerHTML · Journeyman
- Your First Tests with Vitest · Journeyman
- Clean Code with ESLint and Prettier · Journeyman
- A Dev Server and Build with Vite · Journeyman
- npm and Packages · Journeyman
- Sending Data with fetch · Journeyman
- Loading, Empty and Error States · Journeyman
- When fetch Fails · Journeyman
- async and await · Journeyman
- Promises: then, catch and finally · Journeyman
- The Event Loop, in Pictures · Journeyman
- Checking a Form with JavaScript · Journeyman
- Drawing the Page from Your Data · Journeyman
- Keyboard Users and Accessible Controls · Journeyman
- Bubbling and Event Delegation · Journeyman
- Throwing Your Own Errors · Journeyman
- Inheritance with extends and super · Journeyman
- Private Fields, Getters and Setters · Journeyman
- Losing this, and How Arrow Functions Help · Journeyman
- Closures at Work: Private State and Factories · Journeyman
- Closures: Functions That Remember · Journeyman
- Hoisting, var and the Temporal Dead Zone · Journeyman
- reduce · Journeyman
- Debounce and Throttle · Freelancer
- Testing a Page with jsdom · Freelancer
- Testing Edge Cases, Errors and Async Code · Freelancer
- Waiting for Several Things at Once · Freelancer
- Prototypes: What Classes Are Made Of · Freelancer
Logging
- Python - Flask - Request Logging · Journeyman
OOP
- OOP - Classes - Coupling and Cohesion · Apprentice
- OOP - Encapsulation - objects KNOW and DO · Apprentice
- OOP - Encapsulation · Apprentice
- OOP - Abstraction - Simplify · Journeyman
- OOP - Inheritance · Journeyman
- OOP - Abstraction · Journeyman
Python
- Python - Variables and Data Types · Novice
- Python - Decisions - If vs Match · Novice
- Python Functions · Novice
- Python - Memory Management - Stack vs Heap · Apprentice
- Python - OOP - Writing Classes · Apprentice
- Python - Loops · Apprentice
- Python - List Comprehensions · Apprentice
- Python - Reading a Text file · Apprentice
- Python - Reading a JSON file · Apprentice
- Python - Reading a CSV file · Apprentice
- Python - OOP - Classes · Apprentice
- Python - Exception Handling · Apprentice
- Python - Collections · Apprentice
- Python - Top 5 Dunders · Journeyman
- Python - Database - SQLAlchemy · Journeyman
- Python - Protocols - Duck Typing · Journeyman
- Python - OOP - Inheritance · Journeyman
- Python - OOP - ABCs - Abastraction · Journeyman
React
- React Components: an overview · Novice
- Creating a React App: an overview · Novice
- Project Structure · Novice
- Managing Component State · Apprentice
- Passing Data To a Component · Apprentice
- What is a Hook · Apprentice
- Component Markup Rules · Apprentice
- Component Lifecycle · Apprentice
- Linking to other Pages · Apprentice
- Importing the Router and Defining the Routes · Apprentice
- Using Props and Routes: a Review · Apprentice
- Receiving Messages from Components · Journeyman
- The Redux Pattern and Slices · Journeyman
- Creating the Context · Journeyman
- Passing Values in the Path · Journeyman
- Using a Shared Data Context: Why Do We Need It? · Journeyman
- Reading the QueryString · Journeyman
- Adding Async Actions to the Store · Freelancer
- Creating the Store · Freelancer
REST
- REST - Request Response Pattern · Novice
- Insomnia Cheat Sheet · Apprentice
- HTTP Status Codes · Apprentice
- REST - Swagger API documentation · Journeyman
- Python Flask - REST APIs · Journeyman
- Java Spring Boot REST APIs · Journeyman
SDLC
- Agile is Iterative · Novice
- SDLC - Local Development · Apprentice
- SDLC - Basic Life Cycle · Journeyman
- SDLC - API Deployed to Azure · Journeyman
- SDLC - DevOps - It's an ETL Pipeline · Freelancer
- SDLC - Deployment Tool Overload - Part 1 · Freelancer
- Azure - App Service - Code vs Container · Freelancer
Software Development
- What is a Full Stack Developer? · Novice
- What is a Development Stack? · Novice
- The Back End · Novice
- How the Layers Work Together · Novice
- The Database · Novice
- The Front End · Novice
- Diagramming: an overview · Novice
- Unit Testing: an overview · Novice
- SDLC · Novice
- Abstraction in Art · Novice
- What is a Stream? Data at Rest and Data in Transit · Apprentice
- Extract Transform Load · Apprentice
- Interface Definition and User Interfaces · Apprentice
- Designing a User Experience · Apprentice
- Common UML Diagrams · Apprentice
Spring Boot
- start.spring.io · Apprentice
- MVC Pattern · Apprentice
- Returning HTTP Status Codes: an overview · Apprentice
- RESTful Web APIs · Apprentice
- Data (Model) · Journeyman
- Spring Controller · Journeyman
- Loading Partial Pages · Journeyman
- Server-Side Validation · Journeyman
- PUT and DELETE · Journeyman
- POST · Journeyman
- GET · Journeyman
- Returning ResponseEntity<T> · Journeyman
- The MVC Pattern · Journeyman
- Handling Global Exceptions · Freelancer
SQL
- What is a Database, and Why Do We Need One? · Novice
- The SELECT Statement · Novice
- The WHERE Clause · Novice
- MySQL Workbench · Novice
- What is an RDBMS · Novice
- Choosing Your Columns · Novice
- WHERE in T-SQL: an overview · Novice
- TOP and ORDER BY · Novice
- Simple SELECT Query and Specifying Columns · Novice
- SELECT Query Structure · Novice
- SELECT in T-SQL: an overview · Novice
- SQL Server Management Studio · Novice
- What is an RDBMS · Novice
- Updating Data · Apprentice
- Deleting Data · Apprentice
- Common Aggregate Functions · Apprentice
- Using Multiple Condition Filters · Apprentice
- Inserting Data · Apprentice
- ANSI Standard Syntax for DELETE · Apprentice
- ANSI Standard Syntax for UPDATE · Apprentice
- Joining Tables and the INNER JOIN · Apprentice
- One-to-One · Apprentice
- Database Relationships · Apprentice
- Common SQL Functions · Apprentice
- Calculations vs Aggregations, and the Common Aggregate Functions · Apprentice
- Joining Tables in T-SQL: an overview · Apprentice
- Calculations vs Aggregations · Apprentice
- Common T-SQL Functions · Apprentice
- Transactions · Apprentice
- Inserting Data · Apprentice
- Using Multiple Condition Filters · Apprentice
- Types of Filters · Apprentice
- Calculations in Columns · Apprentice
- SQL - DML - DDL - DCL · Apprentice
- SQL - SELECT Order of Operations · Apprentice
- SQL - the ANSI SELECT Syntax · Apprentice
- SQL SELECT · Apprentice
- HAVING · Journeyman
- Seeding and Importing Data · Journeyman
- Common Sense Design · Journeyman
- Create Database Scripts · Journeyman
- Many-to-Many · Journeyman
- OUTER JOIN · Journeyman
- Joining Multiple Tables · Journeyman
- Grouping Aggregations · Journeyman
- Types of Sub-Queries · Journeyman
- The CASE / WHEN Statement · Journeyman
- Where to use Sub-Queries · Journeyman
- Database Diagrams in SSMS · Journeyman
- Normalization · Journeyman
- Create Database Scripts in T-SQL · Journeyman
- Common Sense Design · Journeyman
- User-Defined Functions in T-SQL · Journeyman
- Creating Stored Procedures · Journeyman
- Views in T-SQL · Journeyman
- CASE / WHEN in T-SQL · Journeyman
- Where to Use Sub-Queries · Journeyman
- Types of Sub-Queries · Journeyman
- Joining Multiple Tables · Journeyman
- OUTER JOIN · Journeyman
- INNER JOIN · Journeyman
- Grouping Aggregations · Journeyman
Testing
- Unit Testing - Testing Assembly Line · Journeyman
- Python - Unit Testing with Mocks · Journeyman
TypeScript
- Setting up a TypeScript Project · Novice
- What is TypeScript: an overview · Novice
- Setting up TypeScript with Node · Novice
- Adding Models · Apprentice
- Interfaces · Apprentice
- Typed Functions · Apprentice
- Adding Models · Apprentice
- React with TypeScript · Journeyman
- Setup · Freelancer
Web APIs
- How to read a URL · Novice
- Static Websites · Apprentice
- Common HTTP Status Codes · Apprentice
- The Request / Response Pattern · Journeyman