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:
IDE
Jetbrain family: for example PyCharm
Docker
docker compose v2
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/
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
It should work.
You can test the install by run
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
install WSL2: WSL2
install Ubuntu in Microsoft Store: Ubuntu22.04
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
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
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
Last updated