Setting up your developer workstation
The most important aspect of automation is to have a properly set up developer workstation. While there is no defined or fixed set of tools, there are a few essential tools and best practices that can provide flexibility and support while writing automation scripts or software. I am listing my preferred choices of tools, software, and extensions for a smooth automation/development experience
Choosing the right operating System (windows vs Linux vs Mac)
Code Editor - vscode
Code Editor extensions
git
zshell
Virtual environment setup (python)
Choosing the right operating system:
While Windows, Linux, and macOS all have their merits, each caters to different preferences and requirements, Linux has been always been choice for network automation tasks or scripting tasks. and the reason behind this is its open-source nature, storing community support presence and also its compatibility with a wide range of developer tools and libraries. There are multiple flavors of Linux out there. ubuntu has always been my preferred choice
Download Ubuntu LTS here (desktop)
Download Ubuntu LTS here (server)
Code Editor:
Visual Studio Code (VSCode) has always been my favorite among all other available tools. Its lightweight, open-source nature, support for multiple programming languages, and vast library of extensions make it a top choice for developers across various domains. With native support for multiple programming languages, an integrated terminal, and seamless Git integration, VSCode offers an unparalleled development experience for a wide range of projects and workflows.
While VSCode reigns supreme in my toolkit, it's worth mentioning other notable code editors that developers often consider:
Sublime Text
PyCharm
IntelliJ IDEA
The beauty of VSCode lies in its robust community support. Below is a list of extensions that I have been using to simplify my development life:
Python
YAML
JSON by beautify JSON
Remote - SSH
GitLens by gitkraken
Monokai Pro
Version Control System: - Git
Effective version control is essential for
Managing code changes,
Collaborating with team members, and
Tracking project history.
Git, with its distributed nature and robust branching model, is the de facto standard for version control in the software development industry. By leveraging Git within your development environment, you can easily synchronize code changes, resolve conflicts, and maintain a reliable history of your projects.
Zsh Shell:
Now, this is an optional tool to have, but including it in your developer workstation makes software development life easier and enhances productivity. It’s an open-source, community-driven framework for managing your terminal. Oh My Zsh comes bundled with plugins that will make your life as a software developer easier
Virtual Environment Setup (Python):
For Python development, setting up virtual environments is essential for managing dependencies and isolating project environments. I will discuss the methods below for creating a virtual environment.
Using venv
Using poetry