"We are software engineers and as such we code, yeah we like to write code"

In a few words the vast majority of our trainings are text base, because are mainly focus on increasing your abilities as a embedded software engineer, get use to the terminal and command line program execution. Don't worry you soon will find this is a much better and faster way to do things related to code.

You have two option to work with Linux and Windows but in both you will need a terminal. Regarding linux and its many flavor, Arch version are the one we will use, mostly because its powerful package manager and easy way to install all the required software. Choose any Arch distro you want but here are some recommendations:

Manjaro
This page provides an overview of Manjaro Linux, an open source operating system designed for ease of use. Learn about its features, installation, and support options. Get the most out of Manjaro Linux with the latest news, downloads, and tips from our helpful community.

The main tools

The best compiler, a nice code editor, a fancy terminal and a powerful shell plus some other nice to have tools will make us unstoppable.

Linux Users

After a fresh linux installation and before anything else, install the linux base devel package

pacman is the program we use in arch linux to install all our software, or most of them
$ sudo pacman -Syu base-devel

The later one shall install most of the build tools we need, including the compiler and make, but not gdb

$ sudo pacman -S gdb

the most popular source code manager is also a must

 $ sudo pacman -S git

tree, to display beautiful directory list in cli

$ sudo pacman -S tree

Prior to continue it is needed to install an arch linux utility that will allow us to install extra packages, it is called paru

$ git clone https://aur.archlinux.org/paru.git
$ cd paru
$ makepkg -si
$ cd ..
$ rm -r paru

And last but not least the code editor, we gonna pick VS Code because it is really fancy and has a tons of plugins you can use, there is a open source version on the arch offcial repo, but we gonna choose the microsoft license version because it is easy to install the plugins and themes. Hope you don’t mind to be spy by Microsoft.

$ paru -S visual-studio-code-bin

Python already comes with any linux distribution but not its packager manager, called pip ( well sometimes it does )

$ sudo pacman -S python-pip

Windows users

💡
hey, maybe you would like to try WSL instead of going all in with Windows AN0013 WSL for embedded development

Windows does not have a powerful terminal workflow like linux, but there is a good and nice project with the goal to emulate the easy and fancy way Linux has to install programs, and that is:

Chocolatey - The package manager for Windows
Chocolatey is software management automation for Windows that wraps installers, executables, zips, and scripts into compiled packages. Chocolatey integrates w/SCCM, Puppet, Chef, etc. Chocolatey is trusted by businesses to manage software deployments.

Open powershell in Admin mode and type

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

Just in case and from time to time you should upgrade choco

$ choco upgrade chocolatey

Ok install mingw to run gcc and gdb

$ choco install mingw

test installation

$ gcc -v
Using built-in specs.
COLLECT_GCC=C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin\gcc.exe
COLLECT_LTO_WRAPPER=C:/ProgramData/chocolatey/lib/mingw/tools/install/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/12.2.0/lto-wrapper.exe
...

do not forget make

$ choco install make

Of course you can install Git

$ choco install git

and tree, to display beautiful directory list in cli

$ choco install tree

VSCode

$ choco install vscode
ALWAYS run PowerShell with admin permission to install anything with choco

By the way, the default VSCode terminal shell is PowerShell, but since we already installed git, ( that comes with its own shell base in BASH ), lets make a switch like is shown in this nice video from Neutro Dev.

Now you have a linux like terminal, where you can use bash scripting with all its powers making almost transparent "The way we work " without worry about the operative system in use.

Soon or later you gonna need python and its good friend pip ( that already comes with python, or should )

$ choco install python

Terminal and CLI worflow

I can write tons of lines on how to use the Terminal but someone else already did it really well and also wrote a book, https://linuxcommand.org/tlcl.php. You should and must read it, just remember if you are in Windows things will be a little more limited. the most important is to learn about navigation with the commands pwd, cd, ls, mkdir, rm,