π Piscine
Content for the piscine, basically hackathons
Piscine block viewer
This block viewer lets you flick through all the existing blocks in the Piscine folder so you can choose what parts to add to your pages and what parts you might want to create, revise, or leave out.
It's literally just an alphabetical list of whatever is in this folder.
βοΈ 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.
π― 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.
π§ Blockers
Learning Objectives
Identify any blockers or dependencies in your project. What must be done first? What can be “decoupled” and done in parallel? The better you can identify these, the more efficient your team will be. Discuss these blockers as a team and decide how to solve them while you are all together and can help each other.
Describe your blocker
Describing the problem systematically will take you most of the way to resolving the blocker. Use the following template on a ticket on your board:
- What you did: Describe what you have done so far. Give links and code snippets.
- What you expected: Describe what you expected to happen.
- What actually happened: Describe what actually happened.
Blockers can feel frustrating, but in reality they are opportunities to explore and solve problems. This is what engineering is all about. π±
Assessment
The fourth class day will be interview day. Your interview will take place in a hiring platform, Evidenced. An assessor will ask you questions about your code and your projects. You can be asked about any part of any of your projects, so make sure you understand it all, including the parts your teammates wrote.
The success criteria is listed on the success page. Read it carefully so you know what you need to do to succeed.
Prerequisites:
Your interviewer will expect you to have a secure understanding of:
- All of the projects you have worked on during the Piscine, including the code other people wrote
- Professional English at a B2 level
- A limited subset of JavaScript concepts at a junior level
Review these areas before your interview. Read over the day plan for interview day so you know what to expect.
And remember: the assessor is not there to catch you out. They are there to help you do your best. If you don’t understand a question, ask for clarification. If you don’t know the answer, say so. If you need a moment to think, take it. π±
Backlog
Learning Objectives
You will work with your team during the week. You will need to plan your work and track your progress. You will use a kanban planning board to do this.
In the backlog view there are some assigned tasks. Most of your tasks, however, will be created by your team as you work through the project. You will need to define user stories, test cases, and interactions as you go. You will also need to refine tickets as you develop your software. We’ve added some reminders and tips to help you work effectively in the ways you learned during Intro to Programming.
Demo
Learning Objectives
At The Docs we expect you to demo your work to the class. You must have many opportunities to practice how to clearly and simply explain your work to others. This is really important for interviews and career success.
β° Timekeeper
The timekeeper will keep the groups on track.
Split randomly into groups of no more than 4 people. Mix up your teams. Each person will have 2 minutes to demo their work to the group. After the demo, the group will ask questions or give feedback for 5 minutes. Then the next person will demo their work.
π§πΌβπ Trainees
1. Demo
You will demo something about your work to the group.
You will have 2 minutes to explain what you did and why. It’s ok to show broken code or code that doesn’t work yet. Just make sure your demo is interesting.
2. Feedback
After the demo, the group will give you feedback for up to 5 minutes. It’s smart to suggest what kind of feedback you want by asking some “generative” questions. For example:
- I wasn’t sure if it makes sense to try X. What do you think?
- I liked the way I did X, but I know there are other approaches, what did you do?
- I found X really confusing, did anyone else have the same problem?
π‘ Tips:
- Practice the format of demos before class.
- Keep it simple. Don’t try to show everything you did. Just show one interesting thing.
- Keep it short. Two minutes is enough.
- Explain what you did and why.
- Show your code.
- Ask for feedback.
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.
EMBED APPLICATION FORM HERE
You will receive an email within two weeks of your application. If you are accepted, you will receive an enrollment email. If you are not accepted, you will receive an email explaining why.
If you have been accepted, please now continue…
Interviews
Learning Objectives
You will be asked to join a video call for your technical interview. We use an interview platform called Evidenced.
What to expect
- The interview will be 15 minutes long
- You will be asked to discuss a feature from a project you have worked on during the Piscine.
- You may have written this feature yourself, or it may have been written by someone else in your group.
What questions will I be asked?
- You will be asked to explain the code. You may be asked to:
- Play computer and run the code in your head
- Explain what the state of the application is at different points in the code
- Define the function and meaning of different parts of the code
- Refactor the code to meet new requirements given by the interviewer
Your interview will be recorded and scored against a rubric you can read before the interview. You will get the transcript of your interview with the decision about your application.
Once your interview is done, you are done. Join the wrap party and celebrate your hard work! What a journey! π
Kickoff
Learning Objectives
At The Docs we work in small teams to deliver working software with tests.
π‘ tip
π― Goal:
You will be split randomly into groups of 3-4.
activity
- Review the project docs.
- Setup your project board.
- Break down the project into tasks.
- Assign tasks to team members.
- Agree on a deadline for each task.
π‘ Tips:
- Review the project docs before kickoff.
- Keep it simple. Identify the simplest way you can meet the criteria.
- Break it down. Split the work into small tasks on a board.
- Communicate. Make sure everyone knows what they are doing.
- Set deadlines. Agree on when you will have each task done.
Pair programming
Learning Objectives
- Switch between driver and navigator roles after
- The “driver” is the person typing on the keyboard, just thinking about what needs to be written
- The “navigator” reviews what the driver is doing and is thinking about to write next
- Don’t dominate - this is teamwork
β Time’s up! Take a break! Make a cup of tea. Good job, partners!
Pomodoro
Learning Objectives
Each team member, take a small-scoped ticket. Set a timer for . Use this focused time to complete your ticket and open a PR.
β Time’s up! Take a break! Make a cup of tea. Walk around a bit.
Now set a new and review each PR as a group.
β Time’s up! Take a break! Make a cup of tea. Stretch! Look at how much progress you made in one hour. β¨
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.
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
,switch
,case
,break
,continue
,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:
describe
,it
,expect
,to
,toEqual
,toBe
,not
- Error handling:
try
,catch
,throw
Git
- Git commands:
status
,clone
,add
,commit
,push
,pull
,merge
,branch
,checkout
Review a Pull Request
Learning Objectives
You have opened at least one pull request this week and likely several more. (If you have not, your tickets are too big and you need to scope them down.)
In this session, you will review a pull request from a teammate, and they will review yours. You should be doing this during the week anyway, but this session is a chance to talk in person, ask clarifying questions, and make changes together.
Solo Development
Learning Objectives
This time is set aside for you to make progress on your solo project. But remember, you are not alone! You have your mentors and peers to help you. Here are some strategies to help you work effectively:
π€ User stories
As a [who], I can [what] so that [why]
Spend some time working on your initial
- Identify described requirements: What are the requirements of your project? What are the features you need to build? Describe them in user story format.
- Create a strategy: How will you implement these user stories? What are the steps you need to take to complete them? Update your tickets with this information.
- Express as test cases: How will you know when you have completed the user story? What tests can you write to verify that the user story is complete? Write these tests.
Use this opportunity to compare your user stories with others and ask for feedback in real time. π Everyone will approach the project differently, and you can get feedback to test your ideas.
π
Pomodoro
Each person take a small-scoped ticket. Set a timer for . Use this focused time to complete your ticket and open a PR.
β Time’s up! Take a break! Make a cup of tea. Walk around a bit.
Now set a new and review each PR as a group.
β Time’s up! Take a break! Make a cup of tea. Stretch! Look at how much progress you made in one hour. β¨
π§ Blockers
Identify any blockers or dependencies in your project. What must be done first? What can be “decoupled” and done in any order? What parts will you need to research or ask for help from others? What parts are you confident about? Mark these on your board.
Describe your blocker
Describing the problem systematically will take you most of the way to resolving the blocker. Use the following template on a ticket on your board:
- What you did: Describe what you have done so far. Give links and code snippets.
- What you expected: Describe what you expected to happen.
- What actually happened: Describe what actually happened.
Blockers can feel frustrating, but in reality they are opportunities to explore and solve problems. This is what engineering is all about. π±
Team Development
Learning Objectives
This time is set aside for you to work together as a team to make progress on your project.
Remember: At your interview, you may be asked about any code in your project, not just the code you wrote. You need to understand and be able to explain the code your team mates wrote. Make sure you read their code, review it, and talk to them about it.
Wrap
You are done for the day. Take a moment to reflect on what you have learned and achieved.
Stand in a circle and share:
- π your name
- πͺπ½ one thing you built today
- π·πΎ the task you are going to work on next
- π one thing you need help with
Give yourselves a round of applause. Now you have earned your rest. Usually people go for a drink (or a coffee) after class. You are welcome to join and wind down together.
Wrap Party
You made it! π
Thank you so much for your hard work. We will send you the results of your interview by email by the end of the week.
Now, join the wrap party and celebrate your achievements with your community. π
Can you bring a snack or drink to share? πͺπ₯€ Or a board game? We love Dixit, Codenames, and Rush Hour in particular.
π§ Help
Learning Objectives
Make sure you have everything you need to come to class and do your work
π§ Make sure you have everything you need to come to class and do your work. Everyone at The Docs 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.
π‘ tip
We all help each other at The Docs. 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
π«±π½βπ«²πΎ Induction
Welcome to the Piscine.
Before you came to class today, you should have completed the prep and signed the Trainee Agreement and the Code of Conduct. If you haven’t done the prep, it’s time to leave. Thanks, and try again next time.
If you have done the prep, you’re in the right place. Please make sure you have signed the register. Sign it as soon as you come in. The register isn’t just for attendance rules; we need to know who is in the building if there’s a fire, so please don’t sign in for anyone else.
Next up, we need to choose a timekeeper. The timekeeper is responsible for keeping us on track and making sure we finish on time. Who would like to volunteer?
β° The Timekeeper will:
- Announce the start of an activity and how long it will take (check everyone is listening)
- Manage any whole class timers that are used in an activity
- Give people a 10-minute wrap-up warning before the end of an activity
- Announce the end of an activity and what happens next
Today you will kick off your first team project. At the end of the day, each person will give a two minute demo of something they have built, learned, or discovered today. Then we will wrap and go for a cup of tea together.
But first, let’s get to know each other. Stand up and find someone you don’t know. Introduce yourself and tell them one thing you are looking forward to learning in the Piscine.