Do you want to build custom features or apps on Salesforce? If so, a great resource a helpful resource is Salesforce Trailhead (https://trailhead.salesforce.com/en/home).
In high school, I volunteered in the marching band non-profit Tri-City Band Corps. Because I was a technology officer, I had to know Salesforce. A major project was fixing the unsubscribe button of our quarter newsletter. There was so little documentation on how to fix it, that I ended up redesigning the unsubscribe system. I did it using Salesforce Apex and Visualforce, and to learn these two, I used Salesforce Trailhead.
What’s Apex and Visualforce?
They are proprietary programming languages used by the Salesforce.com. With Apex, think Java. It is powerful and can be used to change and create Salesforce records. With Visualforce, think HTML. It displays Salesforce webpages.
How did my unsubscribe system work?
If you are curious, here is the short of it. When a user decides to unsubscribe from the newsletter, he click on the unsubscribe link, which contains a custom tidbit of information about him/her. The link redirects to an unsubscribe page and passes on the tidbit of information to the page. On the surface, the unsubscribe page says to the user, You have unsubscribed”. However, on a deeper level, it takes the tidbit of information, locates the user’s record, and unsubscribes him/her.