What's the best way to avoid ngons and tris in a model?
What has worked best for me so far is to (A) start with quad-based meshes, such as cubes, UV spheres, and cylinders and then (B) add new geometry by using loop cuts (Ctrl+R) and extruding faces (E) in edit mode.

You can then move vertices manually in edit mode or use sculpt mode (with Dyntopo off) to shape your model without adding vertices or creating ngons.