Software Development
Software Principles 5/5: Relevancy

Software Principles 5/5: Relevancy

Stay Modern, Extensible, and Transferable

Software Development
Software Principles 4/5: Efficiency

Software Principles 4/5: Efficiency

"The Only Way to go Fast is to go Well"

Software Development
Software Principles 3/5: Effectiveness

Software Principles 3/5: Effectiveness

Build the Right Thing

Software Development
Software Principles 2/5: People

Software Principles 2/5: People

People Matter

Software Development
Software Principles 1/5: Software Principles

Software Principles 1/5: Software Principles

Four Principles of Software Development: People, Effectiveness, Efficiency, and Relevancy

JavaScript   Automation
JS Library 7/7: Pre-Releases and Nightly Releases

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.

JavaScript   Automation
JS Library 6/7: Maintenance Branches

JS Library 6/7: Maintenance Branches

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

JavaScript   Automation
JS Library 5/7: Continuous Deployment

JS Library 5/7: Continuous Deployment

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

JavaScript   Automation
JS Library 4/7: Continuous Integration

JS Library 4/7: Continuous Integration

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

JavaScript   Automation
JS Library 3/7: Enforce Commit Message Conventions

JS Library 3/7: Enforce Commit Message Conventions

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

JavaScript   Automation
JS Library 2/7: Commit Message Conventions

JS Library 2/7: Commit Message Conventions

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

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

JS Library 1/7: Creating a JavaScript Library

Learn how to create and publish a public JavaScript library.

Data Structures   Computer Science
Data Structures 7/7: Binary Search Trees

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   Computer Science
Data Structures 6/7: Binary Heaps

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   Computer Science
Data Structures 5/7: Hash Tables

Data Structures 5/7: Hash Tables

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

Data Structures   Computer Science
Data Structures 4/7: Linked Lists

Data Structures 4/7: Linked Lists

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

Data Structures   Computer Science
Data Structures 3/7: Stacks and Queues

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   Computer Science
Data Structures 2/7: Dynamic Arrays

Data Structures 2/7: Dynamic Arrays

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

Data Structures   Computer Science
Data Structures 1/7: Introduction

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...

Algorithms   Computer Science
Analyzing Algorithms 6/6: Determinism

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...

Algorithms   Computer Science
Analyzing Algorithms 5/6: Choosing the Best Algorithm

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.

Algorithms   Computer Science
Analyzing Algorithms 4/6: Common Patterns of Growth

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....

Algorithms   Computer Science
Analyzing Algorithms 3/6: Asymptotic Notation

Analyzing Algorithms 3/6: Asymptotic Notation

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

Algorithms   Computer Science
Analyzing Algorithms 2/6: Function Growth

Analyzing Algorithms 2/6: Function Growth

An example based comparison of different kinds of function growth: constant, logarithmic, linear, quadratic, cubic, exponential, factorial, tetration, pentation, and...

Algorithms   Computer Science
Analyzing Algorithms 1/6: Introduction

Analyzing Algorithms 1/6: Introduction

Analyzing algorithms is hard, but it doesn’t have to be. An introduction to analyzing algorithms and big O notation.