This list may change from time to time, but the majority of it should remain the same.

Programming Principles

  • Variables,
  • Operators
  • Understanding Different Data
  • Types
  • Code style/convention
  • Navigating/working in terminal
  • Functions/Methods
  • Loops
  • Conditionals/Ternary
  • Objects/Associative Arrays

Problem Solving

  • Able to apply learned method/algorithm to new scenario
  • Able to combine methods/algorithms to solve problems
  • Ability to solve problems by using known methods and learning finding new methods through breaking down a problem into smaller pieces
  • Ability to recognize their involvement in the problem solving process
  • Ability to solve complex contrived problems
  • Ability to solve complex real-world problems

Static Websites

  • Bare-bones HTML
  • Document
  • Open HTML pages in a browser
  • CSS Selectors, colors, fonts
  • Linking external JavaScript files in HTML
  • Inline/Block elements
  • Semantic HTML
  • CSS Box model
  • Multiple linked HTML pages
  • Understand how a browser works
  • CSS Layout, Positioning, Sizing, Flexbox
  • Responsive Design, media queries
  • HTML Events, JavaScript EventListeners
  • JS DOM Manipulation
  • CSS
  • Transitions/Animations
  • AJAX

Web Applications

  • Difference between web app and web site
  • Build very basic web apps (site is functional and based on use rinteraction)
  • Forms
  • Making HTTP calls
  • Accessing External
  • APIs
  • Single-page Applications (SPA)
  • Reusable web components and services
  • Understand JSON
  • Writing a server (Node.js/Express)
  • Modular JavaScript
  • Database CRUD
  • User authentication/restricting routes
  • JWTs/token authentication
  • Saving multiple users' data (with db, with auth)
  • Password Hashing and security measures

Version Control

  • Understand need for Version Control
  • Create new local and remote repositories
  • Stage files for commitCreate a new commit/practicing good commit messages
  • Push changes to a remote repo
  • Pull from remote repo
  • Clone repo
  • Changing remote url
  • Unstaging files
  • Reverting back to a past commit
  • Creating, reviewing, accepting PRs
  • Using Git within a team

Database

  • Understand what a database is and why it’s useful
  • Set up databases for the first time on their own computer and learn how to run the database server
  • Understand relational vs. non-relational databases
  • Working in the shell (CRUD)
  • Connect to a database in code
  • Perform CRUD operations in code
  • Models (Mongoose Schemas, Postgres Models/tables)

HTTP/API

  • What HTTP stands for, basics about protocols
  • What an API is
  • Understand the basics of the Request/Response cycle
  • Access data from an API (Postman)
  • GET, PUT, POST, DELETE, and how they map to CRUD
  • Access an external API in code
  • URL Params and Query Strings
  • Understand RESTful architecture
  • Create own full-fledged RESTful API
  • Troubleshooting/Debugging
  • Understanding what debugging is
  • Elements tab
  • Altering CSS in dev tools
  • Using Google
  • Debug syntax errors
  • Gaining insight from errors
  • Write code in dev console
  • Watch expressions
  • Semantic comments in code
  • Reading documentation
  • Debug semantic errors
  • Looking up answers to errors
  • Gaining insights from stack overflow
  • Network calls
  • Using breakpoints
  • Self-documenting code w/ semantic comments

Project Management

  • Knowledge of available tools (task management, communication, documentation)
  • Knowledge of common team roles
  • Requirements gathering
  • Agile Scrum methodology
  • Efficient standups

Deployment

  • Opening static HTML files in the browser
  • Running local server
  • Understanding IP Addresses