How Long it Takes to Learn HTML
Tags: html, webdev, beginners, codenewbie
Published: 2021-09-21 13:48:42

It will take 2-3 weeks to learn the basics of HTML and 1-2 months of practice to be good at it. Depending on how many hours a day you spend learning, you will learn HTML sooner or later. I recommend at least one hour a day for complete beginners.

HTML is quite simple to learn as there are few things to remember about the language, and that is knowing:

- What HTML does
- What opening and closing tags are
- Common element tags used for building a website, and
- Where to search for more information

## What HTML does

The first important thing to remember is to understand what exactly HTML does. In essence, HTML creates the contents of the web page. HTML can make texts, images, videos, links, navigation, and so on. The article you are reading right now is done in HTML too.

That's pretty much of it. All HTML does is defines the structures and contents of a website. To make your website look more beautiful and professional, you will have to use another tool called CSS. You will learn more about CSS later, but let's focus on HTML for now.

## Opening and closing tags

Most HTML elements have two tags, and they are opening tags and closing tags. When you want to create something in HTML, you will start with opening tag `<>` and end it with a closing tag `</>`

Examples of opening tags and closing tags:

```html
<h1></h1>

<p></p>

<button></button>
```

Some elements can have only one tag and do not require opening and closing tags.

Examples of elements with no opening and closing tags:

```html
<img src="" alt="" />

<input type="" />

<link rel="" href="">

<br />
```

## Main element tags

HTML has so many elements, but luckily, you will need a few of them to use every day. Some common elements include:

- **h1** - this element will create a heading text.
- **p** - this element will create a paragraph.
- **button** - this element will create a button.
- **a** - this element will create a hyperlink.
- **input** - this element will create an input field where a user can enter data.
- **li** - this element will create a bullet point for making a list.
- **header** - this element will create a header of a web page.
- **nav** - this element will create a navigation.
- **footer** - this element will create a footer of the web page.
- **div** - this element will divide the web page into sections.
- **img** - this element will create an image for a web page.

You don't need to memorize them all since you can always look up the reference on the internet. Besides, when you use them regularly, you will eventually remember them on your own.

## Where to search for more information

The last important point is that there are still more lot of things you don't know yet. When you want to learn how to build certain things for a website or get more information about HTML, you can search for them with the help of Google.

The first place to start looking for information is MDN Web Docs. It is an official documentation website that has everything you need to know about HTML and web development in general.

## Conclusion

In a nutshell, you will probably have to spend at least one hour a day learning HTML. Plus, you have to remember what HTML does, what opening and closing tags are, common element tags used, and where to search for more information.

As long as you keep these points in mind, you'll learn HTML in no time.

Get my [free e-book](https://learn.coderslang.com/free-ebooks/) to prepare for the technical interview or start to [Learn Full-Stack JavaScript](https://js.coderslang.com/)

P.S. I'm glad you made it here :). Make sure to smash the like buttons and read my other "How Long it Takes..." articles:
- [How Long it Takes to Learn CSS](https://learn.coderslang.com/0123-how-long-does-it-take-to-learn-css/)
- [How Long it Takes to Learn to Code](https://learn.coderslang.com/0062-how-long-does-it-take-to-learn-to-code/)
- [How Long it Takes to Learn JavaScript](https://learn.coderslang.com/0091-how-long-it-takes-to-learn-javascript/)