Beginner's guide to a developer work environment (Part 1)
Tags: tutorial, beginners, programming
Published: 2019-06-05 22:04:16

---
title: Beginner's guide to a developer work environment (Part 1)
published: true
description: This is a guide to help beginners get started with tools used by professional developers.
tags: tutorial, beginners, programming
---

When I first got into programming I had zero idea how professional developers worked. My idea of coding something was to open https://codepen.io/ and start hacking away. This helped me get something up quick but I knew it was unsustainable. I constantly was asking myself "what are developers using in the real world?" Too intimidated by all the tools out there I resorted back to my comfortable world of online editors. It wasn't until I joined a coding bootcamp where I was initiated into a real workflow.

I know how daunting it can be to open a terminal or editor and have no freaking clue what to do next. So this is my attempt at making it easier for beginners to get started with tools used by professional developers.


### 1. Xcode(MacOS)

####Description: 
In order to get a proper development environment set up on your computer you will need Xcode. I don't do much with Xcode this is just required to get started.

####Steps:

1. Install Xcode through the mac app
 
https://itunes.apple.com/us/app/xcode/id497799835?mt=12


### 2. Iterm2(MacOS)

####Description: 
Iterm2 is a replacement for the standard terminal in MacOS. Here is a list of all features that Iterm gives you over just a regular terminal.
https://www.iterm2.com/features.html

####Steps:

1. Install Iterm2
https://www.iterm2.com/

2. Keep this open we'll come back and start entering some commands!


### 3. Homebrew(MacOs)
https://brew.sh/

####Description: 
Homebrew allows you to install packages through the terminal(Iterm2).

###Steps:

1.) Install Homebrew


paste into Iterm2:
`/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
`

2.) confirm Homebrew installation worked

paste into Iterm2:
`brew --version`

should return something like 

```
Homebrew 2.1.4
Homebrew/homebrew-core (git revision 59240; last commit 2019-05-31)
Homebrew/homebrew-cask (git revision a6dcf; last commit 2019-05-30)
```

### 4. Zsh(oh-my-zsh)(MacOs or Windows)
https://ohmyz.sh/

####Description: 
Zsh is a shell that has a lot of features that make our lives as programmers easier.

oh-my-zsh gives you the ability to install themes and plugins for the zsh shell! 

Some of the most notable
* Automatic cd: Just type the name of the directory
* Spelling correction and approximate completion: If you make a minormistake typing a directory name, ZSH will fix it for you
* Plugin and theme support: ZSH includes many different plugin frameworks

Full Feature list: https://github.com/hmml/awesome-zsh

###Steps:

1.) Install zsh with Homebrew

paste into Iterm2:
`brew install zsh zsh-completions`

2.) Set Zsh as your default shell

paste into Iterm2:
this requires you to enter the password. It's going to be the same one you use to login to your computer.
`chsh -s /bin/zsh`

3.) Install Oh-my-zsh

paste into Iterm2:
`sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"`

### 5. Visual Studio Code(MacOs or Windows)

####Description: 
Visual Studio code is a code editor. There are a lot of great options out there for code editors(Atom, brackets, Sublime etc.) All these are great choices but I am going to stick with VS code for this tutorial. 

###Steps:

1.) install vs code
https://code.visualstudio.com/Download

###review
After following these steps you should have:
* Xcode installed which sets your computer for a development environment
* Iterm installed which gives you a better terminal than the mac default
* Homebrew installed which makes it easy to install packages across the web
* Zsh(oh-my-zsh) installed which makes your terminal super user friendly and pretty
* Vs code installed which gives you the ability to edit your code in a very intuitive way.

I hope this helped anyone struggling like I was when first getting into programming. In part 2 I will show how I am actually using these tools in the real world. 

###Disclaimer
Please let me know if you are having any issues. A development environment can be tricky to set up sometimes. Also please correct any mistakes I have made. Thanks :)