你会如何教web开发?

时间:2009-05-04 20:47:26

标签: language-agnostic

我是web& amp;的主要讲师私立邮政高中机构的互联网相关课程。我目前的课程包括HTTP,TCP / IP,(X)HTML / CSS / JavaScript和通用SQL的介绍。明年我们将主要处理PHP / Java。在您看来,与传统开发相比,Web开发最重要的方面是什么?我的讲座主要关注什么?

当然我会遵循一个课程,但我真的想用时间来提升它,从炒作和语义到oldschool硬核脚本。

请记住,我很幸运能够与极具天赋和中等动机的人打交道。

17 个答案:

答案 0 :(得分:17)

网络开发最重要的方面:

  • 此代码在哪里运行? (客户端与服务器编程 - 正如许多人所说的那样)
  • 谁打算用这个? (了解您的受众 - 他们为什么在您的网站/应用上)
  • 如何发挥好(版权,标准,借鉴创意与偷东西)
  • 如何充实资源(代码库,谷歌搜索和堆栈溢出)

讲座的主要焦点

我坚信语境学习。让他们选择一个具有边界和指导方针的项目,这些项目将采用您想要了解的概念。人们可以花一整天的时间来学习语法和概念,但是当你试图解决问题时,就可以进行真正的学习。他们也会有更多的乐趣。

<强>摘要

关于如何(XHTML,CSS,JS等)的讲座,但仅限于什么的背景下为什么

答案 1 :(得分:13)

在我看来,最重要的是教授服务器和客户端编程之间的区别,以及何时使用其中一个。我对那些不了解其中的新毕业生的数量感到非常惊讶。

答案 2 :(得分:8)

恕我直言,Web开发中最困难的概念是状态以及如何维护它。

如果我正在设计一个Web编程课程,我想我会让学生设计一个简单的应用程序框架,试图解决透明的状态维护问题。将它们分成组,您可以让它们采用不同的方法(服务器端,客户端,数据库支持等)。最后,我相信他们会学到更多关于Web架构的知识,而不是专注于制作实际的应用程序。

答案 3 :(得分:4)

对于前端Web开发((X)HTML / CSS / JavaScript),请尝试Opera Web Standards Curriculum

  

让学生从完全初学者   有坚实的基础   基于标准的Web设计,包括   HTML,CSS和JavaScript开发。

答案 4 :(得分:3)

我也相信网络开发只能在首先学习一些软件工程之后才能学习。我认为敏捷过程是教授学生软件工程的最佳途径。它很轻巧,不像文档驱动。

之后我会教他们客户端服务器编程的基础知识,http协议和一些基本的Web编程(PHP和javascript就足够了)。如果有足够的时间,我会向他们展示Java EE编程的基础知识以及它与PHP之间的差异。

还介绍了一些更高级的材料,例如用于Web的MVC(使用JSF)和javascript库(JQuery)。我也会教他们数据访问对象和持久对象。

对于我今年的高级研究,我想出了一些需要网络编程,网页设计和软件工程背景的高级大学课程的材料。您可以查看基本材料here,以了解我对高级Web应用程序开发课程的学习方法的基本概念。我知道这可能超出了你的范围,但它可能是一个开始。

答案 5 :(得分:3)

我相信很多灵感。作为一名新的网络开发人员,我发现很难让我的网站变得可用,吸引人且编码良好。我在外部资源中找到了灵感,例如NettutsSmashing Magazine。这些网站让我真正了解了我在设计/编码中可以学习和使用的所有功能。

答案 6 :(得分:3)

好吧,如果你要求意见......

请教他们:

  1. 自我记录代码。
  2. 客户端和服务器之间的区别
  3. 数据检查
  4. 安全
  5. 如果他们对编程语言有很好的理解(这听起来就像他们的课程一样),我列出的内容将会有很大的改进。

答案 7 :(得分:1)

