Dev Setup

Recommendations, you can borrow ideas here, but no need to totally follow it

This is not required section for any units

You DO NOT NEED to follow this one to setup your local development environment.

Here, we're demonstrating the common practices followed by most developers in the industry.

Introduction and Disclaimer

Nowadays

  • Google Chrome's Dominance Across Platforms

  • Windows Embraces the Linux Subsystem

Most of the daily tasks required by developers can now be accomplished using any platform or cloud service, with minimal differences between MacOS, Windows or Linux regarding user experience.

If we had to do so, for an optimal daily workflow, the operating systems can be ranked as follows: macOS, followed by Windows with the Linux Subsystem, and then Linux.

I am using all of them natively these days, and switch between them, so I am essentially able to configure them to have very similar settings, and happy with that.

This document is showing you what I have done, so can give you some ideas about what you can do with your setup. Espeically if you are new in the IT space, then hopefully this can save you some headache, get you focus on writing the code, changing the world dream.

From personal and colleagues' experiences, an effective developer setup comprises, but is not limited to, the following tools:


Terminal

Mac Setup

While Macs come equipped with a highly capable terminal tool, iTerm2 is widely regarded as the best option available for Mac users.

Installation link: https://iterm2.com/

Click the download

Unzip the file, and the copy the iTerm2 to Application folder

After you have the iTerm2, it is not the end of the trip.

I think you heard about sh,bash,zsh, as developers, we prefer zsh, especailly with on-my-zsh

Because we can do a lot of customization and make us look more like a fancy hacker.

Zsh and On My Zsh

The installation guide is in the README.md here: https://github.com/ohmyzsh/ohmyzsh

Zsh also have a lot of different themes you can try, this is one of the popular one: https://github.com/romkatv/powerlevel10k

So, after you installed the zsh and on my zsh, you can try this zsh theme.

This medium post is holding the same opinion as me: https://medium.com/@Clovis_app/configuration-of-a-beautiful-efficient-terminal-and-prompt-on-osx-in-7-minutes-827c29391961

HomeBrew

For Mac, if we want to install applications, packages, we need to go through the way mentioned above, download it, unzip it, and copy to the Application folder, the App Store do not hold many(actually is None) useful applications for developers.

So we need something to do it in terminal, one of the options is HomeBrew, the link is: https://brew.sh/

All you need to do to install it is: Open the iTerm2 we just installed, and then run

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

It should work.

You can test the install by run

brew

Until now, you should be able to have your terminal setup ready.

Windows Setup

Windows do not have a good terminal, that's the reason why people do not like to use Windows to do development.

It does provide a better terminal than PowerShell: https://apps.microsoft.com/detail/9n0dx20hk701?hl=en-us&gl=AU

But still, in my opinion, the best setup under Windows is to use WSL2 + Ubuntu22.04

WSL2 + Ubuntu22.04

Two steps

MobaXTerm

Then install MobaXTerm: https://mobaxterm.mobatek.net/

Open the Ubuntu22.04 inside the MobaXTerm (Personally I think this is the best one under Windows)

Zsh and On My Zsh

Then install the zsh and on my zsh with the same process we mentioned in Mac, configure it probably with them under the opened terminal

brew on Linux

Then install the brew for Linux version, which will allow you to install some packages: https://docs.brew.sh/Homebrew-on-Linux

Main tool you use under the Ubuntu22.04 to install package is still

apt-get install package_name

Linux Setup

If you already use Linux, I do not think you need my opinion.

It will be the same as the step for Windows after installed the WSL2 and Ubuntu22.04

IDE

VSCODE

You will at least need a code editor, the most popular one nowadays is VSCODE: https://code.visualstudio.com/ developed by Microsoft.

You can install it via download it, it is cross platform, it can run on Linux, Mac, Windows, without any differences.

Or you can install it via brew command for Linux and Mac

brew install --cask visual-studio-code

There are a lot of the setting tools you can find and try online, here is one of the helpful links:

Jetbrain Toolbox

Other than VSCODE, which is a free and open source version, provided a lot of features by the effort from the open source communities.

We also have paid version of the IDE, which provide more features out-of-box, for example, the most popular one in paid version world: Jetbrain, https://www.jetbrains.com/

Student has free access to all tools.

Jetbrain is also cross platform, it can run on Linux, Mac, Windows, without any differences.

You can try download and install the https://www.jetbrains.com/toolbox-app/ and install other applications from there.

For beginners, JetBrains offers enhanced usability over VSCode, notably by suggesting best practices for programmers. This guidance fosters good habits from the start.

Git and GitHub

Git

You must know git, how to merge, branch, pr, etc as a developer.

It is for you the teamwork, if you are work on the same codebase, and potentially are changing the same file, you will need to understand how can each of you finish your individual work without affecting another people's work.

Git is designed by the big name: Linus Torvalds (who is the father of Linux) to solve the problem above.

This is where you can download git: https://git-scm.com/

A good post about the concepts in git: https://medium.com/free-code-camp/learn-the-basics-of-git-in-under-10-minutes-da548267cc91

Github

So when we have the codebase, we need somewhere to store it and backup it. This idea brings the Github.

  • So you can have a copy of your code locally

  • and when you finish the work on your local repo, commit it

  • you can then push to the github specific branch

  • do a PR

  • your co-worker can review your PR

  • approve it or declien it

  • and then deliver the code to production or you go back to improve your code

A lot of open source projects are hosted on GitHub, so open communities can all contribute to it if they want.

It is the social media for developers, so register an account today, and explore it.

Github Copilot

This is the code version ChatGPT, it can auto complete the code for you. Write decent code, and allow you to learn from code.

Use it, if you are junior developers, when you use it, think about it.

Student have free access to it, use your Github account to login

Use it in VSCODE

Install the plugin for vscode: https://marketplace.visualstudio.com/items?itemName=GitHub.copilot

Login with your Github account, and follow the instruction to set it up.

Use it in PyCharm

Install the plugin for JetBrain tools: https://plugins.jetbrains.com/plugin/17718-github-copilot

Login with your GitHub account.

Docker and Docker Compose

The docker and docker compose installation instruction is here

How to install Docker

Last updated