Skip to content

2024 Boost overview#

Note this is just a place to update and plan for 2024 based on discoveries and changes in 2023.

2024 returns to the original focus of installing and running Linux on "metal" meaning that participants are required to first acquire a machine on which to install Linux during the Boost and that we will be covering the installation onto a real machine (in addition to a virtual machine). The rest is the same as 2023.

Consider waiting until we are done

Some people may find it better to simply wait until the entire Boost has completed so they can work as fast as they want through the material at their own pace—particularly if you are impatient and have a hard time with the informal, often disorganized way we work through the content.

Before we begin ...#

Here's what you need before considering the Boost. Don't worry, it's not much—especially considering that the Boost is entirely free (donations welcome). Most of your investment will be time, but most people will have some minimal financial expense as well. Check if you have this stuff already:

  • Internet access from a secure local area network (home, school, etc.)
  • A reliable computer connected to the Internet (Mac, Windows, Linux)
  • A minimal computer with Intel chip on which to install Linux
  • 8+ GB USB thumb drive that can be completely overwritten.

The reason for the first computer is to have a reliable connection to the Internet on which to initially take notes, create GitHub account, read documentation, watch Boost videos, download installation files, and create the USB drive you'll use to install Linux onto the second computer. This also frees you from any impact should the Linux installation fail for any reason.

Finding a machine for Linux#

Laptops and machines compatible with Linux can easily be found among those normally discarded, in fact, rejuvenating and recycling old hardware with Linux is one major advantage of learning Linux in general. But make no mistake, an "old" computer can serve as a really good Linux machine often comparable to those you would pay \$200/month for in the cloud. The feeling of restoring an old machine with Linux is nothing short of magical. Your friends and family will be amazed and you'll have a "full metal" Linux on which to hone your coder and hacker skills. If you do decide to buy a dedicated machine any computer (around \$150-\$200) will be more than enough.

Linux isn't for gaming. Linux is the game.

There is a lot of talk on the Internet about "Linux gaming" but most of it is frankly silly. While it is true that these days you can play most all games on Linux installed (on gaming hardware), and that Valve runs Arch Linux on SteamDeck, the entire point of Linux is to gain real skills and experience on minimal hardware. While others are spending way too much on gaming rigs and grinding to build virtual XP you'll be building actual experience and skills that are not only entertaining—even addicting—but profitable.

Manage your learning#

  • Become an autodidact: start managing your own learning. (1h)
  • Use search-centric system navigation on Windows, Mac, or Linux. (20m)
  • Take efficient, searchable notes with Markdown on GitHub. (1h)
  • Grok benefit and origin of command line and terminal user interfaces. (1h)

Install Linux#

