Repository navigation
Home
Reid Greer edited this page Jul 29, 2016
·
2 revisions
(Or at least lightly familiarize yourself with...)
- pros and cons of JavaScript
- vs. other languages
- event loop
- scope / closures
- loops
- hoisting
- instantiation patterns
- truthy and falsy
- type coercion
- objects
- this
- bind / currying
- Best practices
- ES6
- HTTP requests and responses
- HTTP headers
- HTTP response codes
- HTTP basic auth
- What is a cookie?
- AJAX / JSONP
- ReST (and how it compares to SOAP, Graph, etc.)
- Asynchronous ReST
- What is the DOM?
- How would you design the DOM, if you had to make it from scratch?
- Outline how browsers keep your data secure
- What is a virtual DOM?
- What happens when you load a page?
- Event handling and bubbling
- semantic markup
- Responsive & Adaptive design
- block vs inline
- Client-side vs. server-side rendering
- templating
- how is HTML rendered by the browser?
- what is "reflow"?
- accessibility
- what does "cascading" mean?
- how do you organize your stylesheets, and why?
- selectors
- computing specificity
- pseudo-classes
- box model
- how does CSS help to make a responsive web app?
- CSS libraries
- Node
- what is a server?
- what is Node?
- Streams
- How does Node compare to other server-side technologies
- why Node is useful, why it might suck
- Useful packages
- Node-inspector
- Nodemon
- Express
- jQuery
- D3
- React
- Angular
- Backbone
- Ember
- git
- git basics
- git gotchas
- why do people refer to "the SHA-1"?
- merge vs rebase debate. where do you stand?
- GitHub
- problem decomposition
- Case-based reasoning
- Back-of-the-envelope
- "examplify"
- pattern-matching
- simplify then generalize
- Base case, then inductive reasoning
- How to apply scientific method to programming?
- Client-server
- Workers
- Service-oriented architecture
- Multi-tier architecture
-
MVC
- MV* (pronounced "MV-star")
- asynchronous programming
- Pub/sub
- Middleware
- ReST
- what should you consider when you design an API?
- DRY (related to "single source of truth")
- single-responsibility principle
- idempotency
-
loose coupling / separation of concerns
- cohesion versus coupling
-
statelessness
- "shared-nothing" architecture
- abstraction
- contracts (interfaces) between components
- TCP/IP
- TCP vs. UDP
- ports
- socket
- WebRTC
- DNS
- HTTP
- HTTPS
- hostnames
- domains and subdomains
- how email works
- proxy
- reverse proxy
- load balancer
- MIME types
- URI
- CDN
- DDOS
- standards/RFC's
- what really happens when you upload a file?
- Try / Catch
- Debugging with Chrome Dev Tools
- Black-box vs white-box
- Regression testing
- Unit testing vs integration testing
- Smoke-testing vs end-to-end testing
- Testing libraries
- selenium
-
mocha, chai, etc
- can you use these on the fly? no harness or setup provided...
- Continuous integration
- Mocking & Stubbing
- How testing improves system design
- Hashing vs encryption
- Authentication vs authorization
- Common encryption ciphers
- Public-Private Key Encryption
- oAuth
- Same-origin policy
- XSS
- CORS
Today, all modern browsers support the async and defer attributes on scripts. These attributes tell the browser it's safe to continue loading the page, while the scripts are being downloaded.