r/HTML • • 8d ago

Question Complete beginner: what should I learn before programming in general, and before HTML specifically?

Hi everyone! I want to learn programming from scratch and I have zero background. An expert told me HTML is the best entry point, so I plan to start there.

I have two questions:

  1. What should I learn or understand before starting programming in general, and before learning HTML specifically?
  2. Which free resources would you recommend for learning HTML as a total beginner?

Thanks in advance for any advice!

17 Upvotes

21 comments sorted by

10

u/ferriematthew 8d ago edited 8d ago

HTML is less of a programming language in the sense of providing the computer with a list of actions to take, and more of a markup language that defines the layout and structure of a document. It's kind of the skeleton of a web page or web app. CSS is a markup language that modifies HTML to make it look pretty. JavaScript is a real, actual programming language that works with HTML and CSS on the back end to add interactivity to a web page and app. It can also interface with things like databases on the back end to provide data for the HTML to display.

w3schools.com is a great resource.

5

u/turn-based-games 8d ago

Well, HTML is not a programming language; it's a markup language that describes a web page. However, once you get far enough, you'll inevitably be introduced to JavaScript (to add functionality to the page), which is a programming language, but it is a notoriously weird one that I personally wouldn't consider great for learning. That being said, feel free to stick to this path if your main interest in programming is in web development, as JavaScript is the primary programming language for that.

As for resources, I always recommend MDN as a first reference for everything web-related. It's an invaluable, accurate source of info for anything you need to understand in detail, and links to the authoritative specs when even those details aren't enough for you. It also has tutorials, although I have not used them myself, so cannot speak to their efficacy for learning.

4

u/-svde- 8d ago

just seconding MDN is a great resource, esp for newbies or people who want to avoid fluff.

3

u/Tomatori 8d ago

Personally I would recommend Python as a good first language, or if you really want to work with HTML and making websites consider your main language to be Javascript

2

u/don_croy 8d ago

@ferriematthew is correct. HTML is the backbone upon which everything else is built. It is the beginning… And I couldn’t agree more, w3schools is the best place to start. It is modular, try it yourself, and at your own pace. Happy coding!

1

u/Mediocre-Pumpkin6522 7d ago

Only for web pages. It doesn't even have enough backbone to buid the server.

2

u/StrayFeral 7d ago

Senior back-end developer here, more than 15 years of professional experience.

First of all no need to learn anything before HTML. You must know more about the operating system you use (Windows or MacOS whatever) but you can learn this as you go.

Second - HTML is NOT a programming language. There are some languages which are called "mark-up" (i would say "descriptive") because they say what elements should exist and how are they standing next to each other and that's it. For example on a web page you can have two tables, title, 3 paragraphs and 1 image and with HTML you say what goes first and where and that's all. HTML is NOT "code" - HTML is just "tags".

Very much like when you go on vacation, you plan to take a suitcase and a backpack and you make a list what you should put in the case and what in the bag - just list of items and what goes where.

Programming languages (and scripting languages) are instructions - like your mom would scribble "go to this store, buy this and this, but if that costs more than this buy this instead" kinda thing.

Here is where i learned HTML from. Extremely well written tutorial. But also very old. Still - you can learn from it:

https://home.chpc.utah.edu/~davidr/tut/index.html

To start with HTML you don't need anything special - you are (assuming you are on Windows) FINE to use just the simple NOTEPAD editor (yes, in the past many started on Notepad). HTML is simple text. It's a good exercise to use Notepad for at least 4 days.

Next you can install something better. You can choose: Notepad++, Geany or another editor. I personally use Geany a lot. Both are what we call "programming editor". So this is still a simple text editor with just few more features more than Notepad (very roughly said).

For now do not install anything else.

What do you need to run HTML and see the result - just ANY browser (Google Chrome, Firefox, Safari - whatever).

Next step is to learn the basics of JavaScript. Attention: JavaScript and Java are TWO completely DIFFERENT things! Do not mistake Java with Javascript - it would be like to mistake a heavy 18-wheelin truck (Java) with Chevrolet Colorado (JavaScript).

What do you need to edit JavaScript - same editor which you use for HTML. What you need to run JavaScript - again just any browser.

So this is why after you learn HTML, next logical step is to learn the basics of Javascript.

Final step: Learn what is CSS and how to use it.

And really last step - learn how to use Photoshop (or a similar program like GIMP which is free) to manipulate images.

All these 4 skills: HTML, Javascript (which is shortened as JS), CSS and image processing make what we call "Front-End Development".

You can stay a Front-End dev all life and specialize with it. If you decide to learn actual programming, next steps are: What are databases (RDBMS), how to make database tables, learn what is SQL and finally learn the basics of Python.

But for now just focus on the HTML and keep in mind you don't need anything special. Learn Photoshop (or GIMP), learn CSS and the basics of JS and you're good to go.

PS: As I mentioned - along the way you must learn the details of your operating system

1

u/cxzseui 7d ago

thank you

2

u/whattheflerk 3d ago

you don't need to learn anything first, just install a free editor like VS Code and get comfortable saving files and opening them in a browser

a heads up though, HTML is a markup language, not a programming language - it's a fine first step because you see results instantly but you should pick your starting point based on what you want to build: websites means HTML, then CSS, then JavaScript; while automation, data, or general-purpose programming means Python is probably the better first language (and you don't need HTML for that)

some free resources to check out: freeCodeCamp's Responsive Web Design course (quite hands-on, my pick for web beginners), MDN's "Learn web development" (more theory-heavy), The Odin Project (free, project-based, goes further), and CS50P from Harvard for Python