It is still generally not possible to purchase Linux on a new computer (even if and when it is possible you generally wouldn't want to overpay to do it). Besides, there are few joys in the life of a techie more satisfying than breathing new life into old, discarded computers resurrecting them from the grave of deprecation to live again as truly great Linux servers and secondary workstations.

We will install Linux onto four different machines:

  1. Virtual machine with Kali Linux Desktop
  2. Virtual machine with FreeBSD
  3. Headless server with Ubuntu Server
  4. Laptop workstation with Linux Mint Cinnamon

  5. Install bash terminal on anything (Windows, Mac, Linux). (1h)

  6. Know why Ubuntu is the most relevant Linux distro. (20m)
  7. Create and access Ubuntu Linux Server virtual machine with VMware. (2h)
  8. Use secure shell (ssh) to safely interact with remote systems. (1h)
    • Grok basics of public key cryptography
  9. Do things as administrator (admin, root) but only when necessary. (20m)
  10. Install and update software with apt package manager. (1h)

TODO

  • Create Linux Mint Cinnamon (desktop) installer on USB stick. (20m)
  • Install Linux Mint Cinnamon (desktop) onto dedicated Linux workstation. (1h)

Find your way around#

  • Get help for any Linux command without the Internet. (20m)
  • Use tab-completion to speed command line input. (20m)
  • Navigate Linux file system and understand general organization. (2h)

Command power#

  • Capture, append, and connect command input, output, and errors. (1h)
  • Run commands on multiple files using wildcard globbing. (1h)
  • Search and filter text input and files with regular expressions. (2h)
  • Edit text files in-place from the command line. (1h)

Edit text from any terminal like a pro#

  • Understand different terminal editors for different work requirements. (20m)
    • Being productive on any UNIX system (not just one cozy one)
    • Why no emacs?
    • Why no neovim?
  • Edit text files visually using major terminal editor apps. (4h)
    • ed
    • nano
    • vi
    • vim
  • Customize Vim configuration. (1h)

Move to modern multiplexer#

  • Understand the three main reasons to use a multiplexer.
    • Multiple windows on one screen with cut/paste. (20m)
    • Maintain persistent session even when lost connection. (20m)
    • Share interactive session in real-time with others. (20m)
  • Use screen on any UNIX system. (1h)
  • Use tmux when available. (1h)
  • Customize tmux configuration to "feel" like screen. (1h)

Get answers from the Internet without leaving terminal#

  • Grok Internet networking. (1h)
  • Do effective research from command line with lynx or w3m. (1h)
  • Leverage command history using terminal editor actions to save time. (20m)
  • Customize lynx configuration. (1h)
  • Send AI (ChatGPT) queries from the command line. (1h)

Find files (and vulnerabilities) like a hacker#

  • Find specific files anywhere and determine what they are. (1h)
  • Understand and manipulate Linux file ownership and permissions. (1h)
  • Grok bases, binary, octal, decimal, and hexidecimal
  • Create a simple intrusion detection system. (1h)

Start building your terminal toolkit#

  • Grok the benefit of creating and maintain your own, portable toolkit. (20m)
  • Organize commands and start your own "dot files" GitHub repo. (1h)
  • Organize git repositories. (20m)
  • Save source to GitHub with git and gh. (1h)
  • Use symbolic links. (10m)
  • Write first safe shell scripts in bash and POSIX sh (ash/dash). (30m)
  • Check your scripts are safe with shellcheck. (20m)
  • Automatically format shell scripts with shfmt. (20m)
  • Manage processes (programs currently running). (1h)
  • Grok UNIX philosophies and use UNIX filters over plugins. (20m)
  • Understand ASCII, terminal encoding, and escape sequences. (30m)
  • Customize bash profile and environment. (1h)
  • Grok and apply everything in the bash manual page (man bash). (4h)
  • Do math in the shell safely and reliably with bc and dc. (1h)
  • Parse JSON with jq. (1h)
  • Parse YAML with yq. (1h)
  • Master parsing other delimited formats. (30m)
  • Try a little Python. (2h)
  • Try a little Go. (2h)

Learn just enough Web dev#

  • Know how much Web dev is expected from all techies (20m)
  • Learn enough HTML to grok Markdown rendering (1h)
  • Learn enough CSS to make rendered Markdown pretty (1h)
  • Learn enough vanilla JavaScript to add occasional widget (1h)
  • Don't bother learning any "frameworks" (for now) (20m)
  • Use only the best Web dev learning resources (20m)
  • Understand PWAs and what it means to be "progressive" (20m)
  • Use zet (or something like it) to publish your live notes (1h)
  • Create a static site generator with pandoc and 10-lines of bash (1h)
  • Publish to Web automatically with GitHub pages (30m)
  • Publish to Web automatically with Netlify (30m)
  • Learn to leverage Go text and HTML templates (30m)

Become employable#

  • Grok that employment is about trust and people, not positions. (20m)
  • Network and foster a professional learning network/community. (1h)
    • Grow neck beard (where possible) lol.
    • "Strong opinions, weakly/weekly held."
  • Start listening for opportunities now. (20m)
  • Forget about LinkedIn. (20m)
  • Complete GitHub profile page and grok job discovery from GitHub. (1h)
  • Create and maintain a consumable, sustainable resume. (2h)
    • Don't call yourself a "junior"
    • Job titles are mostly bullshit (too bad no role-based employment)
  • Target occupations you want and start applying. (1h)
    • How much salary do I actually need?

Have a strategy for what comes next#

  • Know when and how to certify and why you might want to add it. (1h)
  • Set healthy work boundaries and self-care habits. (1h)

Pay it forward! (1h)#

  • Remember where you were. (20m)
  • Become a mentor. (20m)
  • Never stop learning. (20m)

What won't we learn (here)?#

There's a lot of stuff to learn and eventually we do hope to cover it in one of the other learning series we have planned. This is a place to capture that stuff when we think of it.

Polyglot Programming#

  • How to code in any language other than bash and a little Python and C
  • How to create and work with containers
  • How to create micro-services
  • How to interact with Web APIs

Homelab Init#

  • How to setup a local VLAN
  • How to setup and manage own DNS server
  • How to safely tunnel web-facing services through external providers
  • How to setup on-prem vanilla Kubernetes cluster
  • How to setup local virtual machine hosting with QEMU/libvirt

Last update: 2023-09-03