如果你有一群有动力的人,那么我建议你专注于从头开始创建一个完整的Web应用程序,我的意思是,从需求启发本身。

你可以从一个头脑风暴会议开始,让你的一些学生从不同的角度扮演客户的角色(你需要提出基本问题本身)然后另一组学生试图获得“客户”小组通过网络应用程序表达他们的需求并提出解决这些问题的方法。这将有助于他们学习一般发展的最大问题之一,即与客户的互动以及如何从中克服通常的沟通问题,从中获取最多的信息。实际上,如果你能让其他非技术人员担任客户,那就更好了。

然后,您可以介绍极端编程或任何其他您喜欢的方法。我建议一个敏捷的,因为它会提供更快的结果,并且不会那么快,然而,市场似乎正在转向支持它们。

现在,关于Web开发本身,让人们了解Web标准的需求以及在不遵循Web标准时可能出现的错误非常重要(IE6)

毕竟这一点很清楚,现在是时候让他们意识到在Web开发中,大多数时候你只需要处理应用程序显示平台的差异,并教他们实际的技术。喜欢不引人注目的JavaScript和渐进增强。

关于等式的服务器端,我认为强制使用模式(MVC是必须的),代码重用以及所有常用的开发实践是很重要的。并且确保他们理解HTTP本身是无状态协议以及以负责任的方式处理cookie和会话的重要性,这里确保他们理解服务器和客户端之间的差异非常重要。

此外,必须覆盖OWASP前10名(至少),最后一个版本可在以下网址获得:http://www.owasp.org/index.php/Top_10_2007

一些链接: http://www.quirksmode.org/blog/archives/2005/06/three_javascrip_1.html http://dowebsitesneedtolookexactlythesameineverybrowser.com/ http://forabeautifulweb.com/blog http://www.alistapart.com/ http://www.owasp.org/index.php/Top_10_2007

答案 8 :(得分:1)

请记住,网络编程是一团糟,不仅要提供隧道尽头的光线,还要提供隧道本身。我会扩展AaronS的答案:

  • 客户端和服务器之间的区别。
  • Web应用程序通过网络运行,all that implies
  • 有多种方法可以做到这一点。平方。

最后,您必须选择 not 来教授实际到达某处。

答案 9 :(得分:0)

我将从Opera的introduction to web standards carriculum开始。 我认为这将很好地理解Web开发中的一些基本概念

答案 10 :(得分:0)

对于编程部分,我建议你从最初的最基本/最基本的概念开始。跳到我脑海的第一件事就是HTML。您可以确保学生理解HTML(以及一般的标记)及其基本语法。我认为从手工编写的HTML开始,也会让他们更加欣赏一些可以帮助您生成HTML或其他代码的优秀工具。

之后,您可以了解一些围绕HTML的工具和技术,如CSS,JavaScript和AJAX。

一旦覆盖了客户端并且这些概念在他们的脑海中是具体的,您就可以进入服务器端脚本/编程。服务器端的大多数语言只是向浏览器发出HTML,CSS,JavaScript等,因此首先要了解这些内容是必不可少的。

最后,开始讨论使用他们新发现的知识来创建与其他系统(数据库,Web服务等)通信的应用程序。一旦所有这些基础知识到位,你可能会完成课程,但是他们将为200级做好准备,对吗?

答案 11 :(得分:0)

老实说,如果没有一般软件开发的良好背景,我不相信你可以很好地完成Web开发。如果一个人不注意他/她将以一个平凡的脚本或某事结束。

如果你告诉我们什么样的人有你的背景,那将是一个好主意。

如果你有一些金融学院的毕业生,目前尚不清楚他们对任何一种发展都有什么样的动力。如果这些是工程师或一些创意领域,如设计,装饰等,那将是一个不同的故事。

尝试从开发的各个方面收集一些最佳实践。一点点来自测试和质量控制,一点来自项目管理,一些关于与客户打交道,公开暴露软件的安全性,法律方面。不是太多,只是描绘一幅大图。

