Practice studying and remixing other people's solutions to coding challenges. Create your own solutions by mixing and matching pieces from other people's code.
🐣 Reconstructing: You can reconstruct a variety of solutions to the same challenge when they are presented as parsons problems.
🐣 Analyzing: You can analyze a function written at your level. This includes:
[x] Behavior: Write documentation, test cases and use cases to describe the function's behavior.
[x] Strategy: Describe the function's strategy using plain english.
[x] Implementation: List the language features in a function and explain how each one is used.
[x] Small Changes: You can think of 2+ changes to the function's implementation that would not change it's strategy.
🐣 Remixing You can analyze several solutions to the same challenge then ...
[x] Write: Your own solution by remixing the ones you studied.
[x] Explain: How the other solutions inspired yours; what ideas did you take from them? what ideas did you not take?
[x] Analyze: Complete a write-up your own solution as though someone else wrote it.
[x] Writing Tests: Given a working function, you can write passing test cases to describe it's behavior.
[x] Writing Functions: You can design multiple solutions to the same code challenge, keeping notes about different experiments you tried along the way.
[x] 🐣 Generating Documentation: You can write a JSDoc comment for your solutions and run a script to generate markdown documentation.
[x] 🐣 Fuzz Testing: You write solutions that pass randomly generated test cases.
🐥 Test Driven Development: You can solve open-ended, ambiguous coding challenges at your level:
[x] Reading Docs: You can understand what the function is supposed to do by reading it's JSDoc description.
[x] Writing Tests: You can write test cases before there is a function to test.
[x] Writing Functions: You can write one function that passes the test cases you have prepared (even if it's just 1 test case!).
[x] Refactoring: You can improve your function's implementation without failing any test cases that were passing.
[x] Iterative Development: You can repeat the TDD process until you are satisfied with your test cases and solution.
[x] 🐔 Code Golf: Write your solutions with the fewest characters possible! This won't help you write readable code, but it will make you think deeply about JS, your strategy and implementation.
Learning Objectives
1. Remix
Practice studying and remixing other people's solutions to coding challenges. Create your own solutions by mixing and matching pieces from other people's code.
2. Write
3. Review
Weekly Overview
Week 1
I Need Help With:
Week 2
I Need Help With:
Sunday Prep Work