Best thing to do is start slow. Pick the part of web development that best suits you and become an expert on that first, then move on to learning something else. Web development/design is really broken down into three parts: design, front-end and back-end. All three of these tie together to make a fully functioning, dynamic website.
The Basics:
Learn (X)HTML and CSS, these are the foundation of your website. After you've got a grasp on those, start learning JavaScript. There are some great libraries out there for JavaScript that allow you to do more without writing a lot of code (and are much easier to learn). If you are interested in learning JavaScript start with the basics, then move on to learning a library such as
jQuery,
MooTools, or
script.aculo.us.
Design:
This is geared more towards creating graphical layouts via programs like Photoshop, Fireworks or even
Gimp. I would start out with this if you have an artistic mind. Even if not, you'll still be able to practice the concept of making a layout. While it is possible to create a layout with purely XHTML and CSS, it's not going to be the prettiest thing in the world. That's why getting a concept of design is imperative. Once you've gotten used to making layouts, now it's time to move them to the web.
Front-End Development:
This is where you actually make your layout functional by using (X)HTML, CSS and JavaScript. You want your visitors to be impressed by your site, whether it be visually or functionally. This is where the role of a front-end developer comes in, it's their job to make the website functional for the user regardless of the situation. Start learning (X)HTML and CSS side-by-side with design. This will allow you to understand how you're going to transfer your layout to (X)HTML markup by slicing your layout and scripting it into an .html file.
Back-End Development:
This is where the "magic" happens. Back-end (which refers to retrieving data from databases or information passed through the server) is used to create dynamic websites that change as information is added or deleted. Some common back-end applications are forums, social networking, content managements systems or even games. This is achieved with the use of server-side programming languages such as PHP, Ruby and ASP. Like JavaScript many server-side languages have their own frameworks that allow agile development of web pages. For example, PHP has
CodeIgniter and
CakePHP, Ruby has
Ruby on Rails and so on. Like I said before, always learn the basics then move on to a framework or library.
Pick the field you like the best. Even though they all tie together as one, become an expert on one first then move on to learning the basics of another. Learn (X)HTML and CSS first, then design and front-end development together. You can create a functional website without any back-end programming, so save that for last.
Pixel2Life is a great resource for tutorials on pretty much anything. Another great place to go is
W3Schools, they teach you the basics of almost all server-side scripting and programming languages.
I wouldn't recommend going to an institute unless they have good programs. Most institutes only focus on a certain set of languages, so if they don't offer a language you want to learn, you're out of luck. The method that worked for me is by looking at examples. Break down each part of it and understand what it does. Pair that with tutorials and general learning guides and you'll be developing a website in no time!