Developer Productivity

ThePrimeagen

ThePrimeagen

terminal
4 hours, 17 minutes CC
Developer Productivity

Course Description

How can you stay productive across multiple machines, multiple projects, and multiple technologies? By setting up a professional toolchain, you’ll get more work done with less effort. We’ll start with using Ansible to quickly build a fresh dev environment. Next, you’ll how to optimize your workflow using tmux and advanced features of git. We’ll finish up by going over Linux Core Utils that can make your life as a developer easier, and what the future of programming could look like!

This course and others like it are available as part of our Frontend Masters video subscription.

Preview
Close

Course Details

Published: October 19, 2021

Learn Straight from the Experts Who Shape the Modern Web

Your Path to Senior Developer and Beyond
  • 200+ In-depth courses
  • 18 Learning Paths
  • Industry Leading Experts
  • Live Interactive Workshops
Get Unlimited Access Now

Table of Contents

Introduction

Section Duration: 15 minutes
  • Introduction
    ThePrimeagen 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.

Ansible

Section Duration: 40 minutes
  • The Problem Statement
    ThePrimeagen 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 Overview
    The 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 Zsh
    ThePrimeagen 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 Tasks
    ThePrimeagen 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 Vault
    ThePrimeagen 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

Section Duration: 31 minutes
  • Dotfiles Management
    ThePrimeagen 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 Stow
    ThePrimeagen 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 Issues
    ThePrimeagen 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 Review
    ThePrimeagen 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.

Terminals

Section Duration: 19 minutes

tmux

Section Duration: 44 minutes
  • tmux
    ThePrimeagen 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 Commands
    ThePrimeagen 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 tmux
    ThePrimeagen 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 tmux
    ThePrimeagen 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 Piping
    ThePrimeagen 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.

Bash

Section Duration: 55 minutes
  • fzf
    ThePrimeagen 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 Script
    ThePrimeagen 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 Script
    ThePrimeagen 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 Sheet
    ThePrimeagen 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 Script
    ThePrimeagen 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 & RC
    ThePrimeagen 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

Section Duration: 47 minutes
  • Tools: Git worktrees
    ThePrimeagen 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 log
    ThePrimeagen 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 Utils
    ThePrimeagen 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 Tips
    ThePrimeagen 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-Pilot
    ThePrimeagen 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.

Wrapping Up

Section Duration: 1 minute
Just completed another great course, "Developer Productivity," from ThePrimeagen on Frontend Masters! I'm definitely going to 10x my developer productivity to over 9000! I now have a new appreciation for ansible, tmux, and git worktree. Great course!
Denzil Villarico

Denzil Villarico

denzilv

Came for dotfile management, stayed for the rest. Really useful in-depth look at ThePrimeagen workflow.
Reinis Priednieks

Reinis Priednieks

priednis

👍 Recommended if you're interested in ansible, dotfiles, terminals, tmux, fzf, bash, tools, …
Elijah Manor

Elijah Manor

elijahmanor

Learn Straight from the Experts Who Shape the Modern Web

  • In-depth Courses
  • Industry Leading Experts
  • Learning Paths
  • Live Interactive Workshops
Get Unlimited Access Now