Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ali: Behavior Strategy Implementation : 3 weeks #156

Open
22 tasks
alisanlii opened this issue Jul 13, 2023 · 0 comments
Open
22 tasks

Ali: Behavior Strategy Implementation : 3 weeks #156

alisanlii opened this issue Jul 13, 2023 · 0 comments
Assignees
Labels
check-in You can use the check-in template to track your module learning objectives, your weekly progress individual week-1

Comments

@alisanlii
Copy link

alisanlii commented Jul 13, 2023

Learning Objectives

Priorities: 🥚, 🐣, 🐥, 🐔 (click to learn more)

There is a lot to learn in this repository. If you can't master all the material
at once, that's expected! Anything you don't master now will always be waiting
for you to review when you need it. These 4 emoji's will help you prioritize
your study time and to measure your progress:

  • 🥚: Understanding this material is required, it covers the base skills you'll
    need to move on. You do not need to finish all of them but should feel
    comfortable that you could with enough time.
  • 🐣: You have started all of these exercises and feel you could complete them
    all if you just had more time. It may not be easy for you but with effort you
    can make it through.
  • 🐥: You have studied the examples and started some exercises if you had time.
    You should have a big-picture understanding of these concepts/skills, but may
    not be confident completing the exercises.
  • 🐔: These concepts or skills are not necessary but are related to this module.
    If you are finished with 🥚, 🐣 and 🐥 you can use the 🐔 exercises to push
    yourself without getting distracted from the module's main 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.

  • 🐣 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:
    • Behavior: Write documentation, test cases and use cases to describe the function's behavior.
    • Strategy: Describe the function's strategy using plain english.
    • Implementation: List the language features in a function and explain how each one is used.
    • 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 ...
    • Write: Your own solution by remixing the ones you studied.
    • Explain: How the other solutions inspired yours; what ideas did you take from them? what ideas did you not take?
    • Analyze: Complete a write-up your own solution as though someone else wrote it.

2. Write

  • 🐣 Function Design:
    • Writing Tests: Given a working function, you can write passing test cases to describe it's behavior.
    • Writing Functions: You can design multiple solutions to the same code challenge, keeping notes about different experiments you tried along the way.
  • 🐣 Generating Documentation: You can write a JSDoc comment for your solutions and run a script to generate markdown documentation.
  • 🐣 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:
    • Reading Docs: You can understand what the function is supposed to do by reading it's JSDoc description.
    • Writing Tests: You can write test cases before there is a function to test.
    • Writing Functions: You can write one function that passes the test cases you have prepared (even if it's just 1 test case!).
    • Refactoring: You can improve your function's implementation without failing any test cases that were passing.
    • Iterative Development: You can repeat the TDD process until you are satisfied with your test cases and solution.
  • 🐔 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.

3. Review

  • 🐣 Continuous Integration: You can check your code's quality before pushing so your CI checks all pass.
    • Formatting
    • Linting
    • Testing
  • 🐣 Code Review: You can use a checklist to give a thorough, positive and constructive review of your classmates' solutions.
  • 🐔 Code Coverage: You can explain what code coverage is, why it's important, and can write unit tests with 100% code coverage.

Week1&2

I Need Help With:

My VS Code does not debug line by line I had problem at the beginning to find the problems and solve them.

What went well?

Test cases and solutions.

What went less well?

It was mostly fine.

Lessons Learned

Mentality of test functions.

Sunday Prep Work

I will complete the homeworks and repeat the lessons again.
...

@alisanlii alisanlii added week-1 check-in You can use the check-in template to track your module learning objectives, your weekly progress individual labels Jul 13, 2023
@alisanlii alisanlii self-assigned this Jul 13, 2023
@alisanlii alisanlii changed the title Ali: behavior-strategy-implementation : 3 weeks Ali: Behavior Strategy Implementation : 3 weeks Jul 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
check-in You can use the check-in template to track your module learning objectives, your weekly progress individual week-1
Projects
None yet
Development

No branches or pull requests

1 participant