I have created a GitHub repository learn-arduino where I will be hosting code related to tutorials I will post on this website. You are free to do with the code whatever you like. Something I must mention is: I use platfomio to build and deploy my projects. I find it much easier to work with than the usual Arduino IDE, especially when you will be using external libraries for your projects, and also if you are planning to write bigger projects where you want to split your code into more logical header and code files. I also prefer working on linux with Arduino systems, just because it has a lot less trouble with drivers. Each version of Windows has their own issues with different serial port chips on different Arduino boards, on linux it always just works without any hacking of drivers.
As I mentioned, I use platformio to compile and deploy my code. The projects are by default configured to work with the Arduino Uno. To change the device please read the platformio documentation. You basically only need to change the board setting to match the board you want to use.
In each project in my repository you can run it with the command
Eclipse IDE Setup
I prefer using the Eclipse IDE for development, mainly just because I am comfortable using it as I have been using it during my career for the last 10 years. You will have to use the Eclipse C++ version to work well with the Arduino code that you will be using. You can download the Eclipse c++ version from here.
If you would like to integrate platformio with Eclipse, you can run the following command in the project's directory
platformio init --ide eclipse --board uno
Please read the guides provided here to setup an Eclipse IDE environment for development.