This is a career direction question: for the past year or so I have been pursuing web development in an effort to transition out of my current industry (non-tech related). I realize these changes take time so putting aside a total change of vocation, for the near future I hoped I could count on this for some serious and steady extra money for my family.
I have however been discouraged of late by finding all the user-friendly, do-it-yourself-in-minutes web development tools which seem to be everywhere. From $30 pre-fab website templates that look pretty decent (sometimes even impressive) to WYSIWYG coding tools that allow people who don't know anything about coding, scripting, etc. to create functional and great looking websites, it seems the market for web development is a narrow gate that one must figure out how to traverse in order to make some reasonable money. I love learning coding but I question if the need to find someone with this specific knowledge isn't dwindling rapidly.
Questions: Is there still money to be made in web development and if so, in what areas specifically? Are there certain specialities that I should learn?
Specifically, websites that are built to be standards compliant and search engine friendly. Having a website is useless if people cannot find it. The rules for getting a site in the top of a web search are getting more and more complicated and important. This more or less dictates the specific knowledge that is required. Anyone with a bit of programming experiance and knowledge of HTML can put together a website and even a web application.
Things that I think are important. note that my experiance is with companies where developers need to be well rounded, in many cases when I start a project I usually build it from beginning to end. Sometimes with actually designing the way the site will look about 50% of the time. Even if you find a position where you are only responsible for one portion, you still need a good understanding of all the other bits so that you know how they work together. I've worked in places where the designer just designs and then someone else builds the html (and sometimes the CSS), then it is passed to someone else to put in the content and finally to a programmer to add in the dynamic bits. From my experiance this does not work well simply because in most cases each of the people that work on something have no idea how their bit works with all the other bits.
Back to my list of important knowledge...
1) Some sense of design and what looks good. Also, the ability to use a program such as PhotoShop to cut up the image as well as make changes when they are needed without needing to go back to the designer. The design includes buttons, but did the designer include what the button will look like when you mouse over it? Did they tell you what color and size the heading are supposed to be.
2) Strong HTML skills and the ability to build semantically correct XHTML that conforms to the standards published by the W3C.
3) A very good understanding of CSS and, which includes understanding why the separation of content and presentation are important, how to distinguish between content and presentation, and how to keep them seperate.
5) A good understanding of server side scripting of some kind. If you plan on doing the programming then you'll need the skills, even if you don't do the programming you still need to understand how it is done. this will help you do build a site that is friendly to scripting and does not require reconstruction of parts of the site in order to make the programming work. Knowledge of the different types of includes used by the different scripting languages is a must.
Something that goes along with 5 is being able to separate data that is generated from the generation. what this means is that the program should not have anything in it that controls how the data is display. This makes upkeep of such application a nightmare.
6) And understanding of databases and SQL
(my personal preference for programming is PHP and MySQL, but this is not as important as a good understanding of programming. Programming is programming, no matter what the language, only the syntax changes)
7) The ability to make a decision, even if it is the wrong decision.
8) Ability to learn and find things. It is important that you know what you know and what you don't know. It is more important to know how to do research and find the answers you are looking for. By the way, this place (EE) is a good start. There are a lot on knowledgeable people here, but at the same time this is not the only source of information on the web.
9) And understanding of URL Rewrite techniques so that you can create dynamic sites that generate search engine friendly URLs
As far as where the opportunity lies, look for internet marketing companies that do custom web development. As a developer I do not do the marketing, but I work for an internet marketing company that does SEO among other things. I've learned a lot there, including the fact that those canned options you speak of are not search engine friendly, they produce clunky, slow code.
As a final note, let me say that I know where you're coming from. I spent more than 16 years working at a job I hated. When I was laid off I went back to school (I got lucky and the government payed for my education) I chose web development because it is something that I've been doing as a hobby for almost as long a there has been a WWW. It is not an easy thing to change your life in midstream, basically trying to swim against the current. Quite honestly I tell you to stick with it. Love what you do for a living and you will live longer. Hopefully you can get the support you need to make the transition, but in the end, if you love what you do and you do it well, the opportunities will present themselves.