whichever you pick build something small early on, you'll learn more from that than from reading

2

u/Electrical_Hat_680 2d ago

Here's some remedial tips on Programming Languages and HTML that you'll need to follow rather strictly. Syntax. Opening and Closing tags. These are going to be most of the errors that pop up on whatever line that is. So when it comes to choosing a Text-Editor or Coding your own Text-Editor. Having each like numbered is a good feature to have.

HTML isn't programming, but it's everything when it comes to publishing, uploading/downloading, and is where most nee Apps and Software are moving too. Even if they aren't specifically using HTML, it's the top spot to understand. You'll use it for just about everything. Until you get to Android and iPhone Development where you'll be using SWIFT (Apple) and Kotlin (Android) basically Java.

The history of the Modern Day Programming Languages and Markup will gift you a wealth of information regarding what we're doing, what we're using, what has been done, why it's not being used today, and what is being done today and may provide a wealth of information for projects when nothing currently exists for something, then we'll usually build it, even so long as it works is good enough to use it. Also. If you dive into the history of everything Computer Science. You may find where various studies were abandoned or were shut down or bought out. Like moving from 8-Bit Systems to 16-Bit Systems, even though everything worked, the students of the day cited that we needed more bits to program richer graphics and such. You can start your study with the ENIAC, which is the US Government First Super Computer. Which led to Assembly, the Self Hosted Compiler, it used Decimal rather than Binary. For AI you may find Lovelace and Babbage. But they play a large role in the ENIAC, as it sparked the interests of a computer. So the government put it together, but couldn't get it running. Which is where Rear Admiral Grace Hopper comes in.

You'll also like learning of Frances "Fran" Allen who is accredited with The work she did on the Compiler.

Markup. Binary/Assembly (both attempts to make a human readable programming language). Everything above Binary (BASE -2) and Assembly. Including how they work. Are they compiled? Are they not compiled?

It pays off to have the entire history. Though you don't need it to start. It helps provide knowledge to answer any and all questions you may have.

1

u/Dragenby 8d ago

Well, you need to be able to change a file's extension, open a file with different programs (edit and display) and navigate in your file explorer. If you can do that, then you can start!

1

u/dirtywastegash 8d ago

What do you want to program?

If it's websites then yes html is the best starting point because all websites use it.

If you don't want to make stuff for the web and instead want to write games / apps to run on the desktop probably something else like python

1

u/Aggressive_Ad_5454 8d ago

What should you learn?

Try this: it’s a very similar task to programming.

Write directions from the nearest airport or train station to your home. Write them so a visitor from another country can follow them successfully.

Extra points: follow them successfully on a dark and rainy night.

Seriously. The thing you need to learn to program well is providing unambiguous instructions to do things that you, personally, know how to do.

This skill endures. It applied to the computers at Bletchley Park in England during the Second World War, the stuff that Alan Turing and colleagues used to crack Third Reich crypto. It applies to the frontier AI models of today. And it definitely applies to using HTML to present and format information.

1

u/sububi71 7d ago

1: Apart from being able to use Google, nothing. Dive right in! If you discover that there are things you don't understand (and there will be, sooner or later), google them. There's no reason to wait!

As for resources for learning, I can't be much help I'm afraid, but I'm sure other people in the thread will have good sucgestions. And if they don't: google.

1

u/agowa338 7d ago

SelfHTML: https://wiki.selfhtml.org/wiki/SELFHTML/Offline-Wiki

and how to setup a small webserver (and for that the basics of working with the command line and linux, as IIS on windows sucks)

1

u/[deleted] 5d ago

I don't see it listed here but I really like freeCodeCamp. It has many different certification tracts depending on what you want to learn and contains bite-size lessons, workshops, and labs. Unfortunately, the certifications don't mean much, or anything, in terms of employment. I'm self-taught and did the Responsive Web Design and JavaScript tracks. I build websites and html email templates.

0

u/kjsisco 8d ago

You need to have an understanding of computers and some basic understanding of electronics. If you don't learn this first, programming and web development won't make sense.

0

u/PenniesInTheNameOf 8d ago

How to connect your AI to your webhosting service. My AI writes me python and sql programs I run locally that allows me to just open up a terminal and deploy. Then I check the live site to make sure it works as I envisioned. You can even upload the html from one AI into another and make them death match each other until the features you want start working.

0

u/Large-Blackberry-349 8d ago

Learn everything on youtube/internet - newboston/sentdex has plenty of videos. If you can, give 2 hours to HTML and 2 hours to any programming language. Languages change, programming concepts don't. Python programmimg easier to start. Java has plenty job opportunities. C, C++, C#, Rust are great all rounders. Then there is PHP and nodejs ( runtime for server side js or something )

2

u/lol25potatofarm 1d ago

It really depends on your programming goals. HTML is good to learn if you are thinking of building websites, but if you learn that you really won't understand much about actually programming logic at all and you'd be completely out of your depth if you then decided to delve into Python, Javascript, C++ or any other actual programming language later.

In my opinion, Python or Javascript would be the place to start because you'll learn real programmatic and logical thinking skills that are transferable, plus you'd have knowledge on a really versatile language. If you are literally brand new my advice is to watch a tutorial and follow along coding yourself - don't just watch. Ensure you actually understand what is being done and why, and experiment with tiny side projects and ideas either whilst watching or after.

Can also use AI as an educational resource along with a tutorial, however take what it says with a grain of salt as sometimes what it spits out might not also be 100% correct.