Use this page as the canonical learning index for programming and scripting resources. Bash and PowerShell have their own quick-reference pages, but long-form learning resources should live here to avoid duplicating the same links across the section.
- Codecademy - Interactive programming courses.
- edX - Free and paid courses from universities and training providers.
- Coursera - Online courses, certificates, and degrees.
- W3Schools - Introductory web technology tutorials.
- Codewars - Code challenge platform for practicing problem solving.
- Python Tutor - Visualizes Python, Java, C, C++, JavaScript, TypeScript, and Ruby code execution.
- Free Programming Books - Large index of free programming books.
- We Hack Purple Academy - Security-focused application security and secure coding training.
- PowerShell vs Python Reference - Practical comparison for automation use cases.
- xapax Bash Scripting - Security-oriented Bash scripting notes.
- Advanced Bash-Scripting Guide - Detailed Bash scripting reference.
- Bash Guide for Beginners - Introductory Bash guide.
- Bash Notes for Professionals - PDF compiled from Stack Overflow documentation.
- Bash Programming HOWTO - Introductory Bash programming guide.
- Bash Reference Manual - Official Bash reference.
- BashGuide - Practical Bash guide.
- Conquering the Command Line - Command-line basics.
- GNU Bash Manual (PDF) - Official Bash manual.
- Google Shell Style Guide - Shell scripting style guide.
- Introduction to Bash Scripting - Markdown/PDF Bash scripting book.
- Introduction to the Command Line - Beginner command-line book.
- Linux Shell Scripting Tutorial - Linux shell scripting reference.
- The Bash Academy - Bash learning guide.
- The Linux Command Line - William Shotts' Linux command-line book.
- Writing Shell Scripts - Shell scripting tutorial.
- SANS Linux CLI 101 - Introductory Linux CLI cheatsheet.
- SANS Linux CLI - Linux CLI reference.
- SOC Analyst Scrolls: Linux Commands - Security analyst command reference.
- A Unix Person's Guide to PowerShell - PowerShell for Unix/Linux users.
- Creating HTML Reports in PowerShell - Reporting with PowerShell.
- DevOps: The Ops Perspective - Operations and automation context.
- Ditch Excel: Making Historical & Trend Reports in PowerShell - Reporting workflows.
- Learn PowerShell in Y Minutes - Fast syntax overview.
- PowerShell 101 - Beginner PowerShell guide.
- PowerShell Notes for Professionals - PDF compiled from Stack Overflow documentation.
- PowerShell Succinctly - Introductory PowerShell ebook.
- PowerShell Tips to Write By - Practical PowerShell writing tips.
- Secrets of PowerShell Remoting - PowerShell remoting guide.
- The Big Book of PowerShell Error Handling - Error handling guide.
- The Big Book of PowerShell Gotchas - Common pitfalls.
- The Monad Manifesto - Annotated - Historical design context.
- SOC Analyst Scrolls: PowerShell - Security analyst PowerShell reference.
- SOC Analyst Scrolls: One-Liners - Useful PowerShell one-liners.
- xapax PowerShell - Security-oriented PowerShell notes.
- xapax PowerShell Scripting - PowerShell scripting notes.
- xapax Windows CMD - Windows command prompt basics.
- SANS PowerShell Cheatsheet - PowerShell reference.
- SANS Get-WinEvent Cheatsheet - Windows event log query reference.
- Python Wiki: Beginner's Guide for Non-Programmers
- LearnPython.org
- A Byte of Python
- Automate the Boring Stuff with Python
- NSA Python Training Document
- Cracking Codes with Python
- Awesome Python
- Python-Pentest-Tools
- py.CheckiO - Python coding challenges.
- Invent with Python
- An Introduction to Programming in Go
- Build Web Application with Golang
- Building Web Apps with Go
- Darker Corners of Go
- Effective Go
- Go 101
- Go by Example
- Go for JavaScript Developers
- How To Code in Go
- Learn Go with Tests
- Learning Go
- Practical Cryptography With Go
- The Go Tour
- The Little Go Book
- Web Apps in Go
- Programming from the Ground Up
- Reverse Engineering for Beginners
- Understanding Assembly Language
- Reversing: Secrets of Reverse Engineering
Reverse engineering tooling and malware-analysis workflows live in DFIR.
{% content-ref url="../dfir-digital-forensics-and-incident-response/binary-analysis-reverse-engineering.md" %} binary-analysis-reverse-engineering.md {% endcontent-ref %}
- Learn Java
- Java Programming MOOC - University of Helsinki's free Java course.
- The Rust Programming Language
- Rust by Example
- Black Hat Rust - Applied information security with Rust.
The following resources can still teach useful concepts, but they reference older language versions or older platform assumptions.
- Learn PowerShell Core 6.0 - PowerShell 6-era resource; use current Microsoft Learn docs for installation and version-specific guidance.
- Layman's Guide to PowerShell 2.0 Remoting
- Mastering PowerShell v2
- PowerShell 2.0 - One CMDLET At A Time
- Pythonidae - Archived Python resource collection.