-
Notifications
You must be signed in to change notification settings - Fork 4
Course Overview
- Some Epictetus to Live By
- About Me
- Course Location and Info
- Office Hours
- JavaScript Style
-
Books
- Read First:
- Then Read:
- [For Additional Resources and Recommended Reading and Screenscasts Specific to the Final Project,](#visit the Resources wiki page|Resources)
- Editors and IDEs:
- NPM
- Useful NPM packages:
- One More Quote to Live By
Welcome to ColumbiaJS
On Self-improvement
If you want to improve, be content to be thought foolish and stupid. ― Epictetus
And slowing down one's thought process
The actual process of self-improvement is initially a matter of consciously slowing down one's thought processes to allow for reflection prior to assent. “Impression, wait for me a little. Let me see what you are, and what you represent” (2.18.24). As the habit of screening impressions becomes established, correct responses will begin to come automatically. Yet constant vigilance is still required, to guard against backsliding (4.3). One can never rely solely on habituation.
Lev Brie [email protected]
Did my undergrad here and at Stanford. Did a Masters in France in linguistics and literary theory. Started a PhD. in Philosophy - dropped out to become an entrepreneur. Discovered CS. Never looked back.
M.S. in C.S. from Columbia Founder and CEO: Telepath, https://telepath.io
PROGRAMMING LANG: JAVASCRIPT
Call Number: 15850
Day/Time: W 2:10pm-4:00pm
Location: 825 Seeley W. Mudd Building
DATES: 1/20 - 3/9/15
Instructor: Lev Brie Office Hours: Wed. 10-2, CSB 457
T.A. Morris Hopkins Office Hours: Saturday, 10-2, 825 Mudd
JSHint will be the primary enforcer of JavaScript coding conventions in this course, but as we get deeper into the language, we'll also start to look at the two style guides below to give us more detailed guidance. JSHint will be run whenever you save out your files (I'll provide you with seed projects that already have the tooling you need all set up and ready to go, but I'll also spend some time introducing you to JavaScript's most popular build tools).
Refer to the Google JavaScript Style Guide as a general guide. I will disagree with it on some points as we get deeper into the language, but we'll take it as a nice baseline.
Once we start to work with more advanced code, we'll start to adhere more closely to John Papa's AngularJS Style Guide in terms of how we write our code (even outside of Angular).
Please note that you can get many of these books for free when you subscribe to either tutsplus.com ($90/year for a student membership, which quickly pays for itself in books) or to PacktPub directly, for the PacktPub books.
- Object-Oriented JavaScript - Stoyan Stefanov
- Learning JavaScript Design Patterns - Addy Osmani
- You Don't Know JS: Scope and Closures - Kyle Simpson
- You Don't Know JS: this and Object Prototypes - Kyle Simpson
For Additional Resources and Recommended Reading and Screenscasts Specific to the Final Project, visit the Resources wiki page:
Recommended:
- VIM
- Sublime Text - Recommend, although I recommend using it in Vintage mode (i.e. as a Vim editor)
- Atom editor - not quite ready for prime time
- WebStorm - by far the best IDE for JavaScript development
Command Line:
- zsh
- oh-my-zsh or on github
- rcm
- antigen - perhaps better than oh-my-zsh, although I got on the oh-my-zsh bandwagon before antigen became a viable alternative
- more awesome zsh plugins and frameworks
OS X application management:
-
homebrew - The missing package manager for OS X - on github at https://github.com/Homebrew/homebrew:
Install Homebrew with
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
then$ brew install node
if you want to manage node through homebrew - homebrew-cask - A CLI workflow for the administration of Mac applications distributed as binaries http://caskroom.io
Databases:
-
MongoDB - the only database you'll need for this course: install with
$ brew update && brew install mongodb
- redis
- mongoose - Mongoose MongoDB ODM
- n - Node version manager
- nvm - the node version manager - Node Version Manager - Simple bash script to manage multiple active node.js versions
- Commander.js - node.js command-line interfaces made easy
- lodash - A utility library delivering consistency, modularity, performance, & extras. - https://github.com/lodash/lodash
- request - Simplified HTTP request client.
- q - A library for promises (CommonJS/Promises/A,B,D)
- pg PostgreSQL client - pure javascript & libpq with the same API
- fs-extra - contains methods that aren't included in the vanilla Node.js fs package. Such as mkdir -p, cp -r, and rm -rf.
- http-server - a simple zero-configuration command-line http server
- karma - A Spectacular Test Runner for JavaScript
- shelljs - Portable Unix shell commands for Node.js
- marked - A markdown parser built for speed
- mongodb - A node.js driver for MongoDB
- bluebird - Full featured Promises/A+ implementation with exceptionally good performance
- mysql - A node.js driver for mysql. It is written in JavaScript, does not require compiling, and is 100% MIT licensed.
- chalk - Terminal string styling done right. Created because the
colors
module does some really horrible things. - socket.io - node.js realtime framework server
Testing Frameworks: mocha - simple, flexible, fun test framework
How long are you going to wait before you demand the best for yourself and in no instance bypass the discriminations of reason? You have been given the principles that you ought to endorse, and you have endorsed them. What kind of teacher, then, are you still waiting for in order to refer your self-improvement to him? You are no longer a boy, but a full-grown man. If you are careless and lazy now and keep putting things off and always deferring the day after which you will attend to yourself, you will not notice that you are making no progress, but you will live and die as someone quite ordinary. From now on, then, resolve to live as a grown-up who is making progress, and make whatever you think best a law that you never set aside. And whenever you encounter anything that is difficult or pleasurable, or highly or lowly regarded, remember that the contest is now: you are at the Olympic Games, you cannot wait any longer, and that your progress is wrecked or preserved by a single day and a single event. That is how Socrates fulfilled himself by attending to nothing except reason in everything he encountered. And you, although you are not yet a Socrates, should live as someone who at least wants to be a Socrates. ― Epictetus