How can I tell how large my program is?
Short answer: Yes.

At the end of a successful compilation (not upload), at least in ArduinoIDE 1.6.9, the final 2 messages look like:


  Sketch uses 23,442 bytes (72%) of program storage space. Maximum is
  32,256 bytes. Global variables use 1,093 bytes (53%) of dynamic
  memory, leaving 955 bytes for local variables. Maximum is 2,048 bytes.


In this case, 8814 bytes of flash remain unused, and 955 bytes remain for the use of the stack and the heap, combined.