Melissa,
I recommend open-source tools, such as GIMP, as Wullie suggested. Apache, linux, MySQL, etc. If you are familiar with linux, I suggest that as a workstation too. I use gFTP, Nedit, Eterm, GIMP, and Mozilla. I only use Windows as a test platform to make sure everything works across multiple browsers, especially IE. But if you're going with Windows as a workstation, then just use notepad or textpad, WS_FTP, etc. Photoshop is the "standard", but GIMP is more than sufficient if you're willing to live on the edge (less support, more independent problem-solving). Web development is more about skill with programming, design, and debugging than using the latest, most expensive tool.
If you decide to outsource, then look for a company with a good track record and inexpensive fees (but not cheap work). Maybe someone local would be advantageous if you have server equipment on-site, but it is generally not required. Get references.
The way my company structures maintenance is that for $40/month, you get bug fixes, software patches, minor text and graphic changes, and consultation by email, instant messager, or phone concerning just about any question you could think of. For major overhauls, you'd need a development contract though. You have to decide what services you need, and see if your provider can tailor your contract (and fee) to your needs.
Most of my clients do not actually need any website maintenance every month, but they'll often ask about virus software, spam filters, online marketing, hosting or payment processor issues, email issues (full mailboxes, new accounts, etc), and other internet related questions and advice. On some months, a new browser version will come out and break something, or someone will uncover a new bug, or they'll have a permission problem, or maybe they'll add new data to the database which will require adding a new table or row and tweaking their software, or they'll want to do a special sale that requires changed functionality, or they'll do an email campaign, or they'll renew their SSL cert and need it changed on their site, or they'll just change the text on their homepage now and then. None of these things usually requires more than an hour at a time if you've done them a thousand times before. That's why it is easy to justify a fairly low fee. However, for someone unfamiliar with one of these fixes, it could take between hours and weeks to research it and get it done. Also, every now and then, you might get hit with a worm or hacker or power failure or something else unexpected, and you'll need to get up and running again quickly. In that case, setting up from scratch might be more than you bargained for having to do on your own. It's always nice to have your own personal web expert to bounce stuff off of or rely on in an emergency. Having the website maintenance contract is like having car insurance and a friendly mechanic, even if you are mechanically inclined yourself.
Wullie,
My intention was not to insult you or anyone else. I'm glad that you are a quick self-study and have pride in your accomplishments. However, you are the exception, not the norm. Also, I think your confidence may be based on limited experience.
> Amasingly, I can tackle all aspects that I need to which is all I need to know. Information that I might know but will never use is pointless.
Unfortunately, that sounds a lot like the attitude of someone who hasn't gone through the education. I can't tell you how many times I thought to myself in school that I would never use this information.
Ultimately, that is a very dangerous philosophy. What do you know about race conditions, big-O analysis of algorithms, deadlocks, memory allocation, binary and hexadecimal arithmatic, object-oriented programming, pointers and references, finite automata, entity relationships, lexical and dynamic scope, recursion, sorts and searches, internet protocols, public key encryption, benchmarking, operating systems, etc., etc.? There is a difference between a "technician" who can ask questions about how it is done and then repeat it, and an "engineer" who can come up with solutions and debug logical errors and produce efficient code, and it is in respect to their difference in fundamental knowledge on which to draw. Any team should be composed of at least one "educated" engineer and some "knowledgeable" technicians. You may be able to use the Tek-Tips community or other online resources as your engineer in some cases, but in other cases, you may be confounded with nowhere to turn. It will also take you much longer to do it this way, and you probably won't produce the most efficient result either.
>Certified or not, you have no advantage over me to gain the knowledge or to broaden what you already know.
It is certainly true that most technical knowledge is acquired by experience rather than formal education, and anyone can obtain experience given the proper resources and practice. However, a formal education gives you knowledge and experience with the underlying concepts which allow you to paint the big picture instead of focusing on individual elements. Thus, it is far easier to pick up a new programming language, for example, if you understand programming languages in general, and the same is true for other concepts as well. Moreover, no matter how much experience you have with specific technology, you will never be prepared to deal with problems involving subtle logic errors or come up with truly unique solutions. Sometimes the depth of a bug goes below simple syntax.
> And as for a mastery in the subjects, can you honestly say that you know everything there is to know about any programming language? I would be very suprised to get any answer other than no to that question. Take a look at the list above, are you completely fluent in every one of those and nothing would make you refer back to the manuals or seek help by any other means?
Mastery does not mean that you have memorized all of the syntax of a programming language, or every feature of some software. It means that you understand how it works and why it works, and how to accomplish what you need with it, and how to debug problems with it. As an analogy, you don't need to have a huge vocabulary to write a compelling letter. As long as you understand the components which make a letter compelling, you can use a thesaurus and dictionary as a reference. Alternatively, you could have a huge vocabulary, and still be unable to write a decent letter.
> Moral of this story: Think twice before you jump to conclusions and assume that because you are certified, you know everything there is to know and are better than anyone who is not certified. If you believe that, you are sadly mistaken.
I don't think that I am personally better than anyone else. However, I do believe that, as a Computer Scientist, I am better able to manage computer technology than someone who went through a 1-2 year certificate program or is self-taught. Unfortunately, if you believe that, as a self-taught technician, you are able to handle the depth and breadth of web-related programming and maintenance as someone with a 4-year degree from a decent school, you are deceiving yourself. That's not to say that you can't put in a good effort and handle most common problems, and even research the hell out of something until it is solved. But jumping to the conclusion that the base of fundamental knowledge obtained with a Bachelor's degree is irrelevant is beyond foolish.
I wish you luck with your business and hope you avoid running into any problems beyond the common. However, I advise that you read about some fundamental computing concepts though. You have a healthy enough interest that you should be able to plow through text books without a problem. But no matter how obscure you think some piece of knowledge might be, get acquainted with it anyway, as you never know when you'll need to use it.
Now at this point, we've dragged on this tangent too far. Maybe you want to take it to the "water cooler" forum to discuss more? Sincerely,
Tom Anderson
Order amid Chaos, Inc.