CTCaliberTek

Programming

Tutorials across the languages powering modern software.

4 views

JavaPythonJavaScriptTypeScriptC#PHPGoRustRScalaShell Scripting

Tutorials

Programming

Schedule and Debug Shell Scripts: cron, bash -x, and Portability

Schedule Bash scripts with cron, avoid the common cron environment problems, debug with bash -x, and write scripts that work on Linux and macOS.

November 10, 202611 min read
Programming

Shell Scripting Project: A Backup Script with Rotation and a Log Report

Build a complete Bash backup script that creates timestamped archives, verifies them, deletes old backups, and add a log summary script.

November 10, 202612 min read
Programming

Writing Safe Bash Scripts: set -euo pipefail, getopts, and trap

Make Bash scripts reliable with strict mode, argument validation, getopts options, trap cleanup, safe deletion, and ShellCheck.

November 10, 202611 min read
Programming

Shell Pipes, Redirection, grep, sed, and awk for Text Processing

Connect commands with pipes, redirect input and output, and process text with grep, cut, sort, uniq, sed, awk, find, and xargs.

November 10, 202612 min read
Programming

Bash Loops, Arrays, and Functions Explained

Repeat work with for and while loops, store lists in arrays and associative arrays, and organize scripts with functions and return values.

November 10, 202611 min read
Programming

Bash Conditionals: if Statements, Test Operators, and case

Make decisions in shell scripts with if, elif, double-bracket tests, file checks, numeric comparisons, logical operators, and case statements.

November 10, 202610 min read
Programming

Bash Variables, Quoting, and Reading User Input

Learn how Bash variables work, why quoting matters, how to capture command output, do arithmetic, read input, and use script arguments.

November 10, 202610 min read
Programming

Shell Scripting for Beginners: Your First Bash Script on Linux

Learn what a shell script is, write your first Bash script with a shebang, make it executable, read exit codes, and run it from anywhere.

November 10, 20269 min read
Programming

Build and Test a Scala Project with sbt and munit

Create a Scala 3 project with sbt, understand build.sbt and the standard folder layout, add the munit test library, and run and write your first tests.

November 9, 202610 min read
Programming

Scala Error Handling with Option, Either, and Try

Handle missing values and failures without null or exceptions using Option, Either, and Try, and chain them cleanly with for comprehensions.

November 9, 202610 min read
Programming

Scala Pattern Matching and Algebraic Data Types

Model data with enums and sealed traits, take it apart with exhaustive pattern matching, and use guards, nested patterns, and list patterns.

November 9, 202610 min read
Programming

Scala Classes, Case Classes, Objects, and Traits

Define classes and case classes, use companion objects, share behavior with traits, and model data in clean, immutable Scala 3 code.

November 9, 202610 min read
Programming

Scala Collections: List, Vector, Set, and Map

Work with Scala's immutable collections and transform data with map, filter, flatMap, foldLeft, groupBy, and for comprehensions.

November 9, 202611 min read
Programming

Scala Functions, Lambdas, and Higher-Order Functions

Define methods with default and named parameters, write anonymous functions, pass functions as arguments, and write tail-recursive functions in Scala 3.

November 9, 202610 min read
Programming

Scala Values, Types, and Control Flow

Learn val versus var, type inference, string interpolation, if as an expression, pattern matching with match, and for and while loops in Scala 3.

November 9, 202610 min read
Programming

Scala 3 for Beginners: Install Scala and Run Your First Program

Set up Java and Scala with Coursier, run code with Scala CLI and the REPL, and learn why Scala matters for data engineering with Apache Spark.

November 9, 20268 min read
Programming

Reproducible R Reports with Quarto and renv

Combine code, results, and narrative in a Quarto document, render it to HTML or PDF, and make your analysis repeatable with set.seed and renv.

November 9, 20269 min read
Programming

Statistics in R: Correlation, t-tests, and Linear Regression

Run correlation, a two-sample t-test, and a linear regression in R, read the output correctly, and understand what the results can and cannot tell you.

November 9, 202611 min read
Programming

Data Visualization in R with ggplot2

Build scatter plots, bar charts, histograms, and faceted charts with ggplot2's layered grammar, label them clearly, and save them for reports.

November 9, 202610 min read
Programming

Data Wrangling in R with dplyr and tidyr

Filter, select, mutate, group, summarize, and join data with dplyr, and reshape tables between wide and long form with tidyr.

November 9, 202611 min read
Programming

R Functions, Control Flow, and the apply Family

Write your own R functions, use if/else and loops sensibly, prefer vectorized code, and apply functions over vectors and lists with sapply, lapply, and vapply.

November 9, 202610 min read
Programming

R Data Frames: Importing, Inspecting, Subsetting, and Summarizing Data

