π§πΎβπ»
Prep for trainees
Check your eligibility and apply for the Piscine
π― Entry Criteria
Learning Objectives
Welcome to the Piscine.
You must apply to join the Piscine. If you meet the eligibility criteria, you will be invited to join the next run of this module.
You will receive a technical test within two days of your application.
The technical test will require you to write code. It’s like on Codewars. There will be some existing code you have to modify, and you will have up to one hour to do the task. You must pass the technical test. If you fail the technical test, you will be allowed to apply to the next Piscine if you want to.
If you are accepted, you will receive an enrollment email.
If you are not accepted, you will receive an email explaining why. If you remain eligible to apply, you will be able to apply to the next Piscine if you want to.
If you have been accepted, please now continue…
π― π― 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:
- Follow the Code of Conduct.
- Help each other.
- Do the prep.
π¬ Right! The Piscine has 3 working weeks and one assessment day, making 22 days in total.
π¬ The SDC is 12 weeks, but the Piscine is shorter
π¬ The Piscine is 3 weeks long, but there are 22 days in total including the assessment day.
π± 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
π§ Help
Learning Objectives
π§ Make sure you have everything you need to come to class and do your work. Everyone at CYF has barriers to education, and we can help with some things. If you cannot come to class because you can’t afford:
π§ Childcare
then go to π§ signposts/childcare
π» A computer or broadband
then go to π§ signposts/equipment
π Bus or train tickets
then go to π§ signpost/transport
π₯ͺ Food
will be provided
π¬ No, we work in teams.
π¬ No, your team can help you too.
π¬ Yes, a good developer builds understanding by asking and answering good questions.
π‘Remember
We all help each other at CYF. We are a community.
You are not competing against each other for limited number of places. We will accept everyone who meets the success criteria.
- You should ask for help
- You should help others
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.
At your interview, 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).
Prep
Double-check you have everything you need to start the Piscine.
- You have applied to the Piscine and received an enrollment email
- You have a suitable laptop and internet access
- You have organised childcare if you need it
- You have signed the Code of Conduct
- You have signed the trainee agreement
- You know how to get to class
- You have read and understood the success criteria
If you need help with any of these, ask in Slack or go to the Signposts website.
Now go read over the day plans, backlogs, success criteria and complete the quiz. You can do it! π
π¬ No, it’s a mistake to be late for class.
π¬ Yes, you should be ready to begin at 10am.
π¬ No, you must come to class in person and on time.
π¬ Yes, sign the register as soon as you come in.
π¬ No, you should sign the register first.
π¬ No, you should sign the register first.
βοΈ Project Submission
Learning Objectives
For all projects in the Piscine:
- The project must be in its own repository. That repository must not contain other projects. Do not fork this
CodeYourFuture/The-Piscine
repo - make a new repository for your project.- There should not be any dead code or unused code in your repository. All code should be used, all tests should run and pass.
- For team projects, all members of the team should work in the same repository.
- There is some supplied scaffolding for all projects. You may copy this from The Piscine repository. You should remove any content that doesn’t apply when you use it (e.g. there shouldn’t be any comments saying “This is an example” or “This is a placeholder”).
- You are expected to write at least one non-trivial test for each project.
- Non-trivial means that the test must test something that could go wrong, and matters to the project. So it a test which shows that calling
getUsers()
returns 5 users would not be non-trivial. But testing that, say, entries are sorted correctly before being presented to the user is non-trivial. - You are not required to test via the DOM. You may choose to. But you can pass the Piscine without writing a single test involving the DOM.
- We will try running your tests by running
npm i && npm test
. This must run your tests and they must all pass. Make sure you’re not relying on globally installed packages - someone on a fresh computer with onlynpm
installed and no packages installed must be able to run the above command and have it work.
- Non-trivial means that the test must test something that could go wrong, and matters to the project. So it a test which shows that calling
- You have a copy of the rubric for each project - this is how we will test your project. We highly recommend that you run through the test steps yourself just before submitting the project.
- You will get instructions for when and how to submit your projects on Slack.
- When you submit your project, you must include the git sha of the commit you’re submitting. You can get this by going to your project in GitHub, and looking at the latest commit (see screenshot below). If you want to submit a different sha than the latest one, you can open the list of commits, and copy the sha associated with that commit.
- Once you submit your project, any changes you make after will be ignored for assessing the project. Do not submit the project until you are sure it’s complete.
- Test your project against the rubric before submitting your project.
- You should not collaborate with anyone else in your individual project. If there are signs you didn’t write your own code for your individual project, you will fail.