This was a concept that I learned as a teen by reading (and practicing) The Art and Practice of Astral Projection by Ophiel
In the book, they have you meditate at several different spots, and combine that 'experience' with a particular color and smell for each location
You are then to practice remembering those places as you fall asleep, resulting in dreams where you are first, able to visit those spots, then later to be able to travel other places in your dreams
This has also been called lucid dreaming, and it also draws on the core concepts of neural linguistic programming/hypnosis as promoted by Milton H Erickson
This has been a boon to me throughout my life, as I moved from land surveying, to Computer Aided Design, to Geographic Information Systems, and finally to database programming by leveraging prior experiences to train myself into different visualization and modeling techniques to both understand different systems and design computer based solutions on them
It is hard to tell my boss that "my brain is full and I need to dream about this before I can program it", but that is part of how I work now