Normalmente todos los sistemas operativos tienen un sistema de gestión de archivos así no se vean como sucede por ejemplo en android
no importa ni la U de users, ni la D de documents, pero en el mundo de la programación TODO debe tenerse en cuneta, íncluso las mayúsculas y las minúsculas importan. Por lo que es una buena práctica mantener el inicio de los nombres de carpetas en minúscula
La carpeta principal o raíz es el primer slash “ / ”
El dominio es lo primero y luego tiene un sistema de archivos de la misma forma con carpetas organizadas también por slash

En los sistemas de carpeta existen rutas absolutas y relativas.
La ruta absoluta es utilizar toda la ruta completa. Sin embargo, la ruta relativa funciona diferente.
Es por ejemplo la carpeta js. Estando presente en la carpeta /programarpuedo llegar a ella usando js/codigo.js
No necesito utilizar toda la ruta porque la carpeta está al mismo nivel de la carpeta en la que yo estoy

Voy a separar mi código para tener en un archivo diferente el contenido de JavaScript y el contenido HTML
Sin embargo, tengo que tener en cuenta la ubicación del archivo y luego llamarlo desde la etiqueta <script>, esto se hace con el atributo src
<script src = "js/codigo.js"></script>
Los proyectos en programación no suelen ser programados en una sola tecnología, es decir, no solamente veras algo hecho 100% en HTML o 100% hecho en JavaScript, rara vez, por lo general se usa una familia de tecnologías en conjunto para crear un producto, en programación seria algo algo como:
HTML: Con lo que se hace la estructura
CSS: Con lo que le damos estilo y/o moldeamos la apariencia de la anterior estructura