(See a completed example of this repository right here)
Explain the challenge as completely & clearly as you can.
function name: Function
- Args: (how many args does this function take?)
- (List each arg, it's type, and it's purpose)
- Return: (what type does this function return?)
- (Describe the return value)
- Behavior: (What does this function do?)
'''js // copy of your polished solution for easy reference. '''
- Input Analysis
- Solution Explanation
- Constraints
- Resource Estimation
- Scaffolding
- Language Features
- Bugs & Challenges
- Use Cases
- Learning Journal
What characteristics of your inputs are important for your solution?
What groupings will you have to consider when building your solution?
How did you use this information to select your test cases?
Explain your solution in detail, however works for you. Perhaps by using a specific input to illustrate, by describing your strategy, or by including a diagram directly from Sketchboard.io.
What constraints did you place on yourself, and why? Did they end up being helpful or not?
Estimate how what resources you will require, and how much of each.
Provide a link to Gist you used to construct your solution's scaffolding. What difficulties did you have making it? How helpful was it in coming up with your finished solution?
List the language features used in your solution.
The focus of these exercises are to strengthen you problem solving skills, not to learn the newest ES6 tricks. When you have the choice between to different language features it is better to choose the option that is easiest to read, most common, or most consistent with the rest of your solution.
Keeping track of the language features you use will enable you separate the problem solving strategy from the implementation. Being aware of this difference will be an asset later on when you're faced with larger applications and popular frameworks.
What particular challenges & bugs did you come across when you were filling in your scaffolding?
Were they logic bugs? Language bugs?
Did you have trouble keeping track of which part of the challenge you were solving?
List 5+ use cases for your solution. They can be stand-alone, part of an application, or impractical. Your use cases can be overly complicated, or very basic. What's important is that you come up with as many and as diverse use cases as possible.
Things I learned studying this problem:
New vocabulary:
Things I struggled with:
Lessons to apply for next time: