🧑🏾‍💻 Prep for trainees

🎯 🎯 Goals

Learning Objectives

Welcome to the Piscine.

Your goal is to build two group projects and one solo project over the next 22 days. For each project, your goal is to:

  • 🎯 Build a complete project that meets the requirements, including tests.
  • 🎯 Build a complete understanding of all the code in your project, because you will be asked to explain it.

Our goal is to find people who are ready to train in the Software Development Course. This means we are looking for people ready to begin working as a professional software engineer within the next 16 weeks. This is why we are looking at your ability to:

  • 🎯 Work in a team to build working software with tests.
  • 🎯 Write simple code independently.
  • 🎯 Explain your work to others in English.

These are the core goals of the Piscine.

⚖️ ⚖️ Expectations

Learning Objectives

Trainees, we expect you to:

  • Work in groups and individually, in class and during the week.
  • Show up on time and participate in all activities, including helping others.
  • Complete the projects in the way they are specified.
  • Do your best.

Trainees, you can expect:

  • Your team to work with you to complete the projects.
  • A fair assessment, explained clearly.
  • Help from volunteers and other candidates with your code and blockers.

We expect everyone to:

  • Help each other.
  • Do the prep.
🤔 How long is the Piscine?

🌱 Programming Prerequisites

Learning Objectives

Check your understanding.

Before you join the Piscine, you should have a secure understanding of a limited subset of programming concepts at a junior level. The projects, activities, and interviews are designed for people who have a working knowledge of the following foundational concepts:

JavaScript fundamentals

  • Variables: let, const
  • Primitive data types: String, Number, Boolean, undefined, null
  • Data structures: Array, Object
  • Navigating Objects: Object.entries, Object.fromEntries, Object.keys, Object.values
  • Navigating Arrays: Array.includes, Array.slice
  • Operators: =, ==, ===, !=, !==, >, <, >=, <=, &&, ||, !, %, +, -, *, /
  • Control structures: if, else, else if, return
  • Functions: function, =>, scope, callbacks, and extracting a function
  • Loops: for, for of
  • Higher order functions that take callbacks: Array.map, Array.filter, Array.find, Array.findIndex

JavaScript in the browser

  • Asynchronous programming: Promise, async/await
  • Web APIs: fetch, addEventListener, setTimeout, document
  • Manipulating the DOM with Web APIs: Finding elements, Creating elements, Adding elements to the DOM, Removing elements from the DOM, Changing elements currently in the DOM

JavaScript Testing

  • Assertions in Jest: test, expect, toEqual, not

Git

  • Git commands: status, clone, add, commit, push, pull, merge, branch, checkout

Group work

When you’re working on group projects, we expect you to be working together.

You can work on code on your own, but we expect you to be aware of what each other is working on. You may be asked about any code in your project, including code someone else wrote.

We strongly recommend that you collaborate as you go. Read and discuss each other’s code as you’re building. Do not wait until the end of the project (or the week before the interview).