Create a plane, subdivide to taste with the subdivide command in edit mode, and then add subdivision surface modifier.
Work in ortho top view only for best results.
Start deleting faces, add loops with ctrl R to make edges more square, select the dges of a hole with alt click then use the transform to sphere command with median pivot point to make selected holes circular. You can also use the Smoothe vertex command to circularize. Select edge loops with the alt click method and slide them with the G, G shortcut.
Some examples progressing from left to right -
subdivided plane, no subdiv modifier, deleted faces.
Subdiv modifier (no verts deleted yet),
Same mesh, Edge loops added with ctrl R to make corners square,
Same mesh, now faces deleted, few more loops added, edges slid, holes rounded, etc.
In the picture you can see how to have square corners with the subsurf mod you must support the edge with parallel edges, whether in holes or perimeter.