Week 3, Learning Your Sidearms!
Goals of the Week
- State management and why its an important and hard problem to solve
- How Redux fits in the puzzle
- Learning Redux
- Static Type Systems in JS
- Utility Libraries
Day 1: State Management and Redux
Key to solving any problem is in understanding the problem to its very core. Previous Assignment you did should have given you some context of what is the problem of State Management. If you aren't able to figure out the problem yet, no worries, let's explore the problem and possible solutions.
- State Management and solutions
- How does Redux work?
- How to use it and the advanced concept of Redux Thunk via official documentation. It's very well written and you will know it once you read it.
Task Due
You will have to implement state management via Redux in the assignment you did using React before this. To start working on the task, create a new branch in your Github repo and push it to the Github. This is to ensure we can do comparisons and preserve your previous work.
New Requirement : Add a spinner / loading animation where appropriate.
Day 2: Code...
Code Review
Once done with the assignment, reach out your mentor and do a code review session for the tasks you just did. Make improvements per the guidelines and update the code in repository.
Day 3: TypeScript
Learning Types
- Learning basics of Static Types and why use them in an artificial way? This 4 part series will make sure that you are properly introduced.
- To get started with typeScript, consult this link. For any advanced learning, i would suggest to dig in to official documentation. Type system is a world on its own
- Use this playground to evaluate what you have learned so far.
- How to add typeScript in already created react application or create a react application having typeScript out of the box? See here.
Task Due
Lets identify the flow of data in the Application you worked on previously and add types to your application.
Learning Ramda
Introduction and how to think in Ramda(Functional Utility Library). This 3 part series of articles will help you learn its semantics.
Task Due :
Replace the data manipulation functions you are using in your assignment as you go through the series with corresponding functions from Ramda.
Ramda is also a world on its own, you don't need to remember every function name however its documentation is a very handy reference to have opened as a pinned tab in your browser
For more practice, refer to the intermediate section of Assignments. Discuss with your mentor to pick up an intermediate task e.g Attendance or Booking System
Day 4 and 5
Code Reviews and Reiterate your task to make it better:
Once done with the assignment, reach out your mentor and do a code review session for the tasks you just did. Make improvements per the guidelines and update the code in repository.
Slack Time, What to do?
Any Technical Debt you want to clear? Any topic you think is left unclear or any thing made you intrigued you can dig deeper or perhaps you want to polish your table tennis skills? This is the time to do that!
However, you need to report your mentor on how you are going to spend the slack time.