Programming
Tutorials across the languages powering modern software.
4 views
Tutorials
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
TypeScript tsconfig.json and Strict Mode Explained
Understand the key tsconfig options and why turning on strict mode catches more bugs.
TypeScript Union Types, Narrowing, and Generics
Combine types with unions, narrow them safely, and write reusable code with generics.
TypeScript Interfaces and Type Aliases
Describe the shape of objects with interfaces and type aliases, and learn when to use each.
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.
Go Concurrency: Goroutines and Channels
Run work concurrently with goroutines, wait with sync.WaitGroup, and communicate safely using channels.
Go Structs, Methods, and Interfaces
Model data with structs, attach behavior with methods, and write flexible code with interfaces.
Go Slices and Maps Explained
Use Go's flexible slices and key-value maps, including append, slicing, and checking for missing keys.
Go Variables, Functions, and Error Handling
Declare variables, write functions with multiple return values, and handle errors the Go way.
Go for Beginners: Install Go and Write Your First Program
Install Go, create a module, and run and build your first Go program.
C# Collections and LINQ Basics
Work with List and Dictionary, and query data cleanly with LINQ methods like Where, Select, and OrderBy.
C# Classes, Properties, and Records
Model data in C# with classes, properties, constructors, and concise records.
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.
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.
Asynchronous JavaScript: Promises and async/await
Handle asynchronous work in JavaScript with promises, then and catch, async/await, and Promise.all.
Working with the DOM in JavaScript
Select, change, create, and remove page elements and respond to clicks using the DOM API.
JavaScript Functions and Arrow Functions
Write reusable functions in JavaScript using declarations, expressions, arrow syntax, and default and rest parameters.
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.
Exception Handling in Java: try, catch, finally
Handle runtime errors in Java with try/catch/finally, try-with-resources, and throwing your own exceptions.
Java Collections: ArrayList, HashMap, and HashSet
Store and manage groups of data in Java using the most common collection classes.
Java Classes and Objects: Object-Oriented Basics
Learn how to define classes, create objects, and use constructors, methods, and encapsulation in Java.
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.
Python Virtual Environments and pip: A Beginner's Guide
Isolate each project's dependencies with venv and manage packages with pip and requirements.txt.
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.
Python Dictionaries and Sets: When to Use Each
Understand key-value dictionaries and unique-value sets, including common operations and when each one fits.
Python Functions: Arguments, Return Values, and Scope
Learn how to define reusable functions in Python, pass arguments, return results, and understand variable scope.
Python List Comprehension: A Practical Guide
Write shorter, faster, more readable Python loops using list comprehensions.