Essential Tools & Technologies for New Developers
Tags: beginners, webdev
Published: 2024-05-08 18:46:37

When starting to code for the first time, you are kind of lost on what the best tools or technologies for productivity are. So today, I am going to share all the tools and technologies I use on a daily basis that keep me productive.

## Working Environment

Before we dive into the technical staff, we need a proper environment to work in that will fulfill all of our needs.

**Brew**

Before we start installing anything, if you are a Mac user, you need to install [homebrew](https://brew.sh/), a package manager for Mac that will help you install software quickly and easily from this article.

**Terminal**

For Linux users, your default terminal is just fine. The only thing I would install is [oh-my-zsh](https://ohmyz.sh/) with the autocomplete plugin. For my Mac friends out there, [**iTerm**](https://iterm2.com/) is an amazing software that works well with [oh-my-zsh](https://ohmyz.sh/) as well.

**IDE**

For beginners, the best code editor is [Vscode](https://code.visualstudio.com/).

If you later become more advanced, you can try JetBrains. If you buy a JetBrains subscription, you can install [Toolbox](https://www.jetbrains.com/toolbox-app/), a software that lets you manage all your projects and IDEs in one place.




[**Bitwarden**](https://bitwarden.com/)

Having a password manager is important to keep all your passwords safe and also compartmentalize all your logins. Having the same password everywhere can make you really vulnerable to hacker attacks, and in the long run, if one of your passwords is leaked, you are screwed.

## CLI Software

Now let's move on to more specific software that you will most likely need.

[**Git**](https://git-scm.com/downloads)

Every developer has git installed to his computer. I don't think there is a question for that. It doesn't matter if you are using Github or Bitbucket [Git](https://git-scm.com/downloads) is the go-to version control software.

**Databases**

Every time I buy a new computer, the first thing I install is the servers for [MySql](https://www.mysql.com/) and [Postgres](https://www.postgresql.org/), the two most common databases. This way, I can start the databases with a simple command like this:

`mysql.server start`

`pg_ctl -D /usr/local/var/postgres start`

You can also install other databases if you want, like MongoDB. I don't like software like XAMPP or MAMP; I find them too boring.

**Database Managers**

Now that we've talked about databases, we are going to look at some software for connecting and managing your databases. [DBeaver](https://dbeaver.io/) is a good free software that works on all platforms. But for those who are using JetBrains, you can also use [Datagrip](https://www.jetbrains.com/datagrip/?var=light).

There are more alternatives as well but these 2 are my favorite.

## Technologies

**Next.js**

[Next.js](https://nextjs.org/) is a powerful React framework that enables developers to build server-rendered applications, static websites, and more. It's designed for production and provides features like automatic code splitting and optimized prefetching.

[**Radix UI**](https://www.radix-ui.com/)

Offers a suite of unstyled, accessible UI primitives for building high-quality, customizable design systems and web apps.

Lastly, [Tailwind CSS](https://tailwindcss.com/) is a utility-first CSS framework packed with classes like flex, pt-4, text-center, and rotate-90 that can be composed to build any design, directly in your markup.

Together, these technologies provide a robust toolkit for creating modern, responsive, and accessible web applications.

## Final words

In conclusion, setting up a productive development environment as a beginner can seem daunting, but with the right tools and technologies, you can streamline the process and enhance your coding experience.

From essential software like Homebrew and Git to powerful frameworks like Next.js, each component plays a pivotal role in building a robust and efficient workspace.

Thanks for reading, and I hope you found this article helpful. If you have any questions, feel free to email me at [**kourouklis@pm.me**](mailto:kourouklis@pm.me)**, and I will respond.**

You can also keep up with my latest updates by checking out my X here: [**x.com/sotergreco**](http://x.com/sotergreco)