# Learn to Code 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. ## General Learning Platforms * [Codecademy](https://www.codecademy.com/) - Interactive programming courses. * [edX](https://www.edx.org/) - Free and paid courses from universities and training providers. * [Coursera](https://www.coursera.org/) - Online courses, certificates, and degrees. * [W3Schools](https://www.w3schools.com/) - Introductory web technology tutorials. * [Codewars](https://www.codewars.com/) - Code challenge platform for practicing problem solving. * [Python Tutor](https://pythontutor.com/) - Visualizes Python, Java, C, C++, JavaScript, TypeScript, and Ruby code execution. * [Free Programming Books](https://github.com/EbookFoundation/free-programming-books/blob/master/books/free-programming-books.md) - Large index of free programming books. * [We Hack Purple Academy](https://academy.wehackpurple.com/collections) - Security-focused application security and secure coding training. * [PowerShell vs Python Reference](https://blog.ironmansoftware.com/powershell-vs-python/) - Practical comparison for automation use cases. ## Bash * [xapax Bash Scripting](https://xapax.github.io/security/#basics_of_linux/bash_scripting/) - Security-oriented Bash scripting notes. * [Advanced Bash-Scripting Guide](https://tldp.org/LDP/abs/html/) - Detailed Bash scripting reference. * [Bash Guide for Beginners](https://tldp.org/LDP/Bash-Beginners-Guide/html/) - Introductory Bash guide. * [Bash Notes for Professionals](https://goalkicker.com/BashBook/) - PDF compiled from Stack Overflow documentation. * [Bash Programming HOWTO](https://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html) - Introductory Bash programming guide. * [Bash Reference Manual](https://www.gnu.org/software/bash/manual/bash.html) - Official Bash reference. * [BashGuide](https://mywiki.wooledge.org/BashGuide) - Practical Bash guide. * [Conquering the Command Line](https://conqueringthecommandline.com/book/frontmatter) - Command-line basics. * [GNU Bash Manual (PDF)](https://www.gnu.org/software/bash/manual/bash.pdf) - Official Bash manual. * [Google Shell Style Guide](https://google.github.io/styleguide/shellguide.html) - Shell scripting style guide. * [Introduction to Bash Scripting](https://github.com/bobbyiliev/introduction-to-bash-scripting) - Markdown/PDF Bash scripting book. * [Introduction to the Command Line](https://launchschool.com/books/command_line) - Beginner command-line book. * [Linux Shell Scripting Tutorial](https://bash.cyberciti.biz/guide/Main_Page) - Linux shell scripting reference. * [The Bash Academy](https://guide.bash.academy/) - Bash learning guide. * [The Linux Command Line](https://linuxcommand.org/tlcl.php) - William Shotts' Linux command-line book. * [Writing Shell Scripts](https://linuxcommand.org/lc3_writing_shell_scripts.php) - Shell scripting tutorial. * [SANS Linux CLI 101](https://wiki.sans.blue/Tools/pdfs/LinuxCLI101.pdf) - Introductory Linux CLI cheatsheet. * [SANS Linux CLI](https://wiki.sans.blue/Tools/pdfs/LinuxCLI.pdf) - Linux CLI reference. * [SOC Analyst Scrolls: Linux Commands](https://docs.quasarops.com/en/public/the-soc-analyst-scrolls/linux-commands) - Security analyst command reference. ## PowerShell * [A Unix Person's Guide to PowerShell](https://leanpub.com/aunixpersonsguidetopowershell) - PowerShell for Unix/Linux users. * [Creating HTML Reports in PowerShell](https://leanpub.com/creatinghtmlreportsinwindowspowershell) - Reporting with PowerShell. * [DevOps: The Ops Perspective](https://leanpub.com/devopstheopsperspective) - Operations and automation context. * [Ditch Excel: Making Historical & Trend Reports in PowerShell](https://leanpub.com/ditchexcelmakinghistoricalandtrendreportsinpowershell) - Reporting workflows. * [Learn PowerShell in Y Minutes](https://learnxinyminutes.com/docs/powershell/) - Fast syntax overview. * [PowerShell 101](https://leanpub.com/powershell101) - Beginner PowerShell guide. * [PowerShell Notes for Professionals](https://goalkicker.com/PowerShellBook/) - PDF compiled from Stack Overflow documentation. * [PowerShell Succinctly](https://www.syncfusion.com/resources/techportal/ebooks/powershell) - Introductory PowerShell ebook. * [PowerShell Tips to Write By](https://leanpub.com/powershelltips) - Practical PowerShell writing tips. * [Secrets of PowerShell Remoting](https://leanpub.com/secretsofpowershellremoting) - PowerShell remoting guide. * [The Big Book of PowerShell Error Handling](https://leanpub.com/thebigbookofpowershellerrorhandling) - Error handling guide. * [The Big Book of PowerShell Gotchas](https://leanpub.com/thebigbookofpowershellgotchas) - Common pitfalls. * [The Monad Manifesto - Annotated](https://leanpub.com/themonadmanifestoannotated) - Historical design context. * [SOC Analyst Scrolls: PowerShell](https://docs.quasarops.com/en/public/the-soc-analyst-scrolls/powershell) - Security analyst PowerShell reference. * [SOC Analyst Scrolls: One-Liners](https://docs.quasarops.com/en/public/the-soc-analyst-scrolls/one-liners) - Useful PowerShell one-liners. * [xapax PowerShell](https://xapax.github.io/security/#basics_of_windows/powershell/) - Security-oriented PowerShell notes. * [xapax PowerShell Scripting](https://xapax.github.io/security/#basics_of_windows/powershell_scripting2/) - PowerShell scripting notes. * [xapax Windows CMD](https://xapax.github.io/security/#basics_of_windows/cmd/) - Windows command prompt basics. * [SANS PowerShell Cheatsheet](https://wiki.sans.blue/Tools/pdfs/PowerShell.pdf) - PowerShell reference. * [SANS Get-WinEvent Cheatsheet](https://wiki.sans.blue/Tools/pdfs/Get-WinEvent.pdf) - Windows event log query reference. ## Python * [Python Wiki: Beginner's Guide for Non-Programmers](https://wiki.python.org/moin/BeginnersGuide/NonProgrammers) * [LearnPython.org](https://www.learnpython.org/) * [A Byte of Python](https://python.swaroopch.com/) * [Automate the Boring Stuff with Python](https://automatetheboringstuff.com/) * [NSA Python Training Document](https://archive.org/details/comp3321/page/n1/mode/2up/search/device?utm_source=share&utm_medium=ios_app&utm_name=iossmf) * [Cracking Codes with Python](https://inventwithpython.com/cracking/) * [Awesome Python](https://github.com/vinta/awesome-python) * [Python-Pentest-Tools](https://github.com/dloss/python-pentest-tools) * [py.CheckiO](https://py.checkio.org/) - Python coding challenges. * [Invent with Python](https://inventwithpython.com/) ## Go * [An Introduction to Programming in Go](https://www.golang-book.com/) * [Build Web Application with Golang](https://astaxie.gitbooks.io/build-web-application-with-golang/content/en/) * [Building Web Apps with Go](https://codegangsta.gitbooks.io/building-web-apps-with-go/content/) * [Darker Corners of Go](https://rytisbiel.com/2021/03/06/darker-corners-of-go/) * [Effective Go](https://go.dev/doc/effective_go) * [Go 101](https://go101.org/article/101.html) * [Go by Example](https://gobyexample.com/) * [Go for JavaScript Developers](https://github.com/bulim/go-for-javascript-developers) * [How To Code in Go](https://www.digitalocean.com/community/books/how-to-code-in-go-ebook) * [Learn Go with Tests](https://quii.gitbook.io/learn-go-with-tests/) * [Learning Go](https://miek.nl/go/) * [Practical Cryptography With Go](https://leanpub.com/gocrypto/read) * [The Go Tour](https://go.dev/tour/) * [The Little Go Book](https://github.com/karlseguin/the-little-go-book) * [Web Apps in Go](https://github.com/thewhitetulip/web-dev-golang-anti-textbook/) ## Assembly and Reverse Engineering * [Programming from the Ground Up](https://download-mirror.savannah.gnu.org/releases/pgubook/ProgrammingGroundUp-1-0-booksize.pdf) * [Reverse Engineering for Beginners](https://www.begin.re/) * [Understanding Assembly Language](https://beginners.re/main.html) * [Reversing: Secrets of Reverse Engineering](https://www.amazon.com/Reversing-Secrets-Engineering-Eldad-Eilam/dp/0764574817) 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](../dfir-digital-forensics-and-incident-response/binary-analysis-reverse-engineering.md) {% endcontent-ref %} ## C and C++ * [C++ Tutorials](https://cplusplus.com/doc/tutorial/) * [Learn C](https://www.learn-c.org/) * [SEI CERT C Coding Standard](https://wiki.sei.cmu.edu/confluence/display/c/SEI+CERT+C+Coding+Standard) ## Java * [Learn Java](https://www.learnjavaonline.org/) * [Java Programming MOOC](https://java-programming.mooc.fi/) - University of Helsinki's free Java course. ## Rust * [The Rust Programming Language](https://doc.rust-lang.org/book/) * [Rust by Example](https://doc.rust-lang.org/rust-by-example/) * [Black Hat Rust](https://github.com/skerkour/black-hat-rust) - Applied information security with Rust. ## Ruby * [Ruby in 20 Minutes](https://www.ruby-lang.org/en/documentation/quickstart/) * [Learn Ruby the Hard Way](https://learnrubythehardway.org/book/) ## Legacy / Archived Resources The following resources can still teach useful concepts, but they reference older language versions or older platform assumptions. * [Learn PowerShell Core 6.0](https://www.packtpub.com/free-ebooks/learn-powershell-core-60) - PowerShell 6-era resource; use current Microsoft Learn docs for installation and version-specific guidance. * [Layman's Guide to PowerShell 2.0 Remoting](https://ravichaganti.com/ebooks/AlaymansguidetoPowerShell2remotingv2.pdf) * [Mastering PowerShell v2](http://community.idera.com/powershell/powertips/b/ebookv2#pi619PostSortOrder=Ascending) * [PowerShell 2.0 - One CMDLET At A Time](http://www.jonathanmedd.net/wp-content/uploads/2010/09/PowerShell_2_One_Cmdlet_at_a_Time.pdf) * [Pythonidae](https://github.com/svaksha/pythonidae) - Archived Python resource collection.