Table of Contents
IntroductionThePrimeagen introduces the course by providing a personal "First Big Interview" story, discusses common developer experiences that cause search fatigue, and the intersection of soft skills and technical skills. Why developer workflow is important and some personal background information is also discussed in this segment.
The Problem StatementThePrimeagen briefly discusses how Docker is going to be used in this course and walks through the usual process of installing Zsh on a new computer. This Zsh install demonstrates the tedium of setting up a new computer and the need for a better, faster, solution.
Ansible OverviewThe Primeagen introduces the cloud configuration platform Ansible and briefly discusses the structure of Ansible files and tasks which are written in YAML. Ansible is an automation engine that can help streamline the process of setting up a new computer.
Creating Ansible Tasks to Install ZshThePrimeagen demonstrates creating Ansible tasks to handle the install of Zsh, change the default shell, install ohmyzsh, and install the Zsh plugin for auto suggestions. The differences between Ansible and a bash script and a brief description of sed are also covered in this segment.
Install Node Version & Split Up TasksThePrimeagen walks through using Ansible to install a specific version of Node, using tags to identify tasks, use tags to execute selected tasks, and separate tasks into files. Student questions regarding how to choose between using a bash script and Ansible and if Ansible can be used to install an operating system are also covered in this segment.
Store SSH & Auth Keys with Ansible VaultThePrimeagen demonstrates using Ansible Vault to encrypt and decrypt files with AES256 encryption to allow the ability to securely store and use SSH and Auth keys. Student's questions regarding the safety of storing these files publicly are covered in this segment.
Dotfiles ManagementThePrimeagen discusses which main issues to solve for the dotfile management problem, provides an overview of what dotfiles are, and demonstrates how dotfiles can be used to configure programs. A brief overview of some options to manage dotfiles is also provided in this segment.
GNU StowThePrimeagen introduces GNU Stow, demonstrates a directory structure, and walks through some examples of using stow including stowing a file, a directory, and two directories with similar paths. A student's question regarding how stow knows which directory to look at is also discussed in this segment.
Unstowing and Common Stowing IssuesThePrimeagen demonstrates what happens when unstowing a directory, stow's ability to easily move directories, and some common issues when stowing. Stow will automatically bring the symlink as far back into the file tree as possible.
YADM & Setup Tools ReviewThePrimeagen discusses how Yet Another Dotfile Manager manages dotfiles, benefits and drawbacks, and provides a personal review of some of the trade-offs of each management system. A student's question regarding bare repositories and a brief summary of the material covered so far is also provided in this segment.
Navigation & Window ManagementThePrimeagen discusses using window managers to assist in speeding up navigation between desktops. The window managers discussed allow for setting windows to hotkeys, window tiling, and more custom configurations.
ShellThePrimeagen discusses and demonstrates the difference between the shell and terminal, gives examples of different shells, and suggests a shell to use. Having a comfortable shell can greatly improve the user experience while in a terminal.
Terminal & MultiplexingThePrimeagen discusses personal terminal choices, some background with the terminal, and the problem to be solved with terminal multiplexing.
tmuxThePrimeagen demonstrates how terminal multiplexing can be used for a faster, more efficient, use of the terminal, how tmux is organized, and walks though an example of using tmux. The terminal multiplexer tmux can be used on all operating systems which allows for a simpler system transfer.
Basic tmux CommandsThePrimeagen walks through using various tmux commands including starting and stopping a server, listing sessions, reattaching a server, creating a new detached session, moving between sessions, detaching and reattaching from tmux sessions.
Windows & Sessions Management with tmuxThePrimeagen demonstrates how to view a list of all current sessions and windows, create and close windows, navigate between windows, name sessions and windows, split windows into panes. Student questions regarding when would split windows be used in tmux if you are using i3 and if there is a way to jump between named sessions.
Directories with tmuxThePrimeagen discusses the problem space of navigating directories, fuzzy finders, specifying directories in tmux, and switching clients. How to specify a command, open the manual, and how to read the manual is also covered in this segment.
CLI PipingThePrimeagen discusses how CLI piping works and then live codes a program that reads from the standard in, writes to the standard out, and takes in a line. The built program will read out lines as it experiences them to demonstrate pipes.
fzfThePrimeagen demonstrates using the fuzzy finder fzf to find and write out a selected line. A walk through of creating a base fuzzy finder using the core utility find along with mindepth and maxdepth is also provided in this segment.
Create a tmux Navigation Bash ScriptThePrimeagen live codes a navigation bash script, that creates new sessions based on directory names, using the core utility basename, has-session, new-session, and switch-client. The core utility basename is also used to print the last element of a file path.
Improve the tmux Navigation Bash ScriptThePrimeagen demonstrates how to navigate to a previous session and discusses ways to make the previously built navigation script more useful. Having the script available in commonly used workspaces such as zsh and keeping executables in a local bin file are also demonstrated in this segment..
Cheat SheetThePrimeagen demonstrates using the program Cheat Sheet to search for answers to programming questions such as core utilities, language specifics, and even TL/DR on learning a language without having to open a browser. How to copy and paste from the terminal and a student's question regarding why the keybinds are not just set in tmux are also discussed in this segment.
Creating the Cheat Sheet ScriptThePrimeagen live codes a script using Cheat Sheet, fzf, and less to query through and return information regarding selected languages and core utilities. When the script searches for the query, a new pane will be created to display the returned information.
tmux Plugins & RCThePrimeagen provides some plugins to check out including Tmuxinator, TmuxP, and Tmux Resurrect. A brief overview of some of the features in ThePrimeagen's TmuxRC is also provided in this segment.
Tools: Git worktreesThePrimeagen demonstrates using git-worktree to manage multiple working trees attached to the same repository and discusses the benefits and drawbacks. Student questions regarding when git-worktree wouldn't be useful and what happens when a change gets pushed up stream are also covered in this segment.
git logThePrimeagen demonstrates using git log -S to look for differences that change the number of occurrences of the specified string in a file. A student's question regarding if it is searching the log message or the actual commit is also covered in this segment.
Linux Core UtilsThePrimeagen discusses the importance of using the core utilities to simply and quickly complete common tasks. A walkthrough of an example of using Linux core utilities to quickly count the number of occurrences a word has in YouTube subtitles is also provided in this segment.
Linux Core Utils & sed TipsThePrimeagen walks through an example of using the Linux core utilities to sum each line and display the max sum. Recommendations for utilities to know and tips for using sed are also covered in this segment.
Snippets & GitHub Co-PilotThePrimeagen briefly demonstrates using snippets to help autocomplete code and discusses GitHub Co-Pilot as a future prospect for replacing code snippets with AI assisted programming. GitHub Co-Pilot searches through all of GitHub to suggest an autocomplete for the user.