Skip to content

tools

1 post with the tag “tools”

Setting Up Your Software Development Environment

Setting Up Your Software Development Environment

Section titled “Setting Up Your Software Development Environment”

A well-configured development environment is crucial for productivity. This guide covers essential tools, configurations, and best practices for setting up a robust workspace, focusing on a Linux-based setup.

For development, Linux distributions (like Ubuntu, Fedora, Arch) are popular due to their flexibility, powerful command-line tools, and native support for many development technologies. macOS is also a strong contender, while Windows often benefits from WSL (Windows Subsystem for Linux).

Git is non-negotiable for collaborative development and tracking changes.

Terminal window
sudo apt update
sudo apt install git -y
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

Visual Studio Code is a highly popular and extensible editor. Install it via snap or by downloading the .deb package.

Terminal window
sudo snap install --classic code

Default terminals are fine, but modern alternatives like Kitty or Alacritty offer better performance and customization.

Terminal window
sudo apt install kitty -y

For web development, Node.js and its package managers are essential.

Terminal window
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs
# Install pnpm (optional, but recommended)
sudo npm install -g pnpm

Bash is the default, but zsh with Oh My Zsh or fish shell offer enhanced features.

Terminal window
sudo apt install zsh -y
chsh -s $(which zsh)
# Install Oh My Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Customize your ~/.zshrc or ~/.bashrc for aliases, functions, and prompt.

~/.zshrc
# ZSH_THEME="robbyrussell"
ZSH_THEME="agnoster"
alias ll="ls -lah"
alias gs="git status"
alias gc="git commit -m"

Use pyenv or conda for managing Python versions and virtual environments.

Terminal window
curl https://pyenv.run | bash
# Add to .zshrc or .bashrc
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
source ~/.zshrc
pyenv install 3.10.12
pyenv global 3.10.12

Docker is indispensable for containerized development and deploying services.

Terminal window
# Install Docker (refer to official docs for latest instructions)
sudo apt install docker.io -y
sudo usermod -aG docker $USER
newgrp docker
# Install Docker Compose
sudo apt install docker-compose -y

Store your shell configurations, editor settings, and other dotfiles in a Git repository. This makes it easy to sync your setup across machines.

Terminal window
git clone --bare git@github.com:your-username/dotfiles.git $HOME/.dotfiles
alias dotfiles=\'git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME\'
dotfiles checkout
ToolDescriptionWhy Use It
tmux / screenTerminal multiplexerManage multiple terminal sessions, persistent sessions
fzfFuzzy finderFast file/history search
ripgrep (rg)Fast code searchFaster grep alternative
tldrSimplified man pagesQuick command examples

Building a development environment is an iterative process. Start with the basics, then gradually add tools and configurations that suit your workflow. The goal is to minimize friction and maximize your focus on coding.

Happy coding!