¿Hacer una página web?... Especifica: ¿Qué quieres hacer?
Si a tí te interesa una página básica, y sin más adornos, o quieres practicar con el Html (deberías estudiar eso al menos), el bloc de notas puede servirte. Pero como prueba, poco más.
Si en tu página web necesitas consultar bases de datos, comprobar claves, tener sesiones de usuario (saber qué páginas ha visitado, guardar lo que ha echo en esas páginas [carrito de compra, por ejemplo]) o generar las páginas sobre la marcha, según el día, sus preferencias, etc, te conviene algún lenguaje del lado del servidor. Php es lo más conocido.
Para hacer menús que aparezcan y se desvanezcan sobre el texto, ciertas animaciones, que el cursor deje un rastro de estrellitas o chorradas por el estilo, comprobación de formularios antes de ser enviados... Lenguaje del lado del cliente. El más conocido: Java script.
Casos especiales: Flash (que te permite hacer casi de todo) y Java (con un plugin te permite también muchas opciones). El primero está un poco más orientado a gráficos (¿cuantos juegos hay en flash?) y el segundo en texto (chats, juegos de tablero con pocos gráficos, etc...) Pero ambos son de propósito general.
También puedes estudiar Css, que son unos archivos para dar formato al texto. Adjuntas el css a tu archivo html y con una sola etiqueta, le das color, tamaño, formas, le cambias el tipo del cursor... Muy útil junto a Javascript y php.
Luego, si te gusta meterte en problemas, intenta Html5. Con eso no necesitas ni javascript, ni flash, ni css ni nada. Es un lenguaje de programación completo, incluso con gráficos 3D basados en OpenGl (competencia de DirectX, y multiplataforma). Sin embargo, hay poco navegadores que lo soporten. Por ahora, creo que el más avanzado es Chrome, pero el html5 sigue en desarrollo.
¿Más cosas? MySql para manejo de bases de datos, Ajax o Xml para tareas específicas (aunque con todo lo anterior tienes más que de sobra).
La elección de un hosting libre o de pago dependerá de tus necesidades. Para algo profesional, necesitaras contratar una página, para pruebas, y pequeños proyectos personales, cualquier sitio te valdrá (aunque éstos tienen limitados la cantidad de datos que se pueden descargar, por lo que si tu pagina pesa demasiado o contiene archivos para descarga, a medio mes te cortarán la página).
Programas necesarios.
Para html hay miles de opciones. Personalmente, prefiero Dreamweaver, pero a gusto del consumidor :) Éste es de la misma compañía que Flash, por lo que la compatibilidad está asegurada. También tiene bien soporte para javascript y php.
Si quieres php puro, y no quieres el Dreamw. puedes intentar con Programmer's notepad, que facilita la escritura en mas de una docena de lenguajes (Css, C, java, php...) y también te los compila, si tienes el compilador aparte. Muy útil.
Para Java, el Net beans es de lo mejor que hay. Desde programación de móviles hasta aplicaciones de empresa multiclientes, y por supuesto, Web. Compila y depura.
Para Css no conozco nada específico (quitando el Programmers). Y para Flash, el Macromedia Flash es el mejor (es el oficial :P)
Con eso creo que tendrás para crear cualquier cosa... Si quieres más información sobre algo concreto, o no sabes por dónde empezar, no tienes más que preguntarme.