Curriculum

Here is a list of topics of subjects we think are important to try and hit for the continued education as well as employability of our students. When we’re doing sprint brainstormings and plannings, or any changes to the course itself, we should keep these goals in mind and push for things that accomplish them. Skills we want our learners to achieve:

Soft skills

  1. Teamwork

  2. Task management

  3. Task specification

    1. Feature specification as a stretch goal

    2. Project management negotiation

  4. Proactive communication (speaking their mind/don't be afraid to ask)

  5. Self-learning (Career descriptors & expectations as a stretch goal)

Hard skills (frontend/backend)

  1. React

    1. Client/server comms

    2. Reusable components

    3. Dataflow

    4. Complex data manipulation (useReducer, redux)

    5. Storage options on client

      1. Session

      2. Cookies

      3. indexedDB

    6. axios/fetch

  2. Node.js / express

    1. REST APIs

    2. Mentioning different js runtimes

    3. SQLite NoSQL

  3. Web frontend

    1. Implementing common and consistent design

    2. Important UI/UX concepts

    3. Responsive Design

  4. Testing

    1. Manual

    2. Automated (Unit + UI)

  5. Tooling

    1. Vscode extensions

    2. Package managers/registries (how to deal with unforeseen circumstances?)

    3. Git merging

  6. Debugging

  7. Clean code

    1. DRY

    2. Naming & conventions (code, docs)

    3. Documentation (README.md, Changelogs)

The final product that we want to produce:

  1. A project with a frontend communicating with a backend connected to a data store, transmitting data back and forth and modifying data on the backend

  2. The project represents an understanding of testing, debugging and clean code principles

  3. One meaningful visual test and one meaningful behavior/unit test set

  4. One meaningful complexity level apart from a plain backend/frontend communication (ex.: maps, complex auth, 3rd party API integration, realtime comms)

  5. Log of tickets/cards/milestones in the project