Why 3d print has an ugly surface?
This appears to be the result of your hot end (nozzle) temperature being slightly too high. 

I'd recommend lowering your nozzle temperature by a few degrees and retrying the print. If the quality improves you're good. If it doesn't improve significantly try lowering a few degrees more. 

If you lower the nozzle temperature to the point that you start having other adverse effects, try going back to the lowest temperature that works and check your infill and shell settings. The top shell of your part may be too thin given the span (top surface, maximum travel length). i.e. the strands being printed on the top of your part are sagging between your infil hex's, by thickening this part in the slicer settings the next layer on the roof won't sag as much as the previous.

By increasing your number of shells or shell thickness (or roof thickness, i'm not sure on the exact terminology) you could effectively hide the effect you're seeing by thickening this section of your part. 

Best guess though is nozzle is a bit too hot.