Creating your own CSS and JS files to customize a ready template is very useful, because guarantee a uncoupling between template's original code, and your customizations. But, in front of a so complex files and folders structere, many begginers atops in the following question: how do I add declarations to the <head> tag, in a "correct" way?
I see a lot of people having problems with files and folders permissions, and I pretend to describe here a step by step that I consider applicable in almost all cases.
You must have access to terminal, for this.
A virtual machine is a good option to run Joomla locally, without almost any technical knowledge about environment configuration (install apache, mysql, wamp and so). This method applies to Linux and Windows users, and can save many work hours mainly for those that knows how to handle with content, but knows nothing about servers.
CSS Selectors are a porwerful tool to be precise on site style. Usually, we define classes to apply atyle on elements, however not in all cases we can manipulate them, specially when working on CSS injection over a page which source code we can't (or do not pretend) to modify.