Skip to content

Instantly share code, notes, and snippets.

@colinkahn
Created January 12, 2014 23:19
Show Gist options
  • Save colinkahn/8392034 to your computer and use it in GitHub Desktop.
Save colinkahn/8392034 to your computer and use it in GitHub Desktop.

Web 101 - Links for learning how to program for the web

Overview

Broad overview of programming for the web. Web Platform is an effort to bring people information about developing for the web.

HTML and CSS

HTML and CSS are probably the easier of the three languages the web uses (JavaScript being the hardest).

HTML and CSS are considered declarative languages, where JavaScript is imperative. The difference is that declarative languages are about the "what"; they basically list out what you want in declarations and behind the scenes these are processed into something (for HTML and CSS your browser processes them and displays something on the screen). Imperative languages are about the "how"; they are most like a list of instructions that achieve some result (for the web, this usually involves updating the UI (user interface) in reaction to a user triggered event).

Javascript

JavaScript makes up the interactive part of the web. While it's completely possible to write an entire website with just HTML and CSS, if you're a web developer having experience with JavaScript is a huge plus.

For the web, JavaScript is the only programmatic way to interact with the DOM (Document Object Model). The DOM is a nested structure what your HTML turns into after the browser has processed it. Through JavaScript you can manipulate this structure on the fly, changing the interface and content users see based on events that can be listened for.

Learning

The following links are all resources online that either have courses or interactive lessons on programming. Obviously you'll be most interested in any that deal with HTML, CSS and JavaScript.

Libraries that make this stuff simpler

Like every profession, web developers use an ever increasing toolkit to quickly build sites. Below are some of the most popular.

Twitter Bootstrap has become the defacto way to quickly create a stylized interface. It includes all the components you need to build interfaces. At its core it is a library of CSS classes you can apply to HTML patterns to speed up development of frontend UIs.

jQuery is probably one of the most influential frameworks for web development in history. It allowed JavaScript developers to interact with the DOM using a simple, intuitive API. No longer were we using document.getElementById('some-button'), instead we used $('#some-button'), using the same selectors we were already using in our CSS. As a result, jQuery is often a dependency of many other libraries (for example, all of the JavaScript that comes with Twitter Bootstrap requires jQuery).

Backbone was created in response to the ever growing JavaScript codebases that were being developed to power interactive websites. While jQuery was a huge step forward, had no opinion on how you should structure your code. As a result many jQuery developed websites become "spaghetti code". Backbone gave developers a system to work in, a strategy for organizing their code and separating concerns, and the end result was more maintainable, easier to develop websites.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment