S SmartDocs

Programming Languages

Tutorials on Python, C, C++, Java, JavaScript, TypeScript, Go, R and Haskell — from beginner syntax to advanced techniques.

Go Updated 2026-10-24

Chapter 10 — Concurrency

"Don't communicate by sharing memory; share memory by communicating." — Rob Pike

Read article →
Go Updated 2026-04-18

Chapter 11 — Testing

Go's standard library includes everything you need for testing: the testing package plus the go test command.

Read article →
Go Updated 2026-04-18

Chapter 12 — Modules and Dependencies

A module is a unit of versioning and distribution: a tree of Go packages identified by a module path, with explicit dependencies and a recorded build list. Modules replaced the older GOPATH workflow in Go 1.11+ and have

Read article →
Go Updated 2026-04-18

Chapter 13 — Practical Go

A grab bag of the topics you need most often in real services: HTTP, JSON, logging, configuration, structured project layout, and a few production-ready patterns.

Read article →
Go Updated 2026-10-24

Chapter 14 — Errors and Context in Depth

Chapters 6, 7 and 10 introduced error, %w and context.Context in a few paragraphs each. This chapter is the full treatment: how to design errors so callers can act on them, how to wrap and inspect them, where panics belo

Read article →
Go Updated 2026-04-18

Chapter 1 — Arrays and Slices

When you append past cap, Go allocates a new larger backing array and copies. Two slices that share a backing array see each other's writes.

Read article →
Go Updated 2026-04-18

Chapter 2 — Stack

A stack is a LIFO (last-in, first-out) container with two main operations: Push — put an element on top. Pop — take the top element off.

Read article →
Go Updated 2026-04-18

Chapter 3 — Queue (Ring Buffer)

A queue is a FIFO (first-in, first-out) container. The two main operations are: Enqueue / Push — add to the back. Dequeue / Pop — remove from the front.

Read article →
Go Updated 2026-04-18

Chapter 4 — Sorting

Sorting is the canonical algorithms topic. Knowing several sorts and their trade-offs is part of any working programmer's vocabulary. This chapter implements five classic algorithms in Go and explains when to use each.

Read article →
Go Updated 2026-04-18

Chapter 5 — Hash Tables

A hash table maps keys to values with expected O(1) lookup, insert, and delete. The trick: a hash function turns a key into an integer, which is reduced (modulo the bucket count) into an index, and an entry is stored at

Read article →
Go Updated 2026-04-18

Chapter 6 — Binary Heap (Priority Queue)

A binary heap is an array-based complete binary tree that satisfies the heap property

Read article →
Go Updated 2026-04-18

Chapter 7 — Balanced Binary Search Tree (AVL)

A binary search tree (BST) stores keys so that for every node N: All keys in the left subtree are < N.key. All keys in the right subtree are > N.key.

Read article →
Go Updated 2026-04-18

Chapter 8 — Graphs

A graph is a set of vertices connected by edges. Edges may be: Directed (arrows) or undirected (lines). Weighted (edge has a number) or unweighted.

Read article →
Go Updated 2026-04-18

Design considerations & assumptions

This document satisfies the Checkout.com offline assessment request to capture key design considerations and assumptions.

Read article →
Go Updated 2026-04-18

Payment Gateway Challenge (Go + Echo + PostgreSQL)

Implementation of the Checkout.com offline payment-gateway assessment, using Go, Echo, PostgreSQL, and the official Mountebank bank simulator from the reference repo.

Read article →
JavaScript Updated 2026-02-03

🎉 JavaScript Full Curriculum - COMPLETE!

I've successfully created 8 complete modules with 80 detailed lessons and extensive code examples. This represents 100% of the entire curriculum and provides students with comprehensive JavaScript and full-stack developm

Read article →
JavaScript Updated 2026-02-03

🎯 JavaScript Full Curriculum - Complete Package

I've created a comprehensive JavaScript curriculum package that includes

Read article →
JavaScript Updated 2026-02-03

🚀 Quick Start Guide for Instructors

This JavaScript curriculum is designed to take students from absolute beginners to full-stack developers. Here's how to use it effectively

Read article →
JavaScript Updated 2026-02-03

🎯 JavaScript Full Curriculum - MAJOR MILESTONE ACHIEVED!

I've successfully created 6 complete modules with 60 detailed lessons and extensive code examples. This represents 75% of the entire curriculum and provides students with comprehensive JavaScript and full-stack developme

Read article →
JavaScript Updated 2026-02-03

🎯 JavaScript Full Curriculum — "From Zero to Full-Stack Ready"

A comprehensive, hands-on JavaScript curriculum designed to take students from absolute beginners to full-stack developers ready for production work.

Read article →
JavaScript Updated 2026-02-03

Module 1: JavaScript Foundations

Goal: Understand JavaScript syntax, variables, operators, and basic programming logic.

Read article →
JavaScript Updated 2026-02-03

Lesson 1: Introduction to Programming & JavaScript

By the end of this lesson, you will be able to: Understand what JavaScript is and why it matters Know where JavaScript runs (browser + Node.js) Set up your development environment Write your first "Hello World" program U

Read article →
JavaScript Updated 2026-02-03

Lesson 2: Variables and Data Types

By the end of this lesson, you will be able to: Understand what variables are and why we use them Declare variables using var, let, and const Identify and work with different data types Convert between different data typ

Read article →
JavaScript Updated 2026-02-03

Lesson 3: Operators

By the end of this lesson, you will be able to: Use arithmetic operators for calculations Apply assignment operators to store results Compare values with comparison operators Combine conditions with logical operators Use

Read article →