- Explain at a high level how the Internet transmits data.
- Distinguish between the Internet and the World Wide Web.
- Understand why HTML CSS and JavaScript work together so well.
- Articulate what an API is.
- Edit and update an HTML file.
- Recognize common HTML tags and attributes.
- Describe the structure of an HTML document.
- Target elements using CSS selectors.
- Compare and contrast block, inline, and inline-block elements.
- Draw the CSS box model.
- Explain the uses of Git and GitHub for tracking their changes and collaborating on projects.
- Draw a model of local, remote, and working copies of their repositories.
- Write some code, commit the changes, and write a strong commit message.
- Deploy first live website using gh-pages.
- Reason through boolean logic.
- Write semantically & syntactically correct conditional statements.
- Compare & contrast for and while loops.
- Identify the differences between defining a function and calling a function.
- Demonstrate proper function naming conventions.
- Compare and contrast a function that prints a value and a simple function that returns a value.
- Draw a model of a function that includes arguments as input, side effects, and return values as output.
- Explain the keyword
this
in the context of different scopes.
- Solve broken code by reading and solving error messages.
- Interact with the JavaScript on the page through the console.
- View the DOM and styling through the console.
- Describe and draw the document object model (DOM) of an HTML document.
- Manipulate the DOM and styling through the console.
- Compare and contrast JavaScript & JQuery.
- Select elements from the page using CSS Selectors.
- Explain what DOM events are and how they are triggered.
- Attach event listeners to DOM elements.
- Target the source of the event.
- Respond to events with a callback.
- Explain event propagation.
- Use appropriate iterator methods to declaratively loop through collections
- Follow the order of execution in a program that uses callbacks
- Write a higher-order function that calls a custom callback
- Craeate an object that contains a variety of data types
- Access attributes of an object using
.
syntax and[]
syntax - Articulate the usefulness of JSON
- Compare and contrast the available input options for HTML forms
- Use a method and an action to submit form data
- Generate query parameters using a form
- Articulate why AJAX is useful and how it works
- Create an AJAX request that fetches data
- Describe the meaning of
method:
,url:
, andonSuccess:
keys for jQuery's$.ajax
object
- Articulate the usefulness of data templating in the browser
- Create and compile a Handlebars template
- Use Handlebars templating to display JSON data
- Instantiate new objects using Javascript constructors
- Create shared methods amongst instances with prototypes
- Model real-world data and relationships with JavaScript objects
- Draw a diagram of the request response cycle with Nodejs and Express included and labeled
- Describe the roles that Nodejs and Express play in building a server
- Use
npm
to initialize a node project - Write a local web server to serve JSON and static assets with Express
- Create flexible, dynamic routes with parameterized route urls
- Process data sent to a server through query strings
- Process data sent from named form fields with POST requests
- Follow a testing suite to build a functional API
- Apply your knowledge Express to build a full CRUD API
- Differentiate and relate the concepts of schemas and models in Mongoose
- Create Mongoose schemas & models and use Mongoose model instances
- Describe the relationship between Mongoose with Express and integrate the two in their projects
- Describe one-to-one, one-to-many, and many-to-many data relationships
- Write mongoose schemas that can reference and embed data
- Reflect model relationships in server routes
- Compare and contrast several development methodologies
- Define features as user stories
- Inform a UI with mockups
- Conduct a scrum
- Deploy server side code to Heroku so that your APIs will be publically accessible
- Write an API documentation endpoint at the ‘/’ path
- Build an API from scratch
- Articulate a set of steps to determine Big O complexity.
- List the Big O complexities of some commonly-used patterns and algorithms.
- Estimate the time or space efficiency of an algorithm using Big O notation.
- Describe bubble sort algorithm and identify its advantages and disadvantages.
- Write a pseudocode version of bubble sort and a javascript version of bubble sort.
- Determine the runtime (in big-O() notation) for bubble sort.
- Explain three steps to create a recursive algorithm.
- Describe the merge sort algorithm and a merge algorithm.
- Write a pseudocode version of merge sort and a JavaScript version of merge sort.
- Determine the runtime (in big-O() notation) for merge sort.
- Explain the benefits of using Angular and describe the problems Angular aims to solve.
- Initialize Angular in an HTML view, and use expressions and templates to impact the DOM.
- Organize the code into controllers and connect the View & Controller using
this
. - Implement 2-way data binding.
- Inject a service into a controller.
- Read data with
$http
. - Create data with
$http
. - Update data with
$http
. - Delete data with
$http
. - Update the view to reflect a successful state change.
- Compare and contrast client-side and server-side routing.
- Add a module to an Angular project.
- Implement client-side routing with the
ngRoute
module. - Display view template files with the
ng-view
directive.
- Explain the justifications for using custom directives.
- Describe the directive definition object and implement it in creating a directive.
- Integrate a third party directive into your code.
- Create a custom directive.
- Explain the purpose of promises.
- Draw the lifecycle of a promise.
- Manipulate promises using Angular’s
$q
service.
- Explain motivations for using services.
- Create a custom service.
- Use promises in a custom service.
- List Ruby data types.
- Articulate strategies to learn new programming languages and frameworks.
- Run Ruby code in an interactive Command Line Interface or from a file.
- Write conditionals, loops, and methods in Ruby.
- Apply methods in ruby to solve problems.
- Explain the two main differences between Ruby methods and JavaScript functions: isolated scope and implicit return.
- Follow variable and method naming conventions (
lower_snake_case
,CONSTANT
,method_that_returns_boolean?
,destructive_method!
). - Prefer built-in methods when available.
- Use implicit return whenever possible.
- Define the OOP terms “class,” “instance,” and “inheritance.”
- Create your own classes and instances.
- Define attributes and methods for instances or for the class as a whole.
- Explain and implement the class-based inheritance pattern.
- Justify writing unit tests.
- Explain important testing concepts: edge cases and test coverage.
- Read and explain Rspec tests.
- Write DRY and effective test code using RSpec.
- Articulate the Rails philosophy and the MVC pattern.
- Start a Rails project with no database and create routes that render dynamic templates.
- Distinguish between Express and Rails.
- Create a model that inherits from ActiveRecord class
- CRUD data in the database using our model
- Write a migration to define a database schema
- Update our database schema with another migration
- Describe how layouts, views & partials work together.
- Recognize rails url helpers and path helpers.
- Explain benefits of using Rails form helpers and link helpers.
- Find and determine correct syntax for Rails form helpers and link helpers.
- Use the flexbox grid system and styling techniques.
- Navigate, position, and style different elements using flexbox.
- Add and remove columns from the database.
- Alter an existing column.
- Explain when it is okay to edit a migration and when it is okay to edit the schema.
- Describe how relational databases can be used to create associations between resources.
- Create one to-many-model relationships in Rails.
- Create many to-many-model relationships in Rails.
- Describe the request and response cycle's relationship to the stateless web.
- Discuss and use an HTTP Cookie in a web application.
- Differentiate between an HTTP Cookie and a Session.
- Build routes, controllers, and views for user sign up, log in, and logout.
- Implement a
User
model that securely stores hashed passwords withhas_secure_password
. - Compare and contrast authentication and authorization.
- Explain benefits of using the Rails asset pipeline.
- Describe how the asset pipeline works.
- Require custom and third-party assets in Rails.
- Use built-in ActiveRecord validation methods to validate database entries.
- Display errors in the view using Rails flash messages.
- Set breakpoints to check your assumptions.
- Work on coding projects with a larger group.
- Follow good practices for branching.
- Identify your strengths and weaknesses as a teammate
- Explain at least one best practice or convention from user experience design (e.g., consistency, calls to action).
- Incorporate UX questions into project planning:
- Who is the user?
- What is the user’s motivation for coming to this page?
- What is the main thing the user should do on each page?
- Discuss a time when you collaborated with a user experience designer.
- Describe the low-level structure of arrays and linked lists.
- Manipulate linked lists.
- Describe a stack by its methods and last in, first out (LIFO) behavior.
- Build stack methods using linked list methods.
- Describe a queue by its methods and first in, first out (FIFO) behavior.
- Build queue methods using linked list methods.
- Compare and contrast stacks and queues and appropriately choose which is better for a given situation.
- Describe and draw the structure of a hashmap.
- Explain properties of a good hash function.
- Perform runtime analysis on the hashmap data structure.
- Explain the relationship between graphs, trees, and binary search trees.
- Draw a balanced binary search tree from some given data.
- Use binary search trees in answering interview style challenge questions.
- Describe and draw breadth-first tree traversal.
- Pseudocode breadth-first search.
- Identify use cases for breadth-first search.
- Describe and draw depth-first tree traversal.
- Compare and contrast depth-first and breadth-first.
- Pseudocode depth-first search.
- Identify use cases for depth-first search.
- Navigate a large, mature project.
- Submit pull requests to contribute code changes to projects you do not own.
- Explain the role of a build tool like Gulp or webpack.
- Create and render React a component in the browser.
- Explain what JSX is and how it’s important to React.
- Navigate a large, mature project.
- Submit pull requests to contribute code changes to projects you do not own.
- Explain the meaning of
const
,let
, and arrow function (=>
) in ES6 - Build a basic React component
- Explain the role of each technology within the MEN/MEAN stack.
- Give detailed account of the purpose of the different files and folders that make up a MEN/MEAN app.
- Explain basic Angular setup and write examples of important built-in directives.
- Identify key Angular concepts: directives, controllers, templates, services, client-side routing.
- Communicate with potential employers using appropriate technical terms.
- Demonstrate knowledge of software construction patterns and best practices.
- Consider design and implementation alternatives, and make decisions based on relevant characteristics of the problem and available tools.
- Demonstrate awareness of (1) real-world technical development practices and (2) concerns related to the target company, including testing and security.
- Explain key steps of a framework-independent local authentication strategy.
- Authenticate users in Express.
- Restrict access to data based on whether a user is authenticated.
- Describe alternate authentication or authorization strategies.