What Coding, Developer Tools & Technical Basics covers

This section covers programming languages and developer tools: HTML, CSS, JavaScript, Python, SQL, MySQL, GitHub and the technical vocabulary that surrounds building software.

Most people who land here are not developers. They are students, people considering a career change, small business owners talking to a contractor, or someone who has met a term at work and wants to know what it refers to. The guides are written for that reader — scope and purpose rather than syntax, so you can follow a conversation or decide whether something is worth learning.

The clearest thing to establish early is what the core web technologies each do, because they are constantly mentioned together and do quite different jobs. HTML is structure — the headings, paragraphs and links that make up a page. CSS is presentation — colour, spacing, layout, typography. JavaScript is behaviour — the things that respond when you interact. A page can exist with HTML alone. Add CSS and it looks designed. Add JavaScript and it does things.

GitHub confuses people for a different reason: it is not a language at all. It is a place to store code and track its history, and its real purpose is letting several people work on the same codebase without overwriting each other.

Browse individual used-for guides

A

C

D

F

G

H

I

J

L

M

P

R

T

V

W

Most searched questions in this topic

How the guides in this section differ

Language, database or service. These get discussed as if interchangeable. A language is what you write. A database stores data. A service such as GitHub hosts and tracks the result.

Front-end or back-end. Front-end is what runs in the browser: HTML, CSS, JavaScript. Back-end is what runs on the server, where languages such as Python and databases such as MySQL live.

Language or the thing built with it. SQL is a query language; MySQL is a database system you use it with. Java and JavaScript are unrelated despite the names, which is a genuinely common confusion.

TermKind of thingWhat it is for
HTMLMarkup languageStructure and content of a page
CSSStyle languageHow the page looks
JavaScriptProgramming languageHow the page behaves
PythonProgramming languageAutomation, data, back-end, machine learning
SQLQuery languageAsking a database for data
MySQLDatabase systemStoring structured data
GitHubHosted serviceStoring code and tracking its history

If you are hiring or briefing a developer rather than writing code yourself, a few questions are worth asking regardless of the technology. Where will the code live, and will you have access to that repository? Who owns the code when the work is done? Where is the data stored, and does that arrangement meet your obligations under POPIA if it includes personal information?

None of these require technical knowledge to ask, and all of them are considerably easier to settle at the start than after a relationship ends. The most common avoidable problem in small-business software work is not bad code; it is a business that cannot get at its own repository, hosting account or domain when the developer moves on.

Related topics and alternatives

Safety, accuracy and next-step checks

These guides explain what technologies are for. They are not tutorials and not a substitute for official documentation.

Points worth carrying:

Frequently asked questions

What is the difference between HTML, CSS and JavaScript? HTML is structure, CSS is appearance, JavaScript is behaviour. Together they make up almost every web page.

Is Java the same as JavaScript? No. They are unrelated languages with a confusingly similar name, for historical marketing reasons.

What is GitHub for? Storing code, tracking every change, and letting multiple people work on the same project without overwriting each other’s work.

Which language should I learn first? Python is commonly recommended for general programming and data work; HTML and CSS are the usual starting point for web pages. The better question is what you want to build.

What is the difference between SQL and MySQL? SQL is the language for querying databases. MySQL is a database system you query using it.