look up how to do bed leveling, that is one of the biggest things that effects your print (at least the starting part of it).
After that, what types of things are you looking to print? Optimizing for miniatures is different then optimizing for RC parts, which is different then optimizing for terrain, etc.
I've spent hours and hours on YouTube looking at videos for better than a year now and am only now starting to get set up to my liking. One thing I've found with YouTube and anything 3D printer related is that you have the watch the ones related to the absolute latest slicer versions. Cura has had at least 3 updates in the last few months and added a lot of improvements. Now if TinkerCad would add a little more functionality I'd be a happy camper!
Perfect for RC parts. I design and print all of my servo trays, formers, motor mounts, ribs, building tools etc. etc. etc. If I knew more than TinkerCad there is so much more I could produce. This worn out old brain just can't wrap itself around trying to learn a real CAD program though.
Cura is works fine for an ender 3, and there are lots of tutorals on using it. What a slicer does it take your 3D model and creates the needed 2d 'slices' and related G code to print your object. it also will add/modify geometry (supports/infill/rafts/etc) based on your configuration settings.
I would use the newest version, @Merv . The newer versions should work better then prior versions. Given that it is free, there is very little reason to use an older version. (the one reasons that I can think of would be if you need to use a profile that is available for an older version, but not the newer version or if there was an idendified bug in a newer version that wasn't in the older version).
I use octoprint on a Raspberry Pi to connect my printers to the network. This allows all sorts of functionality to be added to almost any 3D printer. (including executing commands for calibrating the printer)