Previously I've gone through the steps I take to get a solid development machine setup. From the base operating system load, to the browser and basic IDEs I install. Now I've got more videos and the respective notes and details about what two language stacks I setup next; Python and Go.
In regards to the Python stack, this one can often be somewhat confusing. Depending on the operating system I setup the stack a little differently.
For MacOS I've written two posts about this previously, one titled "Getting Started with Python Right!" and one "Unbreaking Python Through Virtual Environments". Those two posts cover most of the nuance to getting a base Python stack installed on MacOS and then using virtual environments to manage project specific versions per repository.
For the Linux OS, usually a debian variant, the systems tend to have Python 3 installed by default. I then take the next step of installing pip3 and work from there. The IDE, PyCharm from Jetbrains uses virtualenv to setup virtual environments per repository from that point forward.
For more details about the specific walk through, I've created this video to walk through setting up Python 3 on Ubuntu and verifying, and also by use of PyCharm to setup a small verification app it shows how the virtualenv sets up a specific environment for the new verification project.
The reasons for installing Python first are numerous. One of the first reasons is that Python is required for installing and using numerous Python related CLIs, such as AWS's CLI, among many others. It pays off to just have a good install at the system level (i.e. not particular just in a virutal environment, but executable at the terminal on system) to ensure it is available for any and all CLIs that would need it. If you're into data science work, that's a huge second reason, because Python is used in about every aspect of data science work, machine learning, and related endeavors.
The reason I go for Go as my second language stack install is driven by two primary reasons:
- I like writing Go and use it myself for a number of reasons. Such as, it is ridiculously quick and minimal work to build a CLI for use in systems that requires only a single binary executable for use.
- I use Go for a lot of other work-related efforts, around Kubernetes, Docker, Terraform, and others.
With that, here's the quick install and initial project for verification setup.
If you'd like to take a few other quick tours of Go, here are some posts, with videos, putting together a Go module project and writing an initial test in under 3 minutes and setting up an HTTP server in about 15 minutes.