Geoscientists often have little information about earth’s subsurface heterogeneities prior to mapping them using seismic or other geophysical data. Marchenko methods are a set of novel, data-driven techniques that help us to project surface seismic data to points in the subsurface, to form seismograms as though they had been created at each point. In so doing, Marchenko methods account for many of the complex, multiply reflected seismic wave interactions that take place in the real earth’s subsurface. The resulting seismograms are the information required to create subsurface images that are more accurate than standard methods. Our aim is to introduce these concepts with the minimum amount of mathematics required to understand how the Marchenko method can iterate to a solution and to provide a well-commented, easily editable MATLAB code package for demonstration and training purposes. Green’s function estimation using the Marchenko method is first illustrated for a constant velocity, variable density, 1D medium, with results that indicate a near-perfect match when compared with true, synthetically modeled solutions. Similar quality results are shown for variable velocity, 2D Green’s function estimation. Finally, we determine how these estimates could be used to create images of the subsurface, which, when compared with standard methods, contain reduced contamination due to multiple-related artifacts. Our code package includes the 2D data set required to reconstruct the relevant figures that we present, and it allows for experimentation with the implementation of the Marchenko method and the application of Marchenko imaging.