You can probably use a Circle SOP to make a hexagon, then you can use a Copy SOP to make a row of circles by using the transform offset. There should be examples in the operator snippets if you go to the help menu at the top, and go to Operator Snippets, then go to the SOPs and then find Copy. You can use Copy to make a row, then copy the whole row downwards and then use Transform SOPs to offset them. You can then use a Merge SOP to merge all the rows together into one geometry, then use a Texture SOP to change how textures get applied and you can use something like a Noise TOP to color them all.
That’s definitely not the “best” way to do it, as it would be a it slow to compute many changes, but if you’re just getting started it would be a good intro the learning SOPs to at least mock up and play around with this kind of thing.