Front-end Engineering

Module Aims

By the end of module one, students will:

General
  • Understand how the internet works and the roles of HTML, CSS, and JS in front end engineering.
  • Understand the what, why, and how of code libraries.
  • Exhibit comfort using terminal to navigate through directories, adding and moving files
  • Demonstrate an ability to research documentation and apply it correctly in their code.
HTML
  • Use semantic tags.
  • Write well structured markup w/ proper nesting.
  • Follow industry style and naming conventions.
  • Create forms using correct structure and form elements.
  • Craft markup utilizing best practices for accessibility.
CSS
  • Understand and leverage cascading styles.
  • Know when to use ids and classes, & add multiple classes in markup.
  • Write idiomatic css.
  • Understand positioning and employ various approaches appropriately.
  • Understand and implement responsive layouts.
  • Practically apply css animations in user interactions design.
  • Understand basic performance issues introduced by CSS and be mindful of those considerations when crafting their CSS.
  • Use Dev Tools effectively to debug & read error messages.
Javascript
  • Exhibit a solid grasp of syntax, such that syntax does not inhibit student’s progress (the occasional quick reference is fine).
  • Use Dev Tools to debug & read error messages, specifically: making use of console to test data and code, isolating and manipulating the HTML and CSS of elements in the DOM.
  • Understand scope, and a beginner’s understanding of this binding.
  • Strong foundation in accessing data through arrays and objects (In/Out, transform).
  • Communicate coding solutions/questions w/ correct terminology.
  • Fundamental Code Concepts: variable assignment, functions, arguments/parameters, objects, arrays, data-types, local storage, conditionals/operators, DOM.
  • Array prototypes: students know the different methods and use them appropriately in a variety of circumstances.
  • Understand how browsers interpret/read code.
  • Understand how event bubbling and delegation work, and exhibit that understanding in manipulation of the DOM.
Testing
  • Understand the what and why for testing libraries and difference between test runner and assertion library.
  • Capable of test driving code with unit tests in mocha/chai.
  • Employ cross browser testing regularly throughout development.
  • Leverage test failure messages to debug and diagnose issues.
Refactoring
  • Refactor large functions into smaller functions.
  • Avoid the crutch of global variables.
  • Think/Write with an SRP mindset, and employ purposeful naming conventions/naming style in refactoring.
  • Lean toward working/functioning first, and not abstracting too early, but can identify opportune times in which to stop and refactor.