Table of Contents
Why Are We Here?
This course was started to take the fear away from jumping into programming. Differential's purpose in leading this is to get more developers into our community and to show business leaders the power of technology. We also (selfishly) need awesome people to hire. We hope to create them here. Our goal is to teach the most we can in under 20 hours. We think that after 20 hours of instruction, everyone will be setup with the skills to continue growing on their own from there.
Why Are You Here?
Every individual will be different. It's really important to dive into your "why". Maybe it's to create a personal website, maybe it's to make sure you don't pay too much for development, maybe it's to get a job. Whatever the reason, know that you can achieve it.
Now for some motivation:
Course Levels
Level: Basic
- Understanding of Web Technologies
- Setup a new Mac to run Meteor
- Install Homebrew, Node.js, Meteor, Atom text editor on your Mac (OS X)
- Use the command line
- Navigate files and folders inside the command line (Terminal)
- “cd ~/folder/subfolder”, “cd foldername”, “cd ../moveupfolder”
- Create and run a new Meteor app locally
- Edit files and see changes
- Deploy simple app to Meteor free servers
Level: Core
- Deploy Meteor app to production environment
- Using Modulus (setup database with Modulus or Compose), set environment variables, using their command line tools
- Using MUP (Meteor-up) on digital ocean
- Understanding of Meteor folder structure
- Ability to navigate Meteor documentation
- Use source control with Github (with command line & GUI software)
- Create a local git repository
- Clone a remote repository
- Make commits with commit messages
- Push, pull, stash, merge, revert
- Make branches, merge branches, delete branches
- Set Up a new Differential Meteor project
- Clone meteor-boilerplate repository
- Create new github repo and change remotes
- Create production and/or staging production environments
- HTML / CSS necessary
- Team treehouse / code academy / code school / Mozilla docs / W3C as resources
- Installation and use of bootstrap grid and components (using documentation)
- Project #1 - Build a responsive single page content site with Bootstrap (with just HTML, CSS, JS) locally
- Project #2 - Build a responsive single page content site with Bootstrap (in Meteor)
- JavaScript Understanding - variables, objects, arrays, functions, loops, and methods
- Javascript: The Definitive Guide (v7) is a great resource
- Understanding of Iron-Router - layouts, yields, and router
- Installation of packages
- Ability to upgrade Meteor and Meteor packages
- Translate Design Assets (photoshop, sketch, illustrator) into a functional deployed website
- Advanced CSS, animations, responsiveness
- Project #3 - Build a responsive multi-page content site with Bootstrap (in Meteor)
- Take an input from a HTML form and store that data in the database
- Edit the data from the database using a database management tool (like Robomongo)
- Create other forms to edit the data
- Create methods to add and delete data
- Use templates to display data stored in your database
- Project #4 - Build an interactive web application with Bootstrap and Meteor
- Enable multiple roles in a web application (admins and users -- or buyers and sellers)
- Perform multiple data collection CRUD applications
- Project #5 - Build a Multi-role web application
- Get inputs from external APIs
- Authorization and Authentication
- GET, POST, PUT methods
- Import data from Excel / CSV (a third party library)
- Chart and Graphs (a third party library)
- Searching (simple search - by names or values)
- Filtering
- Maps (google maps)
- Dynamic pages (like blog posts)
- General Security (how to protect)
- Debugging
- Client console usage and debugging
- Server console usage and debugging
- Error handling - what happens when an api returns an error
- Field Validation - what happens when a form field is not valid
- SEO (setting up meta tags, etc)
- Event Tracking (GA + others)
- Ability to use dates / times (use moment)
- Adding meteor and npm packages (and use by reading documentation)
- Emails (mailgun, mandrill, etc -- when to send)
- Storing images, documents, files locally
- Storing images, documents, files to Amazon S3 (this is amazon storage)
- Combining data collections (Reactive Joins)
- Billing & Subscriptions (Stripe)
Level: Intermediate
- Make pull requests, test pull requests, merge pull requests
- Meteor Package Development
- Create a meteor package
- Edit someone else’s meteor package and submit pull request
- Fork someone else’s meteor package and deploy your own
- Write tests and ensure test coverage
- Code pre-processing tools to enhance productivity (LESS, SASS, Jade, Coffeescript)
- Ability to evaluate, integrate, third-party packages and libraries
- Scaling apps
- Load testing / performance tests
- Advanced searching (elastic search)
- Integrating different databases
- Database import / export / migrations
- Calendar integration
- Create your own API (enable others to get to their / your data)
Level: Professional
- Estimate Projects
- Evaluate existing projects / code bases
- Plan extensive architectures
- Lead a team of developers and designers to work together on projects
- Write packages and libraries for efficiency and functionality
Level: Expert
- Write packages, libraries, pull requests on the core infrastructure of Meteor
- Write integrations to external systems and databases
Level: World Class
- Invent ground-breaking core technologies
- Spread adoption to developers
- Break down and solve enterprise concerns
Guidelines for Success
- Weekly Checkins
- Communication with cohort and/or coaches (slack channel, weekly meetings, etc)
- Tiered learning
- Seeing actual examples of code (code and gif screencasts)
- Use plain language to explain, but then can use the technical terminology moving forward.
- Tutorials
- Personalized projects
Resources:
- Meteor Documentation (http://docs.meteor.com)
- Meteor Tutorial (http://meteor.com)
- Discover Meteor book (http://discovermeteor.com)
- Your First Meteor Application book (http://meteortips.com/book/)
- Javascript: The Definitive Guide (http://www.amazon.com/JavaScript-Definitive-Guide-Activate-Guides/dp/0596805527)
- Team Treehouse (http://teamtreehouse.com) for HTML / CSS guides
- Differential’s github (http://github.com/differential) and blog (http://blog.differential.com)