Well, if you want to become a web developer you need to know the basics of the web, and how you can use dynamic languages to manipulate them. A web developer is not the same as a web designer, but having some of the skills of a web designer, or at least understanding them, will help you work together with web designers on projects. Now then first of all you need to know the basics of programming, focus on clean code, and understand the benefits of Object Oriented programming.
At the very least you must learn HTML/XHTML and CSS since that is what you will use to present the data generated by your code. Learning XHTML (it's not hard, it logic, really..., please be logical if I someday have to work on your code) will also help as you start developing more advanced web software. From there you can focus on some dynamic language such as PHP, ASP, Pearl, Java, Flash, Ruby, or even Groovy. Personally I think it would be best for you to start off learning PHP and MySQL because it easy, hosts that support it are cheap, and they can complement other languages.
As for software you need an IDE to program in. Dreamweaver shines here, but as a Freelancer you may not be able to afford a copy of CS 4 ^_^. If you're running Windows you can try Blue Fish (which is free) as an editor
http://bluefish.openoffice.nl/
There are of course some others if you search the web. If you're using Linux there are a few more free alternatives, often included with the Distro, such as screem (yes that's the way it's spelled). I also find Kdevelop very useful for managing PHP and Javascript code, but anyway, the best way to learn is by doing so get to it. As you get more into it you can focus on either the backend or the frontend of things, and as you become a better programmer you will see why the separation is important.