Hi there 
What is the best way to save data as a beginner?
Playerpref seems to be the easiest but everyone seems to agree that it should be used for nothing except option settings.
In that case what is the best way to save data?
When saying “save data” I mean how to save the values or current state of a scene so that they will remain the same, once reloaded, rather than being reset to the basic values/state.
If someone knows a good tutorial I’d appreciate it 
I’ve found some decent looking tutorials, but none of them seem to be current (as in unity 5.5) and I’m unsure if their practice still apply.
To save anything, you need to write it to a file.
You have a couple options but basically it boils down to
-write binary data, that is optimally compressed and you can read/write faster, but is not human readable and a pain in the butt to debug
-write human readable data.
you could simply write your data as
valueA=myValue
valueB=myOtherValue and so on.
And when you load your application, check if your save file exists, and if so read it line by line, check for each value and assign it.
You can also look into System.Xml.Serialization.XmlSerializer for a user friendly way of reading and writing xml
This right here: Persistence: Saving and Loading Data - Unity Learn
If you want to write human-readable data, I strongly recommend using JSON. Unity includes a JsonUtility class to make this easy, or you can add the LitJson library to add more capabilities (especially the ability to save/load dictionaries and lists). You should be able to pretty easily adapt the tutorial linked above to write JSON data instead of binary. Just like the tutorial above, using either of these JSON libraries will write your entire class structure to the file, which is very difficult to do if you “roll your own” serialization.