JSFunk
Abstract
jsFUNk will focus on practicing complex problem solving, data manipulation and prototype methods.
As you are practicing, stay focused on breaking down and working through each problem step-by-step. You are defining a strong problem solving process that you will be able to apply to any code challenge placed in front of you, even if its unfamiliar.
There are two ways we’d like you to demonstrate mastery. Both are essential for technical job interviews.
- Accurate implementation/problem-solving
- Eloquent articulation of your thought process
🚨 You should expect to need the following methods on your midmod and final assessments:
- forEach
- filter
- reduce
- map
- sort
- includes
- split
- join
Object.keys() will not be needed for your midmod or final assessments.
Set Up
Fork this jsFUNk repo of practice exercises.
Read through the entire README for details and set up instructions.
The prototypes folder holds the practice exercises you will be using.
- prototypes/datasets holds the datasets that correspond with each practice exercise
- prototypes/index.js is where you will find the prompts for each exercise and where you will write your implementation code
The test folder holds the corresponding tests for each exercise.
- You can unskip the corresponding tests as you go.
- Note that these tests are not particularly helpful in telling you what you are trying to do. They are simply there to allow you to confirm that you have successfully solved the prompt. The prompts in index.js will tell you what to do for each exercise. When in doubt, ask clarifying questions in Slack!
Notes
- We strongly encourage consistent daily practice. These are not skills you can cram for before the assessment.
- jsFun problems are not in order of difficulty. If one feels way too hard, try it but know when to stop and move onto a different problem. Come back to it as your skills and confidence improve.
- Do not stress about completing all of the problems. Focus more on being able to thoroughly understand and articulate the process and solution to the problems you do make it through.
- After you solve each problem, pause and add an annotation for how you would walk someone through arriving at that solution. It will help you more deeply understand your solution as well as help with your articulation during assessments (and future interviews).
- We recommend spending some time solving the same problem using different iterators. For example, if you first solve a problem using a
filter
andmap
, try solving it again with aforEach
and then again with areduce
. This will deeply your skillset greatly. - jsFunk problems practice the skills you need for your M2 assessment but they are not necessarily structured exactly like the assessments. You are honing these problem solving and technical skills so that you can be a strong developer, not just so that you can pass the M2 assessment.
Problem Solving Process
- Restate the goal in your own words. Take note of EXACTLY what the final output(s) should be.
- Consider the data that you’re working with. What data types are you working with? Are there any parameters/arguments? What data in particular do you need access to?
- Ask clarifying questions that you have about the goal and/or the data. Is there anything that still unclear? It is critical that you have a complete and accurate idea of the goal and data before you move on.
- Pseudocode the steps needed to get to the goal. Write out your plan, with specific steps, in plain English. What will you need to do first? Then what?… Note: You may only be able to pseudocode out the first couple of steps - that’s okay! Plan out as much as possible now.
- Research what you don’t know. Is there something you’ve noted in your pseudocode that you don’t know how to do? Take note of that and google. Start coding by referencing the pseudocode you’ve written.
- Stuck? Go back to step 4 and repeat steps 4-6 until you’ve reached your goal.
- Refactor your code, if necessary. You should not be worried about writing the “best” code possible while solving the problem. Get it to work, then you can work on improving the code.
- Make note of your approach and key learning you encountered
Extra Practice
If you finish all of the practice in the repo, the Turing Staff created the following extra practice exercises that are formatted more similarly to the assessment format:
A group of former students created this wild and unruly bank of practice exercises called iron-FE. Some students find these prompts helpful but they are not managed by Turing instructors in any way.