This post details my current development environment, tools, and software that I use daily. ๐ ๏ธ I hope this might be useful for others setting up their development machines. โจ Best part, I'm also going to add installation scripts & commands for Windows ๐ช, Linux ๐ง & Mac ๐. I'm on Linux though, so I have 100% confidence in the Linux commands. ๐ฏ
๐ง Processor: 12 ร 12th Gen Intelยฎ Coreโข i5-1235U
๐งฎ RAM: 8GB DDR4
๐พ Disk: 1TB SSD
๐ฑ๏ธ Mouse: IRIScan Scanner mouse
๐ง Other peripherals:
๐ต Volkano LEO 2.0 vk-1130 True Wireless Earphones.
These computer specs have been perfect for both my development work and school projects. โก I really can't complain about the performance, I got the recommendation from some blog post I saw on dev.to. I just lost reference to the exact post though. Sorry. ๐คทโโ๏ธ
I prefer using the trackpad because it feels faster โก, but bought this mouse mainly because it doubles as a scanner. ๐ That's how I scan all my handwritten assignments and exams - pretty cool feature. I can't live without my earphones since I'm on Spotify constantly. ๐ต Yes, I'm a Spotify user through and through! ๐ง
I used Windows for a while, which makes sense since it's usually the first operating system we encounter when we start using computers seriously. Now I use it as a backup option by running it in a virtual machine, along with macOS Sonoma. ๐ I mainly use both systems to try out different things, and I specifically use Windows to test my C++ assignments before submitting them to make sure they work properly. โ
I won't get into detail with this because it's out the scope of this post. Have a look at VirtualBox ๐ฆ or VMWare ๐ฅ๏ธ and how to get setup with Fedora on either. To be generous, I've linked to a YouTube video here for virtual machines (recommended) ๐ปโจ and here for bare metal ๐ฝ๐ง.
To help everyone install software easily, no matter what operating system you're using, I'll show you how to set up both Windows and macOS with package managers like we have on Linux. This makes everything much simpler, you won't have to keep opening your browser and going to different download pages every time you need new software. ๐
โ ๏ธ Not all the software will be available through these package managers though.
๐ก There are other package managers you can use on windows, but I will be using Chocolatey ๐ซ because that is what I have the most experience with. WinGet is also a good one.
โผ๏ธ For chocolatey to work as expected, you need to run these commands & every other installation command in PowerShell with admin privilages. ๐จโ๐ป
Disable PowerShell's restricted execution policy
Set-ExecutionPolicy AllSigned
Install Chocolatey
Temporarily bypass the execution policy for this process only
Set-ExecutionPolicy Bypass -Scope Process -Force
Update the security protocol to use TLS 1.2 or greater
๐ก We will use Homebrew ๐บ as the package manager on Mac. I honestly don't know of any other one that works with this system. Something for me to look out for. ๐
โผ๏ธ Make sure your machine fits these requirements โ
ZSH is only available on Mac and Linux. Sorry to the Windows folks - PowerShell it is for you! ๐ I use Tabby because it looks good and it's lightweight. โจ It comes with a number of features that make my daily workflows easier (SSH client ๐, Docker container connection ๐ณ).
VS Code is my main editor for everything because it's lightweight and easily supports all the different programming languages I use regularly. ๐ป I switch to JetBrains IDEs when I'm working with languages that need heavy configuration, like C++. CLion is my most-used JetBrains IDE for that. ๐ง I also like changing things up sometimes, so I'll use WebStorm or PyCharm when I want a different coding environment. ๐
sudo tee /etc/yum.repos.d/vscode.repo > /dev/null << EOF[code]name=Visual Studio Codebaseurl=https://packages.microsoft.com/yumrepos/vscodeenabled=1autorefresh=1type=rpm-mdgpgcheck=1gpgkey=https://packages.microsoft.com/keys/microsoft.ascEOF
To have an easy way to manage all the different IDEs from JetBrains, I use JetBrains Toolbox ๐งฐ. On Fedora, we don't have an rpm for it so we need to download and run it manually. ๐ ๏ธ
Linux
Follow along with these instructions to get the toolbox installed.
Mac
brew install --cask jetbrains-toolbox
Windows
choco install jetbrainstoolbox -y
You can now install which ever JetBrains IDE, you want to work with. In my case, CLion ๐ง, WebStorm ๐, & PyCharm ๐.
I usually use PNPM as my package manager in most projects. ๐ I like how it approaches monorepo architectures and how it manages their dependencies. ๐งฉ โก
I'm still working on adopting the use of a version manager for python like I am with Node.js. Currently, I install the versions manually
Linux
Python is one of the tools installed by default on Fedora. Not much needs to be done here. What you can do, is install which ever version you are looking to use specifically.