Skip to content

2024 Boost overview#

Note 2024 is still in planning stages.

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 (preferably 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

Changes since 2023 (and other previous Boosts)#

2024 we are breaking the Beginner Boost up into smaller educational content modules in line with the original 2013 SKILSTAK content organization:

  1. Start a career in tech
  2. Create a basic web with with HTML, CSS, and JavaScript
  3. Get a Linux machine
  4. Learn the Bash Command Line
  5. Learn coding fundamentals in Python and JavaScript
  6. Learn C for understanding
  7. Develop enterprise software in Go
  8. Leverage Linux containers (docker, podman)

In addition, the following will be back to SKILSTAK original pedagogical format:

  • Linux on machines, both virtual and metal (no containers)

As usual, none of this annual content will ever cover the following important topics and most tech professionals will have to learn elsewhere:

  • Cloud services
  • Data structures and algorithms
  • Creating and working with AI models
  • Kubernetes
  • Cybersecurity
  • Computer engineering

These are not covered because they are specializations of a particular tech career path rather than general knowledge that all tech professionals should have preferably before pursuing a career in tech at all.

Linux machines, metal and virtual#

2024 returns to the original focus of installing and running Linux on a real ("metal") machine in addition to installing on a VMware virtual machine running on Windows or Mac.