Virtual Environment for learning
This is a very broad question as the list you gave of what you want to practice would need multiple databases to learn dataguard and RAC.  Why do't you try Oracle's free trial of the cloud based databases?  You can make mistakes there and it will be easy to learn on the newest versions and when you have some more knowledge you can deploy Oracle Virtual Box at home for a test that will last longer.

Running an Oracle database on Virtual Box on a home PC could easily use four to six GB of memory if you are doing any thing intensive.  Storage is cheap these days so allocating at least 100Gb for the database files gets you started.

A typical enterprise disk setup is to mount separate drives


/u01 for the oracle product ~100 Gb
/u02 for datafiles ~100 Gb (but if you import data you could need up to 500 Gb)
/u03 for indexes ~100 Gb
/u04 for archive logs ~100 Gb and so on


This is probably overkill for a learning situation but, at the least, separate the oracle install from the data for easier management. Suggested disk allocations get you started but if you actually use it to store data you should ensure that you can extend the virtual disks.  In other words allocate 1 Tb of storage to the virtual machine and then you can extend the storage as needed.