答案 12 :(得分:0)

我喜欢关于客户端和服务器端编程之间差异的答案。既然你教授有才能/有动力的学生,我认为对MVC(模型视图控制器)架构的一些理论讨论可能是有序的。它最初是如何为桌面应用程序设计的,在这种情况下,有必要实现一个侦听事件的系统,以便能够保持视图的所有方面与模型的状态在修改时保持同步。但是,在网络范例下,监听器代码以Web服务器的形式免费提供给您,请求就是事件。因此,至少在客户端和服务器之间的交互方面,Web的MVC应该不那么复杂,控制器只是在客户端和服务器之间进行调解。

当然,直到Ajax出现。现在,使用Javascript在客户端实现侦听器代码是合适的,以便能够使小部件保持同步。

我是一名MVC迷,所以请注意这一点。你的里程可能会有所不同,但我确实认为有关MVC的材料肯定是有道理的。

祝你好运

答案 13 :(得分:0)

这也非常关注前端...但我认为这是一个很棒的帖子。

http://veerle.duoh.com/blog/comments/teach_the_web_right/

[编辑] 她提到了以前的帖子中提到的Opera Web Standards Curriculum,但她也提到了WaSP InterAct课程。这似乎仍在进行中,但已经有一些很好的资源和链接。

答案 14 :(得分:0)

由于您正在进入服务器端,我强烈建议您考虑一些基本的应用程序安全性。从保持应用程序(Wordpress,PHPBB等)最新和修补,到实际攻击,如SQL注入和跨站点脚本。

因为听起来你是从头开始教他们,所以你有很好的机会向他们强调输入过滤和输出转义,合法用户身份验证和其他最佳实践的重要性。

答案 15 :(得分:0)

教授Web开发(就像过去的GUI构建器一样)有可能过于关注前端,而后端则不够。很容易陷入让学生过多地思考表面视觉问题(例如,如何调整这两件事)而不是核心事物(如何有效地计算,计算,存储等)的陷阱。

此外,许多网络开发语言并不是良好编程实践的标志,因为它们往往处于更脏的脚本方面。

对我来说,这两个因素在一起,就像PHP这样的语言常常会导致错误的代表。

如果您正在教授实际上将要练习开发人员的人,我会单独关注模型和视图,并展示如何绑定它们。但是在高中环境中,父母可能希望他们的孩子能够为他们的大学申请展示一些公开可见的东西。

如果他们真正有才华并且有动力,可以通过一些Web表现形式教授他们真正的编程(例如,使用Java servlet),并留下所有脚本供他们在业余时间学习。一个好老师对于培养良好的工程技能非常宝贵,所以要把时间用在重要的地方。

答案 16 :(得分:-1)

关注“明年我们将主要处理PHP / Java”。我将专注于Java,因为我对PHP知之甚少。

  1. 获得正确的模型。设计一个模型,使用ORM,让它合理地工作。这是高度可重复使用的东西。它是应用程序的主干。如果这不对,其余的将很快变得一团糟。

  2. 正确获取模板演示文稿。 JSP不应该做太多(它们可以,但不应该)。这应该有任何奇特的处理 - 这可能是模型问题或动作类问题。

  3. 将这些与Struts动作类和Java Bean一起编织,这些动作类和Java Bean在您构建解决方案的域中有意义。

  4. 添加CSS / JavaScript以及什么 - 不是全部 - 基本上 - 有效。没有多少JavaScript可以修复一个根本上有缺陷的模型。

  5. 核心技术问题(XML,HTML,SQL等)很重要,但不是核心问题。很难跳过,但你必须跳过。

    SQL,ORM,Java first。

    HTML,JSP,接下来是更多Java。

    Struts,Action Classes等等,接下来是更多Java。

    我认为很多核心技能问题需要以及时的方式加以解决。如果你在HTML,CSS和SQL的基础上花费太多时间,那么没有人能够构建任何有用的东西。