Free resources to learn various software things

linux
_guides
Published

April 6, 2024

My browser bookmarks bar is massive. I basically bookworm anything interesting I come across, and now I have a lot of resources accumulated, and I think it’s worth it to write them down, although formatting is still a work in progress.

When not otherwise stated, the resource is related to Linux administration.

Linux/Terminal Basics

Linux Up Skill Challenge

  • This is definitely one of my favorites. They mention that they don’t have a free server for people to work with. However, some of the cloud providers offer 1 year’s worth of credit’s for a free server. Most notably, Oracle has an always free tier, which offers a very small server. I recommend this, because you don’t have to give up your credit/debit card information (dealing with cloud provider pricing can be… difficult), although Oracle has been known to randomly delete people on the “Truly Free” (no credit card) tier, to make room for paying customers.

OverTheWire Bandit

  • OverTheWire Bandit is a bit different from the other resoures on this list. When I first used it, both personally and as a teaching tool, I was frustrated, because some of the commands it makes you use, will probably never show up in a real world usecase. I was frustrated with it’s “trickyness”, but I now realize the point of overthewire isn’t to teach commands, but to teach reading the manual. The answer to every challenge they give can be found in manpages, the built in Linux documentation.

Linux Survival

https://ryanstutorials.net/linuxtutorial/

Linux — The Penguin Marches On (Libretexts)

Ubuntu’s Terminal Basics

Troubleshooting servers

SadServers

  • Interactive troubleshooting of broken Linux servers.

Hacking

https://www.isc2.org/

https://overthewire.org/wargames/

https://www.cyberstartamerica.org/

http://ctfs.github.io/resources/topics/web/http/README.html

https://hackgame.chaurocks.com/level6

https://www.sandiego.gov/cyber-lab

https://www.picoctf.org/

https://grow.google/intl/ALL_ca/certificates/cybersecurity/#?modal_active=none

https://exploit.education/protostar/

https://pwn.college/

  • This is the site for many cybersecurity courses at Arizona State University. They also have an assocaited twitch stream, where they stream classes as they happen.

https://www.cyber-fasttrack.org/

https://book.hacktricks.xyz/welcome/readme

Nix

https://github.com/justinwoo/nix-shorts/
https://nix.ug/
https://teu5us.github.io/nix-lib.html#nix-builtin-functions
https://nixos.org/manual/nix/stable/language/operators.html#has-attribute
https://book.divnix.com/
https://ianthehenry.com/posts/how-to-learn-nix/
https://noogle.dev/
https://nix-community.github.io/awesome-nix/#learning
https://www.youtube.com/@jonringer117
https://summer.nixos.org/
https://nix.camp/
https://nixlang.wiki/

Below is stuff I don’t like as much:

https://zero-to-nix.com/
https://nix.dev/
https://nixos.wiki/
https://nixos.org/guides/nix-pills/

Devops/K8s

https://killercoda.com/

  • Interactive courses relating to a variety of topics, including Linux basics, Ansible, and Kubernetes. Requires login, although Github login can be used.

devops

https://nubenetes.com/

k8s

https://learnk8s.io/troubleshooting-deployments https://wellarchitectedlabs.com/security/

https://sre.google/sre-book/table-of-contents/odma

Low Level Operating System Programming

https://pages.cs.wisc.edu/~remzi/teaching/

https://pages.cs.wisc.edu/~remzi/OSTEP/

https://wiki.osdev.org/Expanded_Main_Page

Documentation (writing)

Divio Documentation System — More about differences between the types of documentation; there’s actually 4 types.

  • I really like this one to explain the differences between the four types of documentation: tutorial, how-to, reference, and explanation.

Software Technical Writings — A guidebook (pdf) — nitty gritty technical writing details.

Teaching

How to help someone use a computer (1996)

Git

https://shafiul.github.io/gitbook/index.html

  • Data structure oriented guide to git. It starts at explaining what an object is, rather than how the command line works. I like this guide of git more than many other guides I’ve seen, although it’s still missing things (yes, git does a snapshot of the repo’s state at every point, as seperate objects, but it deduplicates data between those objects).

College Courses or Equivalent:

  • https://github.com/ossu/computer-science
  • https://github.com/ForrestKnight/open-source-cs