Learning Goals
Skill Proficiencies
Academic success in B3 means that students demonstrate proficiency and comfort with the concepts below. The expected mastery level can be understood with the following scale:
- Mastery: student is able to explain and implement the concept independently or with light reference
- Functional: student recognizes when to use the concept and can implement it with the support of documentation and/or a collaborator
- Familiarity: student can recognize and describe the concept when needed/appropriate, but is not able to implement the technology/technique
Mastery
Object Oriented Programming
- Students are able to use classes and methods to make abstractions that improve code quality
- Students are able to write classes that demonstrate encapsulation of data
- Students are able to explain how their code achieves abstraction and encapsulation
- Students are able to apply MVC principles to separate responsibilities appropriately
APIs
- Students are able to expose an API.
- Students are able to consume external APIs
Testing
- Students are able to test external API consumption
- Students are able to test API exposure
Functional
Project Management
- Students use pull requests to organize discussion about features.
- Students communicate with product owners with regard to missing deadlines.
- Students document intent and usage of their code for effective collaboration.
- Students translate acceptance requirements into user stories that are ready for work.
- Students utilize project management tools to communicate across technical teams and stakeholders/clients.
- Students implement feedback from a code review to improve quality.
- Students provide feedback in the form of a code review to improve quality and share knowledge.
- Students are able to understand and build on an existing code base
Self-Directed Learning
- Students formulate questions by synthesizing what was expected vs what was observed.
- Students find resources online or in print to help them learn new technologies.
- Students read documentation and implement strategies described.
- Students ask meaningful questions.
- Example: Don’t ask “How do I get this to work?” Instead, mention what has been tried, what happened, what was expected with a goal of understanding where you have made a wrong assumption.
- Students utilize mentors and other community members to identify and discuss the merits of various implementations.
APIs
- Students are able to use serializers to format json responses
- Students are able to authenticate users via OAuth
- Students are able to access the private resources of an OAuth-authenticated User
Advanced Rails
- Students are able to send email from a Rails app.
Testing
- Students are able to mock external HTTP requests using Webmock & VCR
Databases
- Students compose advanced ActiveRecord queries to analyze information stored in SQL databases.
- Students write basic SQL statements without the assistance of an ORM.
Familiar
Optimization
- Students are able to explain when to use caching strategies to improve performance in Rails.
- Students are able to explain the scenarios that would benefit from using background workers in Rails.
- Students are able to explain how indexes address slow queries.
- Students are able to avoid N + 1 queries
Front End Javascript
- Students are able to make API calls using
fetch
calls. - Students are able to use jQuery to traverse and manipulate the DOM.