To add software to a linux machine you can download source files of code, compile them and install the software.
Compiling software can be complex due to the fact that often, software has "dependencies" such as Library software that is called by the software to provide support to a package. If the dependencies are missing, the software will not compile.

Another way to add software is to get binary files (exe files on MS Windows are binaries). These files have been compiled by someone else for users to install. Binary files still have dependencies. (In Windows these dependencies are often missing DLL (Dynamic Linked Library) files.

To use software on a pi, you must have the software compiled for the particular processor that a pi has. This is an Arm processor.
A lot of binary software downloaded from the Internet is for Intel processors, not Arm ones. Software is often "Architecture dependent". The Architecture being the various components making up the computer (including the processor) and the way they are connected together.

Luckily there is an alternative to compiling your own software.

Software on most Linux platforms is maintained via a "repository". This is a suite of programs that have been compiled by people who undertake to maintain a package for the community of people who look after the particular version of Linux. Often these are volunteers. Package maintainers ensure that the dependencies are taken care of as well.

To browse, install or uninstall the software, you use a "Package Manager". The default RPi comes with a package manager called "apt". Apt stands for Advanced Packaging Tool and is the package manager software for Debian Linux.

Other Package Managers for other versions of Linux are yum (Yellowdog Update Manager) and rpm (Redhat Package Manager). If you put the Fedora build of Linux on your Raspberry Pi you will have to use the yum package manager which works in a similar way to apt.

To use apt you need to be able to search for software, install software and remove software.