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. 💯
🎵 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.