Skip to content

Commit

Permalink
Merge pull request #193 from turingschool/jsfunk
Browse files Browse the repository at this point in the history
Jsfunk
  • Loading branch information
nicktu12 authored Aug 2, 2024
2 parents 233464f + ecc2ee5 commit 6269b70
Show file tree
Hide file tree
Showing 2 changed files with 88 additions and 0 deletions.
14 changes: 14 additions & 0 deletions module2/projects/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,17 @@ layout: page
title: Module 2 - Projects
---

## Required Projects
The following projects will be assigned and their completion is required to be promoted to module 2.
The project specs will be linked below as each project is assigned.


<!-- Week 1-2 (FE Solo): [Hang In There](./hang-in-there) -->
<!-- Alternate between Flash Cards and War or Peace for repeaters -->
<!-- - Week 3 (Paired): [Relational Rails](./relational-rails) -->
<!-- - Week 4-5 (Group): []() -->
<!-- - Week 5-6 (Final Solo): []() -->

## Additional Projects and Resources

- [jsFUNk:](./js_funk) Daily assessment prep with JS data manipulation exercises
74 changes: 74 additions & 0 deletions module2/projects/js_funk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
---
title: JSFunk
module: 2
length: 5 weeks
---

## 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](https://github.com/turingschool-examples/jsFUNk) 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` and `map`, try solving it again with a `forEach` and then again with a `reduce`. 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.

<section class="dropdown">
### Problem Solving Process

1. Restate the goal in your own words. Take note of EXACTLY what the final output(s) should be.
1. 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?
1. 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.
1. 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.
1. 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.
1. Stuck? Go back to step 4 and repeat steps 4-6 until you’ve reached your goal.
1. 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.
1. Make note of your approach and key learning you encountered
</section >


### 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:
- [this extra-practice-se2-assessment-style repo](https://github.com/turingschool-examples/extra-practice-se2-assessment-style)

A group of former students created this wild and unruly [bank of practice exercises](https://docs.google.com/spreadsheets/d/1R8imTyYD64FPWJ_mD5QlZI0ybyU1QNkm1ntJqRT7r7k/edit#gid=2076278354) called iron-FE. Some students find these prompts helpful but they are not managed by Turing instructors in any way.

0 comments on commit 6269b70

Please sign in to comment.