If we simplify the "cloud computing" concept to its most basic form, we could say that:
Cloud computing is nothing more than to be able to run applications and access data from a computer (server) in one place from another place through the internet (with a web browser or an application developed to be used as the "front end", though impractical, possible).
So my question is, what do I need to do to be able to run programs and access data in my server machine at home from anywhere on the world? (just one user so I think no virtualization would be required)
I don't want to become a cloud computing expert by a question in StackExchange, just fully understand the principles behind cloud computing and possibly configure my own cloud at home.
Please do not recommend things like AWS, Azure, Dropbox, google drive, etc. I'm not trying to use cloud file storage or cloud services from 3rd parties. I'm trying to understand how cloud computing works not looking for recommendations on 3rd party solutions.
I have some understanding of front-end and back-end development so I could write my own very basic and reduced versions of dropbox and/or whatever is needed to access files and run applications, I just don't know what else would be needed to create a cloud at home that fulfills the definition of "cloud computing" as complete as possible. For this exercise, the applications I want to run are C and C++ applications on my home server.