## JS Library 7/7: Pre-Releases and Nightly Releases

Learn how to setup pre-releases and nightly releases in your JavaScript library with semantic-release and github actions.

## JS Library 6/7: Maintenance Branches

Learn how to maintain multiple versions of your JavaScript library with maintenance branches.

## JS Library 5/7: Continuous Deployment

Learn how to continuous deployment to your JavaScript library with semantic-release and github actions.

## JS Library 4/7: Continuous Integration

Learn how to add continuous integration to your JavaScrit library with eslint, jasmine, and github actions.

## JS Library 3/7: Enforce Commit Message Conventions

Learn how to enforce commit message conventions in your JavaScript library with commitlint, husky, and commitizen.

## JS Library 2/7: Commit Message Conventions

Learn how to practice conventional and consistent commit messages in your JavaScript library.

## JS Library 1/7: Creating a JavaScript Library

Learn how to create and publish a public JavaScript library.

## Data Structures 7/7: Binary Search Trees

Learn how to implement binary search trees and see how they compare to other data structures.

## Data Structures 6/7: Binary Heaps

Learn how to implement min and max binary heaps and see how they compare to other data structures.

## Data Structures 5/7: Hash Tables

Learn how to implement hash tables and see how they compare to other data structures.

## Data Structures 4/7: Linked Lists

Learn how to implement linked lists and see how they compare to other data structures.

## Data Structures 3/7: Stacks and Queues

Learn how to implement stacks and queues and see how they compare to other data structures.

## Data Structures 2/7: Dynamic Arrays

Learn the most ubiquitous data structure in programming today, the dynamic array.

## Data Structures 1/7: Introduction

Learn the fundamental data structures of computer science. See a comparison of popular data structures. Learn the pros and cons...

## Analyzing Algorithms 6/6: Determinism

An explanation of deterministic vs nondeterministic problems and an introduction to P, NP, NP-Hard, NP-Complete, and the P versus NP...

## Analyzing Algorithms 5/6: Choosing the Best Alg...

Examples of analyzing algorithms with big O and asymptotic notation to choose the best one for a given situation.

## Analyzing Algorithms 4/6: Common Patterns of Gr...

An explanation of many common and recognizable patterns of growth that come up time and time again in analyzing algorithms....

## Analyzing Algorithms 3/6: Asymptotic Notation

An explanation of asymptotic notation: big O, little o, theta, big omega, and little omega.