Coding Resources

Its time to code! This page provides a list of resources you will probably find useful when writing code for your assignments (and beyond).

Editors

It is important to set up the right coding environment to work in. Choose an IDE (fancy abbreviation for text editor) that fits your needs and personal preferences. Given CS 179 mostly deals with web-programming, Visual Studio Code, Atom, or Sublime should be sufficient. They are equally good although VSCode and Atom are getting more popular these days.

Visual Studio Code Open-sourced text editor created by Microsoft. Comes with useful built-in plugins (e.g., github, terminal etc). Faster like Sublime but more usable like Atom.
Atom – Open-sourced text editor created by Github, a huge developer community and lots of plugins. It’s known for a bit slow performance but getting better over time.
Sublime – Text editor for a wide range of tasks. Tab-based and therefore clearly arranged.
Notepad Plus Plus – Popular text editor and nice alternative to Sublime.
Aptana – Complex text editor for larger projects.
WebStorm – Complex text editor for larger projects.

Web Development

The following resources will help you get started with web development.
DevDocs – Unified documentation on all web technologies
JavaScript Guide – Recommended reading on JavaScript!
Codecadamy HTML & CSS Tutorial – Recommended tutorial on HTML and CSS!
Dive Into HTML5 – Homepage

Javascript libraries to make your website cooler and more interactive:
jQuery – Recommended reading on jQuery!
Bootstrap – Recommended introduction to Bootstrap!
underscore.js – Recommended tutorials on underscore.js!
lodash

Further Resources:
Enabling Web Developer Extensions in the Browser
Eloquent Javascript Book
Mozilla Developer Network

JSON:
JSON Viewer – JSON viewer in Chrome
Describes how to get HTML5 Geolocation
How to turn URL response into JSON object

Other Useful Resources

Javascript Frameworks
React.js
Vue.js

CSS Frameworks
Bulma
Spectre.css
Milligram
Materialize.css
SemanticUI
Pure.css
More frameworks here

Animation
Animate.css
anime.js
Velocity.js

Map Components+
Leaflet.js
Openlayers
Polymaps

Other UI Components
Slick – Carousel
Popper.js – Tooltip & Popover
Cleave.js – Input formatting
Vidage.js – Full screen background video
deeplearn.js – Machine Learning

Post-WIMP Interaction
Hammer.js – Touch gestures
Interact.js – Drag & drop with multi-touch gestures
$P-Recognizer – Custom gesture recognizer
tracking.js – Object tracking using webcam
Affective – Emotion recognition using webcam
Web Speech API – Speech recognition

Data Visualization
Vega-lite
D3
RAW Graphics
Datawrapper

Drawing & Graphics
three.js
paper.js
p5.js
PixiJS

Icons
Noun Project
Flaticon
FontAwesome

Time
date-fns
Luxon
Moment

Hosting

CS179 does not provide hosting space. We recommend you get free web hosting, for example:
Atspace
DreamHost
AWS
Github Pages
Also feel free to use any other hosting platforms of your preference.

Git

You will probably need version control at some point when collaborating on a project. Get familiar with GIT (or any other versioning system, but GIT is the most popular). Here are some resources to learn GIT.
Official git command line and GUI clients, official documentation
GitHub Client for Mac
GitHub Client for Windows
SourceTree for Mac and Windows
TortoiseGit for Windows
Setting up git
Understanding git conceptually

Mobile Testing

In case you’re looking to resize your browser window to emulate your cellphone, the following might be helpful:
Chrome extension
Firefox Developer Tools