Module 3 Success

Completion Requirements

In order to graduate from Module 3, students must complete each of the following:

Final Assessment

Students must meet the expectations laid out in the final assessment rubric document.

Independent Work

APIcurious: Students are expected to complete APIcurious as an independent project. While this project is not graded, it contains the most important and, for many, the most difficult concepts of the Mod. Students who don’t score 3 or higher in all of the categories of the rubric often struggle throughout the remainder of Mod.

Self Directed: Students should pick projects that will help them in the job hunt and should start gaining comfort taking on new technologies with minimal guidance from instructors. The goal is to get to a point where you are job ready, taking on stories without explicit instructions.

Group Work

Rales Engine: Students, as a pair, build an API using advanced ActiveRecord techniques.

Battleshift: Students, as a pair, build additional functionality on top of a brownfield code base with tech debt that should be paid down.

Career Development

The Mod 3 career development curriculum centers around learning to tell your story and beginning your job hunt.

Portfolio

Each student will prepare a presentation following the requirements outlined in the Mod 3 Portfolio Document.

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

Professional Skills

Project Management

  • Students communicate with product owners with regard to missing deadlines (functional)
  • Students understand the process by which business requirements are turned into acceptance requirements (familiar)
  • Students introduce how acceptance requirements are turned into stories and feature requirements (functional)
  • Students use pull requests to organize discussion about features (mastery)
  • Students utilize project management tools to communicate across technical teams and stakeholders/clients (familiarity)

Interpersonal Skills

  • Students collaborate with teammates with tools that could be used by remote teams (functional)
  • Students communicate around code, explaining what it does and why (functional)
  • Students formulate questions by synthesizing what was expected vs what was observed (mastery)
  • Students explain intent and execution of their code (mastery)
  • Students document intent and usage of their code for effective collaboration (functional)
  • Students use pull requests to organize discussion about features (functional)
  • Students implement feedback from a code review to improve quality (familiarity)
  • Students provide feedback in the form of a code review to improve quality and share knowledge (familiarity)

Self-Directed Learning

  • Students find resources online or in print to help them learn new technologies (mastery)
  • Students read documentation and implement strategies described (mastery)
  • Students utilize mentors and other community members to identify and discuss the merits of various implementations (functional)
  • Students ask meaningful questions (mastery)
    • 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.

Agile Processes

  • Students use an agile process to turn acceptance requirements into deployed software (funcitonal)
  • Students translate acceptance requirements into user stories that are ready for work (functional)
  • Students verify acceptance requirements using automated testing (mastery)

Technical Skills

Advanced Rails

  • Students are able to contrast the different approaches between working on greenfield and brownfield projects (familiarity)
  • Students are able to develop and test secure internal APIs using Rails (mastery)
  • Students are able to consume external APIs and test the consumption (mastery)
  • Students are able to critique previous projects for fundamental security flaws and understand how to prevent them (famliarity)
  • Students are able to send email from a Rails app (functional)
  • Students compose advanced ActiveRecord queries to analyze information stored in SQL databases (functional)
  • Students utilize and debug the Rails asset pipeline locally and in production (functional)

App Performance

  • Students are able to explain when to use caching strategies to improve performance in Rails (familiarity)
  • Students are able to explain the scenarios that would benefit from using background workers in Rails (familiarity)

JavaScript in the Browser

  • Students are able to use jQuery to traverse and manipulate the DOM (functional)
  • Students are able to make API calls using fetch calls (familiarity)

PostgreSQL & SQL

  • Students write basic SQL statements without the assistance of an ORM (functional)
  • Students intelligently structure/normalize data so as to maintain reasonable performance as the data size increases (familiarity)
  • Students use the CLI to understand the structure and data of their database (ex: list databases, tables, table structure) (familiarity)
  • Students implement indexes to address slow queries (familiarity)