# Getting Started with TechOps Projects

Welcome to IEEE projects! Here, we host a variety of external projects that cater to a variety of audiences, especially those with interest in both software and hardware practical applications. This page will give a quick rundown of our most used tools that you should have before we start.

## Common Developer Tools and Software

### VS Code

{% embed url="<https://code.visualstudio.com/download>" %}

VS Code is probably the most preferred text editor for most development use cases. It has many powerful commands and extensions that can cater to our needs. Some extensions to get:

* Remote SSH
* Gitlens (for easy git blame)
* GitHub Copilot (you get a free subscription with Student Developer Pack!)
* Language specific support (e.g. Python, C/C++, etc)

### Python

{% embed url="<https://www.python.org/downloads/>" %}

Surprisingly, Python does not come pre-installed on Windows/Mac (go Linux lol). Please try to have the latest Python version installed.

## Web Projects

Here are some software you should have if working on web-based projects:

### Node.js and npm

{% embed url="<https://nodejs.org/en/download/current>" %}

Node.js is a JS runtime for modern JavaScript projects. We recommend getting the latest LTS version from the Node.js website. This should come with npm, the node package manager

#### nvm

{% embed url="<https://github.com/nvm-sh/nvm>" %}

Another possible way to install Node.js is through Node Version Manager, a handy tool that manages your Node.js version through CLI.&#x20;

### Docker

{% embed url="<https://www.docker.com/>" %}

Docker is a containerized application deployment platform. What this means is that Docker does the following:

* Virtualizes "containers" which you can think of as mini virtual machines on your computer (or any server)
* Distributes and deploys software packages through Dockerfile configurations
* Standardizes the overall development process for developers by using a common Docker configuration with the same package versions, environment, etc.

### Postman/Insomnia

{% embed url="<https://insomnia.rest/download>" %}

{% embed url="<https://www.postman.com/downloads/>" %}

You will likely soon learn (if not already learned) what HTTP requests are. While it's easy to run these requests in the browser, it's even better to have a client that visualizes these requests and give you a fast GUI-based way to run, test, and develop workflows with these requests. **You only need one of these, not both**.&#x20;

## Hardware Projects

TBD
