Have you noticed that since the introduction of HTML5 the use of the plain old div has become less common?. There was a time when a div was used for everything, however, these days it is far more important to give your tags specific meanings to describe what you are doing with your code.
Before you would probably code your header or nav bar using:

<div id="nav"> 
Or
<div id="header">

Now there are specific semantic tags in HTML5 that you can use to make your code a lot easier to read and organise. I am not saying to stop using divs because I still use them when there is no semantic value to the line of code I am writing. I have made the transition to using the main semantic tags available to HTML5. Here they are:

<header>  - place your header code here
<nav> - for use with navigation menus
<section> - break up your page into sections such as 'about me' or 'contact'
<aside> - primarily used for sidebars
<main> - used to separate the main content of the page
<article> - Just as it describes, put this tag around your articles
<footer> - place all your footer code here

There are some other semantic tags that I use less. They include:

<details> - additional details to view or hide
<summary> - Heading for <details> element
<figcaption> - caption for the <figure> element
<figure> - used for photos and images
<mark> - for highlighted text
<time> - for time and date

As you can see, these elements are very clear to understand and follow and make perfect sense to use when you think about it. Even though it is still easy to grab a generic div, take a moment to think whether it would be better to use an HTML5 semantic tag instead.