Basically what's been said above is correct. Creating pages individually is not wrong per se, simply it is more work and when you're a professional, the one think that you lack of is ... time!
Creating a template is worth because it saves time. So every single area repeated in other pages will go in its own file (like the main menu). If you ever have to modify it for whatever reasons (let's say you add a new link to the main menu), by modifying one file, the others will be updated too.
One of the technologies used to include that file with the piece of common code to all pages is, as Stevie very well appointed, Server Side Includes. They have the advantage that they don't rely on other technologies, like server programming languages and it is very straight forward to use.
As an example, simply write
whenever you would write the html code that will create the header area. The exact code will be included there.
<!--#include virtual="header.html" -->
PS: if you use this technique, remember that the separated file do not need a doctype or a body. You simply separated part of the content to use it on various pages, and it will go inside a html document that already has doctype and body element and everything
PS2: include virtual means that the route for the file is referenced to the document root. You could use include file instead, which means that the route to the file is relative to the folder where the document is contained.