Developer Productivity, v2

ThePrimeagen
terminal
3 hours, 28 minutes CC
Developer Productivity, v2

Course Description

Maximize your productivity with the best developer setup. Hand-craft an environment with bash scripts and incorporate common unix tools for managing libraries, interacting with the OS, window management, and more.

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

Preview
Close

Course Details

Published: January 31, 2025

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

Table of Contents

Introduction

Section Duration: 3 minutes
  • Introduction
    ThePrimeagen introduces the course by emphasizing the importance of productivity over aesthetics and his preference for a highly functional setup that allows him to navigate and access what he needs quickly. ThePrimeagen also mentions that the course will primarily focus on the Unix perspective. - Course Repo:

Your Environment

Section Duration: 1 hour, 15 minutes
  • The Environment: Setup Ansible
    ThePrimeagen discusses the challenges of setting up and maintaining a productive environment. He also mentions Ansible as a tool for managing dotfiles and demonstrates how to create a basic Ansible playbook to install NeoVim.
  • Setup & Build Neovim with Ansible
    ThePrimeagen demonstrates cloning the NeoVim repository, installing the necessary dependencies, and building NeoVim from source using the "make" command. ThePrimeagen also highlights the pros and cons of using Ansible for this process and compares it to using shell scripts or other methods.
  • Why Reinvent the Wheel
    ThePrimeagen discusses the importance of reinventing the wheel in software development to gain a deeper understanding of how things work and to appreciate the complexity of certain tasks. He also emphasizes the importance of creating a solution that suits your own needs and preferences, rather than relying on generalized solutions.
  • Bash Environment Setup Script
    ThePrimeagen demonstrates how to create a script called "run" that can run scripts from a subdirectory called "runs". He demonstrates using the "find" command to find all executable files in the "runs" directory and store them in a variable. He then loops through the scripts, filters out any scripts that don't match the filter argument, and executes the remaining scripts.
  • Convert Ansible Script to Bash
    ThePrimeagen demonstrates how to update a bash script to be identical to an Ansible script. He shows how to simplify the script by deleting unnecessary lines, cloning a branch, installing dependencies, changing directories, and running commands. ThePrimeagen also discusses the benefits of using bash scripts for software installation and customization.
  • Dotfiles
    ThePrimeagen explains how to create a script to copy directories and files in a Bash environment. He also shows how to use the `basename` command to extract the name of a file from its path.

Navigation

Section Duration: 54 minutes
  • Why Use a Window Manager
    ThePrimeagen discusses the benefits of using a window manager to organize windows and streamline navigation, and recommend using tmux and ghostie for a powerful terminal experience. He also highlights the importance of having sessions that persist even after closing the terminal, multiple sessions based on directories, tabs within sessions, and the ability to quickly navigate to sessions using fuzzy find.
  • Setup Tmux
    ThePrimeagen discusses using Tmux for managing terminal sessions, windows, and panes. He also demonstrates various Tmux commands and shortcuts, such as creating new sessions and windows, navigating between them, and sending commands to specific panes.
  • Creating Our First Script
    ThePrimeagen demonstrates how to write a script that will execute a specific file when navigating to a directory. He also introduces a fuzzy finder tool and shows how it can be used for quick navigation and selection of files and directories.
  • Search and Navigate Script
    ThePrimeagen demonstrates how to write a script called "Tmux Sessionizer" that allows the user to navigate and switch between different directories using Tmux sessions. The script can create new sessions, switch to existing sessions, and execute other scripts within the sessions.

Tools

Section Duration: 1 hour, 12 minutes
  • Developer Tools: JQ
    ThePrimeagen demonstrates various commands and functionalities of JQ, such as making JSON data pretty, filtering and selecting specific objects, performing calculations, and creating new objects.
  • Unix Tools
    ThePrimeagen provides a quick overview of several Unix tools, including sed, find, exec, xargs, parallel, and awk. He explains how these tools can be used for various tasks such as text transformation, file manipulation, and data processing.
  • Customizing Neovim
    ThePrimeagen introduces Neovim and explains the differences between Neovim and other code editors like VS Code. He also mentions the usefulness of learning Vim motions and suggests incorporating a keyboard-centric approach to improve productivity.
  • VIM Motions & Operators
    ThePrimeagen demonstrates VIM features such as motions (e.g., moving up, down, left, right), operators (e.g., delete, copy), combining motions with operators, using quick fix lists, and the ability to customize and extend VIM using Lua scripting.
  • Why Neovim
    ThePrimeagen shares his personal preferences for using VIM and reasons for choosing certain tools and terminals. He briefly demonstrates some features of the Neovim API and a collection of small games called VimBeGood to practice VIM motions.
  • Why Not Include AI
    ThePrimeagen explains why he didn't cover AI in the course, including AI tools evolving rapidly and becoming deprecated quickly, and the concern that junior developers may rely too heavily on AI and not develop their own problem-solving skills.
  • Q&A
    ThePrimeagen answers student questions regarding the use of Ansible versus bash scripts, idempotency, and the importance of challenging one's comfort zone. He also touches on personal development and team dynamics, offering tips for creating a cohesive and collaborative team environment.

Wrapping Up

Section Duration: 2 minutes
  • Wrapping Up
    ThePrimeagen wraps up the course by emphasizing the importance of finding joy in the process of problem-solving and learning, rather than solely focusing on the end result. He also encourages students to develop their own unique approaches and setups that work best for them.

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