Free resources to learn various software things
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
- 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 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.
https://ryanstutorials.net/linuxtutorial/
Linux — The Penguin Marches On (Libretexts)
Troubleshooting servers
- Interactive troubleshooting of broken Linux servers.
Hacking
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://grow.google/intl/ALL_ca/certificates/cybersecurity/#?modal_active=none
https://exploit.education/protostar/
- 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.
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
- Interactive courses relating to a variety of topics, including Linux basics, Ansible, and Kubernetes. Requires login, although Github login can be used.
devops
k8s
https://learnk8s.io/troubleshooting-deployments https://wellarchitectedlabs.com/security/
Low Level Operating System Programming
https://pages.cs.wisc.edu/~remzi/teaching/
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
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