If you use both Photoshop and illustrator, you get something like this quite easily (no plugins, no programming):
The result contains equally sized black vector circles which do not overlap, like the zoomed in snippet in the left shows. They are unfortunately in straight rows and columns. In your example the circles are placed more irregularly. The apparent irregularity gives optimization possibilities which makes the image look sharper for a given dot size. In addition watcher's eyes are not teased to follow dot rows instead of image forms.
For Illustrator there's available Astute Graphics plugin named Stipplism, which makes the vector version from a photo just as shown in your example. I do not have it. It belongs to a commercial filter packakge, but Astute probably gives a trial if one asks.
The procedure to make the "circles in straight lines" version without plugins:
Adjust your photo to Grayscale, use curves so that the brightness scale covers the whole range from black to white.
Change the image color mode to Bitmap > Diffusion Dither (must be Grayscale at first). Select so low pixels per inch -density that the image becomes only 100...150 pixels wide. The result has already the effect, but one dot is one square pixel:
Change the image back to Grayscale or RGB. Paste it to Illustrator. Check in Photoshop the pixel dimensions (Width and Height as pixels) of the image. You must know them exactly.
In Illustrator apply to the pasted photo Object > Create Object Mosaic. Let it be grayscale. Select the same number of rows and columns as which are the pixel dimensions of the photo.
If WxH is for example 100 x 150 the result will have 15000 squares. A low spec or already heavily loaded machine can crash.
Ungroup and ungroup again until all squares are separate free objects. Select one white square. Check its width in the info line. You need that number soon.
Select and delete all white squares by applying Select > Same > Same fill color, press DEL. The machine loading is reduced substantially.
Select all remaining (black) squares. Apply to them effect Stylize > Round Corners. Let the rounding radius be a half of the square side length. The dots become circles. Expanding the the effect (Object > Expand Appearance) will reduce the machine loading.
The same effect as you want or a variation with colored or varying size circles has been asked numerous times in GDSE. Stipplism is presented as a vector solution and Diffusion Dither (or it's equivalent in GIMP or Krita,) is presented as a bitmap Solution. Other suggestions are rare. Make a web search for "stipple generator" and "halftoning software" to get other options. Typing into GDSE search word "Stipplism" shows also a few alternatives.