Skip to content

sf-wdi-31/learning-objectives-checklist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 

Repository files navigation

WDI 31 Learning Objectives

This README collects the learning objectives from weekly checklists, which are mostly taken directly from workshop learning objectives.

If you'd like to have persistent check marks, feel free to fork this gist version.

Solidifying and Maintaining Skills

  1. What are your remaining areas for improvement? What skills you think you should practice to maintain them?

  2. Create a list of technologies you want to review, and note these in the Project tab of your Outcomes Job Search Tracker. You can refer to the giant list of objectives below if you'd like. You can also list "soft" skills that you'd like to develop further.

  3. For each techonology or goal, what resources will you use to develop these? Meetups, peer support, online resources?

  4. When do you plan to start? How many hours a week will you dedicate to this? Is there someone else in class you’ll track progress with?

Plan these steps out in the ‘Project’ tab of your Outcomes Job Search Tracker.

Exploring New Frontiers (Optional)

  1. What new languages/frameworks/tools you want to experiment with?

  2. How will you learn more about these topics? Will you use meetups, online tutorials, meet with engineers in your network?

  3. When do you plan to start, and how many hours a week will you spend?

Use the ‘Project’ tab of your Outcomes Job Search Tracker over the weekend to plan these steps out.

Week 1 Learning Objectives

###The Internet

  • 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.

###HTML & CSS

  • 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.

###Git & Github

  • 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.

###Control Flow

  • Reason through boolean logic.
  • Write symantec & syntactically correct conditionals statements.
  • Compare & contrast for and while loops.

###Functions

  • 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.

###Dev Tools & Debugging

  • 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.

###DOM Manipulation

  • 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.

###DOM Events

  • 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.

Week 2 Learning Objectives

###Iterator Methods & Callbacks

  • 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

###Objects

  • Create an object that contains a variety of data types
  • Access attributes of an object using . syntax and [] syntax
  • Articulate the usefulness of JSON

###HTML Forms

  • 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

###AJAX

  • Articulate why AJAX is useful and how it works
  • Create an AJAX request that fetches data
  • Describe the meaning of method:, url:, and onSuccess: keys for jQuery's $.ajax object

Data Templating w/ Handlebars

  • Articulate the usefulness of data templating in the browser
  • Create and compile a Handlebars template
  • Use Handlebars templating to display JSON data

Object Oriented JavaScript

  • Instantiate new objects using Javascript constructors
  • Create shared methods amongst instances with prototypes
  • Model real-world data and relationships with JavaScript objects

Week 3 Learning Objectives

###Express

  • 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

###Params and Routes

  • 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

###CRUD App

  • Follow a testing suite to build a functional API
  • Apply your knowledge Express to build a full CRUD API

###Mongo/Mongoose

  • 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

###Mongoose relationships

  • 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

###Agile Development

  • Compare and contrast several development methodologies
  • Define features as user stories
  • Inform a UI with mockups
  • Conduct a scrum

###Personal API & Heroku

  • 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

Week 5 Learning Objectives

###Big O

  • 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.

###Bubble Sort

  • 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.

###Merge 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.

###Intro Angular

  • 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.

###Angular $http

  • 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.

###Angular Client-side Routing

  • 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.

Week 6 Learning Objectives

###Custom Directives

  • 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.

###Make a Directive

  • Create a custom directive.

###Promises

  • Explain the purpose of promises.
  • Draw the lifecycle of a promise.
  • Manipulate promises using Angular’s $q service.

###Services

  • Explain motivations for using services.
  • Create a custom service.
  • Use promises in a custom service.

Week 7 Learning Objectives

###Intro Ruby

  • 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.

###Ruby Methods

  • 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.

###Idiomatic Ruby

  • 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.

###Ruby OOP

  • 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.

###Rspec

  • 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.

###Rails Intro

  • 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.

###Active Record

  • 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

###Rails Views

  • 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.

###Flexbox (Power Hour)

  • Use the flexbox grid system and styling techniques.
  • Navigate, position, and style different elements using flexbox.

Week 8 Learning Objectives

###Migrations

  • 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.

###Associations

  • 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.

###Cookies and Sessions

  • 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.

###Rails Auth

  • Build routes, controllers, and views for user sign up, log in, and logout.
  • Implement a User model that securely stores hashed passwords with has_secure_password.
  • Compare and contrast authentication and authorization.

###Asset Pipeline

  • Explain benefits of using the Rails asset pipeline.
  • Describe how the asset pipeline works.
  • Require custom and third-party assets in Rails.

###Error Handling and Validations (Power Hour)

  • 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.

Week 9 Learning Objectives

###Collaboration

  • Work on coding projects with a larger group.
  • Follow good practices for branching.
  • Identify your strengths and weaknesses as a teammate

###User Experience

  • 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.

###Linked Lists

  • Describe the low-level structure of arrays and linked lists.
  • Manipulate linked lists.

###Stacks

  • Describe a stack by its methods and last in, first out (LIFO) behavior.
  • Build stack methods using linked list methods.

###Queues

  • 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.

###Hashmaps

  • Describe and draw the structure of a hashmap.
  • Explain properties of a good hash function.
  • Perform runtime analysis on the hashmap data structure.

Week 10 Learning Objectives

###Trees

  • 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.

###Breadth First Search

  • Describe and draw breadth-first tree traversal.
  • Pseudocode breadth-first search.
  • Identify use cases for breadth-first search.

###Depth 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.

###Debugging Lab

  • Navigate a large, mature project.
  • Submit pull requests to contribute code changes to projects you do not own.

###React & Build Tools

  • 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.

Week 11 Learning Objectives

Debugging (Publify lab)

  • Navigate a large, mature project.
  • Submit pull requests to contribute code changes to projects you do not own.

ES6 and React

  • Explain the meaning of const, let, and arrow function (=>) in ES6
  • Build a basic React component

MEN/MEAN stack review

  • 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.

Take-Home Coding Challenges

  • 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.

Local Auth with Express

  • 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.

Releases

No releases published

Packages

No packages published