Assuming you already have the GIS side of things covered (cartographic principles, etc), I would first take a trip to http://www.w3schools.com/
- Run through the tutorials in HTML, Javascript, XML, etc
Then you have a number of different platforms to choose from. I am a bit biased towards ESRI, and I would recommend starting off by playing about the APIs http://resources.arcgis.com/content/web/web-apis
- Running through the concepts/samples gives you a real sense of what you can achieve.
I find downloading the code samples and reverse engineering them to work with your own services (assuming you have an instance of ArcGIS Server, otherwise you can use ESRIs sample servers) is a good way to learn.
There is also plenty of videos, take a look at this years dev conference videos Id recommend An Overview of the ArcGIS APIs for JavaScript, Best Practices for Designing Effective Map Services, Redesigning Desktop Applications for the Web and Using the ArcGIS Server REST API.
Which web platform would you choose? Id ignore looking at the WebADF (Java/NET) as this is going to get phased out.
Who are your clients? what browsers will they be using? Can they install Silverlight or Flash plugins? Do you have any IDEs to develop in? e.g Flex is best in FlashBuilder ($$) but you could also use FlashDevelop which is an open source alternative.
Are you more comfortable with established technologies or emerging technologies? Weigh up the risks.
- .NET/Java have been around for ages
- Silverlight & SilverlightFlex are fairly new and there is some debate on if HTML 5 will wipe these platforms out
Both Silverlight and Flex have more interactivity out-of-the box, where as Javascript makes up for this gap by relying on the Dojo.Framework.
The big difference in functionality between Web ADFs and Web APIs is the fact that ArcGIS Web APIs are entirely client-side (look at when we look at how REST works).
I will leave someone else to give a less-ESRI specific answer, but the obvious choice is to start having a play with the Google Maps API
- There are plenty of resources/tutorials for learning this.