I will tutor you

  • Bloodshot [he/him,any]
    hexagon
    ·
    4 years ago

    Yep! I'm also entirely self-taught, no degree.

    The first thing to note is that almost all certificates are useless. There are a few that are respected, like the Red Hat certificates (e.g. RHCSA) and Cisco (for networking), but most ops and all programming certificates (as far as I know) aren't a huge deal.

    The rest of this advice will be *nix specific, I don't use Windows or know anything about administrating it.

    If you're really new, the first thing to do is to try and figure out how the system you're running right now works. If you're looking to be a *nix admin, that means running it and using it regularly. If you don't want to use it as your desktop, that's fine, just dedicate an old computer as a server. Install a distro on it. Install three. Get used to using SSH, to your shell (you can use any shell you'd like, but try to be fluent in Bourne, it's by far the most common so it behooves you to be able to read it). Start digging into how to do common things with command line utilities. What processes are running (ps)? How do I stop one? What's the filesystem layout? If I install a package, how does that work? What is the package format, how might I build one? What's my init (probably systemd) and how does that function? What's the boot process like? What does the kernel do?

    You don't have to understand this all at once, just pick something you're curious about and pursue it until you understand it from a high level. A good test is if you're able to point to a component and describe what is responsible for it, what piece of software, or process running on the system.

    Once you understand how things work from a high level, pick a service or technology you think sounds cool and install it. Configure it. Network with it. You can play with containers using LXC or Docker, or install an SQL database and write a toy program to interface with it. Try out LVM, LUKS. Try different filesystems. Get used to configuring services, almost all of them will use a plain text configuration file.

    Spin up VMs, or containers. Play with configuration management, be able to press a button and have four VMs come up from scratch and be configured with different roles: a web server, a database, a backend, and a NAS (you do not have to write the backend service, fill out the website, or populate the database, just have them configured to talk to one another).

    If, at this point, you don't know what to pursue, look up some job listings and pick technologies off of the requirements list and install and configure them. This will get to be pretty routine. You can't do this with everything (if they require you to have maintained a fleet of hundreds of servers in AWS, you obviously cannot just do that), but you can for a lot.

    Acquire a drive for automating things. If you do something more than three times, write a script. You'll find that, with the right tool, almost everything in *nix is interfaceable with via shell script.

    For the modern world, grumpy sysadmins who manage everything via a bunch of bespoke scripts only they know how to use are singular points of failure, and that's looked down upon. You can still be grumpy, but you'll want to really learn and understand git, and how to write code that others can read and extend. Companies are moving away from individualised servers that each have to be specially configured to a pool of resources (computers, VMs, containers) that are utilised automatically, or somewhat automatically by a C/M service backed by a backed up, version controlled repository. Configuration becomes code.

    If this is a lot, just remember to pursue one thing at a time. Going from "Oh, I wonder how networking works" to "I ran some commands to try and created a bridge and now the internet doesn't work but LAN does?" to "I spent four hours trying to fix this problem I created" is a great way to learn to do this stuff.

    • ami [they/them,he/him]
      ·
      4 years ago

      Damm, this was super helpful. Thank you for the time and energy you put into typing the reply and explaining everything. Also, appreciate you reaching out. Haha is this what community feels like.