这是一个相当广泛的问题.你必须意识到有很多潜在的答案,这里已经给出了体面的答案.而且你必须意识到,无论你选择什么教程,它都是你做出的平台决定.这是因为Web(应用程序)开发是一个复杂的事情,可以在各个层面(特别是在MS世界之外)解决.
>我对你提到的W3School没有足够的了解,但乍一看,它们看起来会教你许多基本的前端技术:HTML,XHTML,Javascript,CSS等.这不错,会为你提供坚实的基础.但是,Web开发通常不会在这个级别上完成,因为对于大型应用程序而言,它太繁琐且不灵活.而且你会完全错过后端/数据库技术.
>然后有平台(我猜这是大多数)有一个模板方法.您可以在HTML文件中混合使用HTML和编程代码(Python,Perl,PHP,…),然后由引擎处理该页面和业务逻辑,以生成用户界面和事务的最终HTML数据库的代码. Django和TurboGears是这方面的着名Python代表,Ruby on Rails可能是目前最大的名字.但是还有很多其他的(Scala/Lift怎么样?),所以值得花点时间看看你最喜欢哪一个.他们通常在数据库处理方面做得很好.在UI端,您仍然可以更改页面.
>在这种情况下,有些平台试图从嵌入代码的HTML转向纯粹的程序化方法.您只需编写代码并使用给定平台的特定API.以某种方式“编译”您的项目将生成您必须在运行时环境中部署的所有必要内容.我认为Google’s GWT和Eclipse RAP是这样的方法,如果你认为,在Java中有梦想和呼吸,这可能适合你.
>当您需要类似桌面的用户界面时,浏览器中的页面更改(Web体验中最具破坏性的部分)不再足够好时,另一种方法很有趣.攻击这种方法的方法是创建“胖网络客户端”,内置大量交互逻辑,通常使用Javascript,并使它们与服务器后端交互,仅用于使用Ajax,REST或RPC协议进行必要的数据传输.客户技术的候选人是例如qooxdoo或Dojo.在服务器端,您仍然可以使用您熟悉的任何技术(从RoR到Servlet等).如果我有我的选择,我会选择qooxdoo作为前端,而Erlang/CouchDb选择后端.
你已经特别询问了教程,我没有提到很多.我想要做的就是你选择的任何东西,你很可能会在这项技术上花费相当多的时间和精力,因为它们都很深,并且会坚持一段时间.在评估期间,您还将检查给定平台的教学材料(不要忘记在线视频 – 这些日子它们很大),但这不可避免地具体. AFAICS,对网络编程没有“一般性介绍”.