Turn compicated brushes to entity
If I had to give one advice, it would be to change any "nasty" brushwork, I.e., any brush not a simple cube or tetragon, into a func_illusionary. Use simple clip brush to approximate brush size and shape where necessary.
NOTE: keep your clip brushes to simple shapes, or strange errors will occur.
NOTE2: visblockers should also be simple shapes, not clipping tooled or vm'd at all.
Beware low texture scales
If I had a second, it would be keep your texture scales reasonable size. Low scales will cause your compile time to skyrocket. Imho newbs should not scale below 1.00 'till they are well-oriented with hammer.
Both the tips above mostly concern optimizing your compile times, which will save you much misery in waiting between compiles if you keep them in mind.
Visibility opminization is the #1 fundamental thing for map making, in terms of wpoly performance. It's very simple: use turns, large structures, walls and so on to limit how much the player can view of the map at any given time.
In a perfect world, only the immediate area surrounding the player, and a little bit beyond should be rendered by the engine at once, i.e., in a map portraying a house, if the player is in the foyer, only that area and part of the hallways leading to the other parts of the house should be rendered. (rooms like the back bedrooms, attic, backyard, etch, should all be blocked by world brushes and remain unrendered, until the player walks closer to these areas.
You can easily test this by enabling developer and running the map with r_speeds 1. As you walk from a hallway to a detailed room, you should be able to see the wpolys spike. If they remain the same all the time, it means you do not have proper vis blockers in place, and your entire map is being basically rendered or "shown" at once, which is not desirable.
NOTE: Some maps design are impossible to properly optimize without radically redesigning. for example a movie theatre, is a large, wide-open space with no chance to add visblockers. In a case like this, you must take others measures if you care about wpoly performance.
NOTE: Unless your map is Multiplayer, wpoly performance is largely unimportant with the speed of of modern cpu and gfx cards. STILL, good visibility optimization is good thing to always strive for, regardless.