Using seed to send bitcoin from a wallet's specific private key I'm new to bitcoin and I've recently been reading on the concept of wallet. If I understand correctly, a wallet is a collection of one or more pairs address + private key (an address is where BTC can be sent to, and a private key is used to spend BTC from its associated address). I'm not sure if there is something between the private key and the address known as public key.

If I understand correctly, the difference between nondeterministic wallets and deterministic wallets is that with non-HD wallets each pair "address + private key" is generated separately, whereas with HD wallets all pairs "address + private key" are generated with a single list of words known as seed. 

I'm interested in HD wallets but I know almost nothing about them and all the terminology I've found on the internet is very confusing to me. I've found terms like BIP39 Mnemonic, BIP39 Passphrase, BIP39 Seed, BIP32 Root Key, Master Private Key, Derivation Path, BIP44, m/44'/0'/0'/0/0, and so on (see iancoleman.io/bip39, for example). I'd like to be able to organize this into something that makes sense and I can understand.

Once I've created an HD wallet and I have a list of pairs "address + private key", how can I access it and spend funds from a specific private key from the list? Which software shoud I use and what is the easiest way to do it without compromising security?
You can use any BIP39 compatible software to enter a mnemonic (12-24 words) and turn it into a seed. Seed is just a number between 1 and 2^256. You can then use this seed to create a Master Private Key. This key then serves as the root of a chain used to create other private keys based on a derivation path.

The whole process is deterministic so same mnemonic and same path will always lead to the same key. Once you have a normal private key you can import it to any bitcoin client and access the funds as usual.