I started doing freelance web development in 1996 (when the web was still in its infancy, or at least an awkward adolescent). I’ve recently left the ranks of the self-employed, but I think I can offer a few tips:
As has been mentioned, you need to learn how to do active sites. PHP, Java and .NET are the main development platforms right now, and you would do well to develop at least a passing familiarity with all three. That said, I had all the business I needed by focusing almost entirely on PHP (and accompanying open-source technologies e.g. LAMP (Linux-Apache-MySQL-PHP)). Many clients couldn’t care less what platform is used so long as it works.
You absolutely need to learn the ins and outs of HTML, and I strongly recommend that you learn how to write compliant XHTML markup. You’ll also need to learn CSS (Cascading Style Sheets). A well-formed XHTML document with associated CSS will be a LOT easier to maintain and update, either by hand or with server-script.
You’ll probably want to become familiar with the “Web 2.0” techniques that are all the rage right now, which means learning JavaScript.
And of course a working knowlege of Photoshop is a must, but I wouldn’t recommend focusing on the design aspect of web development. I got ALL my work from designers who subbed out the actual nuts and bolts of the site to me (they’d send a .PSD, which I would slice up and code the HTML/CSS for and then create the necessary server underpinnings).
In almost 10 years of business, I never advertised, and for the last several years I had more work than I could handle. That’s becuase I had built up a sizeable network of designers who needed a programmer. I’m sure there are other ways to get work, but by being a sub for all these designers, I rarely had to deal with the client directly, which suited me just fine.
Some people will recommend doing some freebies or cheapies when you’re getting going, and there’s some benefit to building up a portfolio of work that you can use to woo potential clients, but I never succeeded in my business until I started charging 3X what I estimated a project was worth.
For one thing, every project is going to take longer than you think it will, and you need to build this into the bid. But there’s also a psychological aspect to pricing – the words “cheap” and “inexpensive” are seen as synonymous, and the potential client will assume that they’ll get a better site by paying more. True, there are those that will always grab the lowest bid, but in my experience those clients are the hardest to deal with. They’ll throw last-minute changes on you and expect you to implement them for free, and they’ll generally gripe about everything. The ones who understand that skilled developers don’t come cheap are the better ones to work with.
Along the same lines, make sure you’ve clearly outlined in writing what is included in the bid, and what costs will be involved in anything outside the originally defined scope of the project. It’s a lot easier to charge for additions if you specified up front that you would be doing so.
Learn to project confidence even if you’re not completely confident in your skills and abilities. A client will ask for a particular feature. You’re reasonably certain that it’s possible, but you haven’t the foggiest idea of how to implement it. Your response to them is “Yeah. We can do that.” Then you go home (or to the office) and spend several hours figuring out how to do it. You never tell a client (or prospective) that you’re not sure how to do something. Of course, if you’re fairly certain it can’t be done, then you tell them (confidently) that it can’t be done (not that you can’t do it).
My personal view on “official” education is that it’s entirely unnecessary. I don’t have a college degree, and I’ve only taken one class in web development, in 1995 (when the fanciest thing you could do with a website was a pooly-tiled background). I’m entirely self-taught, some from books, but mostly from the internet. There are a multitude of resources online to tach you anything/everything you’ll need to know (from a technical standpoint) to be a successful web developer.
Of course, I realize that some people learn better in a classroom setting. If you are that type of person, then by all means take whatever classes you think you need, but I would still not worry about an official degree.
All of this has been directed at starting your own business, and in looking at the OP it appears that you may be asking more about getting a job in web development. If that’s the case, some of what I’ve said about the business side of things won’t apply, but everything about learning the languages and technologies involved still does. I suspect that there might be a larger market for .NET developers than for PHP or Java, but I could be wrong.
Oh… One more thing I’ve done that may or may not apply, depending on whether you’re looking for a job or to start a business (and depending on who your target market is). I built a server that I’ve got colocated at a local datacenter. The vast majority of my clients knew what they wanted a website to do, but had no provision for hosting the site. Since I had my own server I could tell them “I can host your site for $x/month if you need me to. My server has all the technologies and software I need to develop your site. If you’d rather find your own hosting, please make sure that it supports xxx”. I pay around $120/month for the bandwidth and rackspace, and I bring in a few hundred dollars/month in hosting fees. It’s not a viable business in its own right (and I never meant it to be) but it gives me a good place to host people and puts a few more dollars in my pocket. (I still run the server, even though I’m no longer doing freelance development.
You mention that you don’t want the stress of keeping a network up and running 24/7, so this may not be an attractive option for you, but in my experience once you’ve got the system up and running there’s very little maintenance involved (just installing security updates on a regular basis).
Hope this helps. (Only my second post, but I finally found a subject that I actually know a little bit about
)