Create and import data frames, inspect them with str and summary, filter rows, add columns, sort, and summarize by group using base R.

November 9, 202610 min read
Programming

R Vectors, Data Types, Missing Values, and Indexing

Learn how R stores data in vectors, how types are coerced, how to pick elements with positive, negative, and logical indexes, and how to handle NA correctly.

November 9, 202610 min read
Programming

R for Beginners: Install R and RStudio and Run Your First Script

Install R and RStudio, learn the console, scripts, packages, and projects, and avoid the working-directory mistakes that trip up most beginners.

November 9, 20269 min read
Programming

TypeScript tsconfig.json and Strict Mode Explained

Understand the key tsconfig options and why turning on strict mode catches more bugs.

October 17, 20268 min read
Programming

TypeScript Union Types, Narrowing, and Generics

Combine types with unions, narrow them safely, and write reusable code with generics.

October 17, 20269 min read
Programming

TypeScript Interfaces and Type Aliases

Describe the shape of objects with interfaces and type aliases, and learn when to use each.

October 17, 20267 min read
Programming

TypeScript for Beginners: Setup and Your First Types

Install TypeScript, compile your first file, and see how static types catch mistakes before your code runs.

October 17, 20267 min read
Programming

Go Concurrency: Goroutines and Channels

Run work concurrently with goroutines, wait with sync.WaitGroup, and communicate safely using channels.

October 17, 20269 min read
Programming

Go Structs, Methods, and Interfaces

Model data with structs, attach behavior with methods, and write flexible code with interfaces.

October 17, 20268 min read
Programming

Go Slices and Maps Explained

Use Go's flexible slices and key-value maps, including append, slicing, and checking for missing keys.

October 17, 20267 min read
Programming

Go Variables, Functions, and Error Handling

Declare variables, write functions with multiple return values, and handle errors the Go way.

October 17, 20267 min read
Programming

Go for Beginners: Install Go and Write Your First Program

Install Go, create a module, and run and build your first Go program.

October 17, 20266 min read
Programming

C# Collections and LINQ Basics

Work with List and Dictionary, and query data cleanly with LINQ methods like Where, Select, and OrderBy.

October 17, 20268 min read
Programming

C# Classes, Properties, and Records

Model data in C# with classes, properties, constructors, and concise records.

October 17, 20268 min read
Programming

C# Variables, Data Types, and Control Flow

Declare variables, work with C#'s core types and string interpolation, and control program flow with if, for, and foreach.

October 17, 20267 min read
Programming

C# for Beginners: Install .NET and Write Your First Program

Install the .NET SDK, create a console project, and run your first C# program from the command line.

October 17, 20266 min read
Programming

Asynchronous JavaScript: Promises and async/await

Handle asynchronous work in JavaScript with promises, then and catch, async/await, and Promise.all.

October 17, 20269 min read
Programming

Working with the DOM in JavaScript

Select, change, create, and remove page elements and respond to clicks using the DOM API.

October 17, 20268 min read
Programming

JavaScript Functions and Arrow Functions

Write reusable functions in JavaScript using declarations, expressions, arrow syntax, and default and rest parameters.

October 17, 20267 min read
Programming

JavaScript Variables and Data Types: let, const, and More

Learn how to declare variables with let and const and understand JavaScript's core data types and equality rules.

October 17, 20267 min read
Programming

Exception Handling in Java: try, catch, finally

Handle runtime errors in Java with try/catch/finally, try-with-resources, and throwing your own exceptions.

October 17, 20268 min read
Programming

Java Collections: ArrayList, HashMap, and HashSet

Store and manage groups of data in Java using the most common collection classes.

October 17, 20268 min read
Programming

Java Classes and Objects: Object-Oriented Basics

Learn how to define classes, create objects, and use constructors, methods, and encapsulation in Java.

October 17, 20268 min read
Programming

Java for Beginners: Install the JDK and Write Your First Program

Install the Java Development Kit, then compile and run your first Hello World program from the command line.

October 17, 20267 min read
Programming

Python Virtual Environments and pip: A Beginner's Guide

Isolate each project's dependencies with venv and manage packages with pip and requirements.txt.

October 17, 20266 min read
Programming

Working with Files in Python: Read, Write, and Handle Errors

Read and write text files safely in Python using the with statement, and handle missing files gracefully.

October 17, 20268 min read
Programming

Python Dictionaries and Sets: When to Use Each

Understand key-value dictionaries and unique-value sets, including common operations and when each one fits.

October 17, 20267 min read
Programming

Python Functions: Arguments, Return Values, and Scope

Learn how to define reusable functions in Python, pass arguments, return results, and understand variable scope.

October 17, 20267 min read
Programming

Python List Comprehension: A Practical Guide

Write shorter, faster, more readable Python loops using list comprehensions.

October 11, 20266 min read