tags:

views:

119

answers:

7

I will be hosting weekly a couple hours session at university aimed at teaching some of our better students web-programming. These people are pretty proficient at computers and some are good at web.

What web-technologies would you teach in 2010 for a semi-advanced students team?
What would you include?
And what would you omit to teach? (important)

+7  A: 

XHTML, CSS and a good javascript framework such as jQuery.

May seem simple, but knowing how to create standards-compliant xhtml, efficient and clean CSS, and good javascript is something most people skim over. But, without them, your website will tend to be crappy and hard to maintain.

Will
beyond this, would you add more? I am thinking of imperative-languages? things like SEO, sNIFR, openID, frameworks etc... not just presentation, the whole wheel behind etc... What do you think?
Pentium10
They are all ephemeral - HTTP, XHTML and CSS are the core and need to be understood before you can get into abstractions.
Dan Diplo
These students already built 5+ websites, some just hobby projects others for production use. They know basics of these.
Pentium10
@pentium there's a big difference between being able to throw up a website and understanding doctypes, being able to use css selectors, and being able to create a javascript prototype. I'd expect an advanced web developer to know this kind of stuff. A noob with 5+ websites built knows how to use the <marquee> tag.
Will
A: 

I would include HTML5, given the ostensible lack of support for flash in the mac products - this may be a sign that flash may not be the dominant multimedia presentation medium so I would avoid teaching flash.

Otávio Décio
+4  A: 

The web is stateless and the browser isn't part of your app.

bmb
sounds cool, what would you ommit?
Pentium10
I would omit IDEs.
bmb
+1  A: 

How to extract and put data into a database through a web site. Basic SQL querying including most especially a knowledge of joins. Many web developers seem to have serious knowldge gaps when it comes to databases and most web sites in some way need to access the database.

HLGEM
Extraction sounds good. These students already built 5+ websites, some just hobby projects others for production use. They know basics of these.
Pentium10
A: 

Expose them to a variety of browser technologies and the tools that aid in development. In each class you could briefly cover a different tech.

Some random ideas for a mock class - Javascript Day

  • Show common, everyday, examples on sites such as fb/youtube
  • Demo some exceptional JS apps / games that highlight the flexibility of the language & the scope of the type of apps/scripts
  • Show some simple code examples
  • Introduce jQuery, Prototype, and other frameworks, that make life better.

You probably shouldn't get too technical or scare off future developers.

John Himmelman
sounds cool, what would you ommit?
Pentium10
+1  A: 

If you're trying to teach them web development, there are far too many technologies to concentrate on. Instead, I would give them an 'under-the-hood' view of how the Web works. That way, when they encounter any technology, they'll understand what's actually happening and will adopt them much faster than by being 'trained' in one technology or another. I have taught a Web systems course for some years now, and the results (student feedback, sometimes even years later) have been very positive.

I taught them how to write a web server in Java. It sounds simple, even counterintuitive, to do this. However, by allowing them to see for themselves how HTTP works, you can give them a more solid framework for learning specific technologies. I chose Java because it has the ServerSocket class - setting up a port listener is dead easy, so they don't have to have a background in networking in order to write one.

Once they have a simple server going, they can then add servlet handling, an XML config, https support... the sky's the limit.

calico-cat
We have already done some Struts project.
Pentium10
It's fine using a framework, but I was thinking creating your own objects from scratch. That way they also get an idea of using object-oriented analysis and design to create something - in this case, a web server - whose functionality can be extended easily. Using a framework reduces the amount of analysis they have to do, and IMHO, is of reduced value. that's just my 2c though.
calico-cat
Unfortunately these students are not open for such task. They are sick to create existing solutions eg. chat, or server apps. From the too many technologies on which would you concentrate on? (can be very selective, like a must have...)
Pentium10
Well, by giving them a basis, like I wrote in this answer, you're going to give them a solid basis for learning about any technology. But if I had to choose a few, they would be Django, Java, and ASP.net. I'm not a fan of PHP for anything other than small projects, and Python, Java and C# are good OO languages for teaching about the maintainability and design of good Web systems. Especially for a university, I believe that it's not enough to teach how to 'use' one framework or another - that's training.
calico-cat
A: 

I'd consider going over some of the basic RIA architectures like Silverlight/WPF, Flash, and JavaFX for one idea of what can be done within a browser.

At the same time, I'd be tempted to flip that by looking at off-line things like .Net and AIR that may become more common in the future within apps that need web connectivity but run outside the browser,e.g. Twhirl that uses AIR but does connect over the web to pull down web content.

JB King