Dev Setup
Recommendations, you can borrow ideas here, but no need to totally follow it
Last updated
Recommendations, you can borrow ideas here, but no need to totally follow it
Last updated
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.
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
Windows
and then install
Linux
IDE
: for example
and
Docker
docker compose v2
While Macs come equipped with a highly capable terminal tool, iTerm2 is widely regarded as the best option available for Mac users.
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.
So, after you installed the zsh and on my zsh, you can try this zsh theme.
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.
All you need to do to install it is: Open the iTerm2 we just installed, and then run
It should work.
You can test the install by run
Until now, you should be able to have your terminal setup ready.
Windows do not have a good terminal, that's the reason why people do not like to use Windows to do development.
But still, in my opinion, the best setup under Windows is to use WSL2 + Ubuntu22.04
Two steps
Open the Ubuntu22.04 inside the MobaXTerm (Personally I think this is the best one under Windows)
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
Main tool you use under the Ubuntu22.04 to install package is still
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
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
There are a lot of the setting tools you can find and try online, here is one of the helpful links:
Other than VSCODE, which is a free and open source version, provided a lot of features by the effort from the open source communities.
Student has free access to all tools.
Jetbrain is also cross platform, it can run on Linux, Mac, Windows, without any differences.
For beginners, JetBrains offers enhanced usability over VSCode, notably by suggesting best practices for programmers. This guidance fosters good habits from the start.
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.
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.
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
Login with your Github account, and follow the instruction to set it up.
Login with your GitHub account.
The docker and docker compose installation instruction is here
Installation link:
The installation guide is in the README.md here:
Zsh also have a lot of different themes you can try, this is one of the popular one:
This medium post is holding the same opinion as me:
So we need something to do it in terminal, one of the options is HomeBrew, the link is:
It does provide a better terminal than PowerShell:
install WSL2:
install Ubuntu in Microsoft Store:
Then install MobaXTerm:
Then install the brew for Linux version, which will allow you to install some packages:
You will at least need a code editor, the most popular one nowadays is VSCODE: developed by Microsoft.
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,
You can try download and install the and install other applications from there.
This is where you can download git:
A good post about the concepts in git:
Install the plugin for vscode:
Install the plugin for JetBrain tools: