When web applications started to become popular, a big selling point was that you could design one set of code and have it run on any internet-capable computer. Unfortunately the front-end of the internet is now so fragmented that this isn’t as true as it once was. Browsers support different feature sets (with IE in particular always significantly lagging behind), users can disable content such as JavaScript and Flash, and many users view the same content on screens of different sizes. Nonetheless, web applications seem to be continue to be the most popular choice for new applications.
Udacity’s Web Development course gives students a great introduction to the huge world of internet applications. Everything is taught in Python with a little bit of SQL and applications are built using Google’s App Engine. The primary project is developing a blog that support users and posts.
This was one of my favorite Udacity classes so far. The primary instructor is Steve Huffman (of Reddit and Hipmunk) and he does a great job of making engaging content. Web development is obviously his passion and he makes this clear in the videos. He also does a great job of relating course content to the real world. Almost every unit has an accompanying story or explanation of how the technology was used at Reddit. This makes it very easy to think about applying what you learned in your own application.
Udacity’s method of using short videos with quizzes works great for internet learning and this class is no different. Most pieces of knowledge are quickly tested and each unit ends in a larger project-based “homework” to add a new feature to the blog. My only complaint for this class is the grading utility for the homeworks. You get almost no feedback if something goes wrong while grading an assignment. This can be very frustrating to troubleshoot because of the potential number of fail points in the web application. It’s essentially tracking down an application failure with no stack trace.
Udacity suggests that students take their Intro to Programming class first (or have comparable knowledge), but I actually suggest some more practice with programming before tackling web development. There are enough new concepts in this course that you don’t want to still be struggling with basic programming concepts.
The next logical course (which doesn’t yet exist on Udacity) would be one that focuses more on the front-end. CSS is briefly touched on in this course, but nothing with JavaScript. Navigating the challenges of web UI would certainly make an interesting course that I’m looking forward to.