Ok I’ll take a crack at this…
**HTML **
Anyone who does any work for the Web (except MAYBE graphic designers who know they won’t be doing any markup) needs to know HTML. No matter what sorts of exciting things you do in code, and no matter what language you use to do it, you ultimately need to spit out some HTML on the other end so whatever you just did shows up in a browser.
You can focus on HTML itself and make nice-looking Web pages that don’t “do” much, or you can learn it as a necessity for displaying the output of your highly technical code.
Personally, I started out by becoming proficient with HTML and set myself up in a position where I added the good HTML to someone else’s poor-HTML-as-a-result-of-awesome code. But that was just my luck - I don’t know how it works in the real world.
**XHTML **
If you’re going to learn HTML just learn the XHTML standards. Consider it like learning proper Modern American English instead of learning Olde English or something.
**CSS **
Think of CSS as a neat and tidy replacement for HTML. For example, you can either have <font color=red size=2><b><u>My Headline</u></b></font> (and write that same code for every headline) or you can have <span class=headline>My Text</span> and define the class called “headline” with red color, size 2 font, bold and underlined, and in the HTML assign that class name to all of your headlines. Then if you decide all headlines should be green, you go edit the headline class in your .css file and now all your headlines are green.
There’s much, much more to it. That’s the general gist of it, though.
Personally I don’t use it as the be-all-end-all to making my site “configurable with one defining sheet” - because I do mainly dynamic code utilizing include files and master pages which means if I set something as aligned right in my header (which is included on every page) and I want it to be aligned center later, I just go change the one header include file. But that’s just me because I don’t have the time or inclination to fight with CSS define every single aspect of my sites.
I do use CSS aplenty, though.
**JavaScript **
Javascript is a client-side code - it controls the client (the browser). There’s objects on the page that have methods and the methods can be assigned to trigger Javascript events (functions). So an HTML form button has a method called OnClick and the browser knows that OnClick = when someone clicks the button, and you can tell the browser “On Click, evoke this Javascript function” and there you have it. You can write your functions to do pretty much anything if you’re good at it.
Javascript is a much more “strict” language than HTML (or even VBScript) and there’s a lot of nice little easy things you can do with it or you can make it as complicated as you want.
Personally it took me forever to learn it, and I still wouldn’t say I am an Expert at it, just Intermediate, after 10 years. I think it’s because I have 0 programming background.
DHTML -
You didn’t add this but I’ll add it for you. DHTML is pretty much using Javascript to change CSS properties of objects on the page. If you click a button on a page and a table cell turns red, that’s DHTML. You would write a function in Javascript that is fired OnClick of the button that sets the background color style property of the target table cell to red.
Obviously it’s more complicated than that, but there’s the gist of it. I don’t know why it has its own acronym, but I guess it’s better than having to say “Javascript controlled style properties.”
**PHP ** & ASP -
Normally one would find PHP running on an Apache Web server on a Linux box, and the code/project would be connected to a MySQL database (all of those items are free - open source) (it is also possible and pretty simple to run all of those items on IIS on a Windows box)
ASP would be found running on an IIS Web server on a Windows box, and the code/project would be connected to either an Access database or a MS SQL database.
Both include functionality that comes from the server that lets you do specific dynamic-type things you can’t do with just plain HTML. They also do not require the use of a database. For example you can write out an array of items, reference the array of items, and display one particular item from the array without a database. You can write out the current time, or yesterday’s date, or a whole slew of date things without a database. You can submit a form and send the form’s contents via email without a database. All sorts of things.
You can also securely connect to a database, use PHP or ASP functions to get the data you need (by sending the proper database query), then “spit” the data back out to the browser wrapped in HTML.
So if I wanted to display a list of products to a customer, I use my code to send the proper query to the database which sends me back a bunch of records in an array. I then use my code to take each record that is returned and wrap it in some HTML (say, a table) and then use my code to print out some HTML.
Since PHP and ASP are server-side languages, the code is never visible to the person viewing the resulting HTML page. If, in ASP, I say <%=Now()%> the server sees those <% %> tags, processes the function called Now(), prints the date “in” the HTML and when the page is shown all the user sees, even if he views the source, is the date/time of now.
Its oodles more complicated than that, but there you go.
ASP.NET
You didn’t add this but I’ll add it. It’s harder to explain than PHP/ASP. But…it’s a Windows server technology that takes anything you ever thought of doing in ASP and does it for you (this is at the absolute lowest level of thinking). You want a login? Add a login control and it’s done, in what previously took about 100 lines of code. You want to display some database records in a grid? Put in a grid control, connect it to a data source and it’s done. Much less code.
I’m sure I’m not explaining it well, even in this lowest-level example…but it’s an extremely powerful tool (and can be written in a few languages - C#, VB, J#…maybe more?) and is “all the rage” and I predict it is here to stay.
**Notepad **
Not exactly a code editor. It’s the lowest level of typing text into a Windows computer without having Windows add anything else. You can use it to type a note to yourself and save it on your desktop with the file extension .txt. Or, you can use it to write an entire HTML page in plain code and save it with the file extension .html or .htm, upload it to your Web server and now you have a new Web page.
Typing into Notepad is pretty much like typing into the reply box here on the SDMB. Some people can use it to write HTML or other code because they are that good at coding and know how to write HTML off the top of their head without the need for graphical cues (like colored tags).
You definitely do not NEED to use it. Even I don’t use it anymore, because while I could code an entire Web page off the top of my head, the longer the code gets the harder that is to accomplish. It’s just easier to use an editor - any editor - that at least colors your tags for you. Using HomeSite or UltraEdit is LIKE using Notepad in that those sorts of apps color your code but absolutely do not fuck with it, while WYSIWYG editors tend to decide for you what they think is best.
**Dreamweaver **
DW is just one example of a WYSIWYG editor. There’s also FrontPage, Adobe GoLive, HomeSite (in design mode), Visual Studio 6, Visual Studio.net…there’s tons but those are the “big” ones. All of those apps let you work in HTML-only mode but at the same time if you try to use their “design mode” (which shows you how your code looks in a browser and lets you manipulate code by point and click) your nice neat code gets fucked up.
Some people hate visual designers and some people can’t get around without them. Personally, I am not a fan. The guy who does our graphic design lays out pages in Dreamweaver and sends them to me. I spend a day or two stripping out Dreamweaver’s code and making it readable in HTML mode in Visual Studio. I’ve also gotten code from FrontPage and GoLive and I’d say those are the two worst offenders.
For the most part, any HTML editor will give you control over your code if you want it, plus give you hints (if you turn on that option) and let you manage your project all in one place. Dreamweaver is not the be-all-end-all.
I don’t know how it works with PHP but I would not work with it with ASP - I use Visual Studio for that. It’s super for just plain HTML, though.
Did that help?