The Terminal Setup Every Developer Needs (Part I)

terminal-setup-for-developers

As part of my upcoming course (Pre-Launch), The Ultimate Developer Environment Setup Course, I would like to share one of many tools and software I believe would be helpful in becoming a productive Software Developer.

To read part II click here!

Introduction

When I decided to learn how to code, I did not realize how much having the right tools would benefit my coding journey. We always see on Youtube or Instagram a clean developer's table with optimal cable wiring and RGB lights, but rarely do we see developers sharing their software tools.

I notice during my pairing sessions with junior developers how much they struggle not with the code but how they navigate and use their computer. By adding a few simple tools and making a few configurations I found my productivity increasing significantly.

For Part 1, I want to focus on the terminal because as a Software Developer, the terminal is where you’ll find files, folders, and interact with git/github. To me, terminal is my developer home and if you know anything about having a home, you want it to be clean and beautiful to your liking! So let's start there and create our ideal central hub.

Ditch Terminal Install iTerm2

If you're a Mac user, you'll have the Terminal software pre-installed on your computer. Although usable, I found this software to be very limiting as described in the iterm documentation. (Split Panes, AutoComplete, Configurability). Even if you decide not to use all the features that come with iTerm, I strongly feel that the iTerm experience is vastly superior to that of the default Terminal.

You can download the software here

Once you download iTerm, open it up and play around with it! If you right-click on the terminal, you'll see a list of options you can choose from. My two favorite options that I tend to select often are the Split Pane Vertically and Split Pane Horizontally which do exactly what they say they do! By splitting panes vertically or horizontally, you no longer have to create a new tab or a new window whenever you want to a different action. As you start building more complex applications, you may find yourself running multiple local servers and navigating between different folders. It can be nice to have everything in one window pane.

Side note - If you press cmd + t, it will open a new tab. (This feature exists in both Terminal and iTerm)

Split Panes Vertically

Split Panes Horizontally

Another configuration I highly encourage all Developers to do is turn on “Reuse previous session’s directory.” What this feature allows you to do is, whenever you open a new terminal tab or window pane, it will create a new session starting at your current directory.

If you find yourself navigating deep into a folder structure and hate having to go back from the beginning to get there, turn this on! This is definitely my preference, but if you like starting from the very beginning then this might not be the feature for you! To get this working, select iTerm2 on the top left of your laptop then select Preferences…

Once you're on the settings page, select Profiles. In the Profiles section, you will automatically be in the General tab. In the General tab, select "Reuse previous session's directory". After selection, you can close the window.

Now that you’ve finished setting that up navigate to a folder in your terminal. In my case I am in my “my-portfolio-course” folder. When I right click “Split Pane Horizontally”, you’ll notice the terminal will open with the session starting at “my-portfolio-course”, which is exactly what we want!

Reuse previous session’s directory

Different Session, same root folder

As you can see, iTerm2 is very rich in features out of the box. I only talked about a few things that I find useful, but I highly encourage you to experiment with it yourself. In part II, I want to share how to make your all-white terminal "prettier" by using Oh My Zsh! Stay tuned for the next one!

If you would like to connect 👋 you can reach me at

Previous
Previous

The Terminal Setup Every Developer Needs (Part II)

Next
Next

Frontend Developer Roadmap