There aren't many pro-tips to be given when it comes to making websites. There are many ways to do it. I'll explain some concepts though, to the best of my ability. I won't be particularly exhaustive, so if anyone feels I left anything very important out, or I messed anything up, feel free to add.

HTML: This is the base of any webpage. It tells the webbrowser where everything goes on a website. That's mostly all it does, although it does have some more interesting specifications in its most recent incarnations (HTML5).

CSS: This is used to style elements (text, boxes, backgrounds and so on). This is practical, because you can have a website that looks mostly the same everywhere, because every page on your website (more specifically, the pages that you specify) all use the same CSS styling sheet. Then it's just a matter of also using generally the same HTML body, except for textual differences, since pages obviously won't all contain the same material.

PHP/ASP/JSP/what have you: This is basically webprogramming. This can be used to actively execute algorithms, in order to modify content on a site in realtime, like writing a post on this forum. When you press "Post reply", a function is invoked, which basically grabs all the text that is submitted in this textbox, formats it into an entirely new postbody (basically a post, like the ones you see in this thread), and this postbody is then appended to the HTML file that contains this page. This is is probably a little weird if you're all new to it, but think of it like making a program, that basically uses a template of a post, where you have a bunch of different things to fill in, like the actual message, the username, avatar, signature, post count, time stamp, post number and so on. Your program does all this for you, and then it takes the filled out template and puts it into the HTML file that contains the thread.
This is just one application (though probably one of the most common) of webprogramming, and you'll probably spend a lot of time doing it. It's generally not that hard, and once you get the hang of it, it can be a lot of fun.

Client side: Stuff that the user's computer does, which does not affect the server which hosts the website.

Server side: Stuff that the server does, that the user cannot observe (unless it is made to be observed).

Knowing the difference between these two is important. For example, when you write a password to log into your webbanking, you basically send the password to the webserver, the webserver then checks if the password is correct, and then grants you access. If such a check was done client side, the webserver would have to (theoretically) send ALL passwords to the client, so that the client could do the check on its own. This would be incredibly insecure.
On the other hand, if the website you're using has a flash element, like a flash game or a flash movie, it will be the client that runs the flash element. The website merely supplies the files.

One of the more tricky things to do when doing webprogramming, is updating a site in realtime, as in, update visuals for the user, without them refreshing the page. Facebook does this for example, when you receive an update, you get a little red speech bubble, without refreshing the website. It's nice to be able to do this, because refreshing is basically annoying for the user, and it can also spare you a lot of bandwidth usage.

Personally I don't code websites. I've learned basic stuff, but I like coding programs more.