In the early days of the World Wide Web, free webhosting was a way for webhosts to post advertisements on websites, without paying the site creator. After the novelty wore off, and the market collapsed, the webhosts found that the free hosting plans were a great way to develop paying accounts. There's a pretty good selection of free hosts, with features that make it easy for beginning website creators. This page is a step by step tutorial, so you can set up a free website, using uHostAll. Links to other free hosts can be found on the FreeWebHosts Page.
First, you need to find a free host. If you want to make sure that you can move your site from one host to another, you need to have the source files saved somewhere. Sites that have webpage creation tools, or use templates are more complicated to manage. Learning HTML and CSS will offer far greater control. After a cursory investigation, I decided to use uhostall.
The free open source editor, Brackets, can be downloaded here. It's written entirely in Java, and it's fully customizable. There are numerous extensions for various features.
Filezilla is a very popular FTP client. It is open source and can be downloaded here.