Egghead's State Management Portfolio Club Journey - Week 1: An RDD Approach
Published: 2021-06-17 17:29:15

##Introduction

My journey into learning State Management began with an introduction to the club's fellow members and a general direction that we would all head into while making our own business oriented portfolio project in the next 6 weeks.

##Week 1 Goals

- Watch [Mark Erikson and Joel Hooks talk on Redux](https://egghead.io/lessons/react-using-redux-in-modern-react-apps-with-mark-erikson)
- Study Readme Driven Development Ideology
- Choose a Project to build
- Create a Readme file focused on Readme-Driven-Development

###Goal 1: Watch Mark Erikson and Joel Hooks talk on Redux

Their talk gave me an insight on what Redux is, at its core. I learnt [when I should use redux](https://changelog.com/posts/when-and-when-not-to-reach-for-redux) and when should I not. Amongst other valuable information, Mark also introduced redux toolkit, which I would later add into my project.

I also got a list of resources, blogs to go deep in the State Management rabbit hole. 

###Goal 2: Study Readme-Driven-Development (RDD) Ideology

Taylor and Will provided an [interesting article](https://tom.preston-werner.com/2010/08/23/readme-driven-development.html) on RDD by Tom Preston Werner. This article defined RDD for me and clearly stated differences between Document-Driven-Development (DDD) and RDD.

I studied that and looked at some examples of RDD development, to summarize that a good readme should, in my opinion:
- be direct, short and structured about the project and its features
- clarify what a user can do with the project/application
- clarify developer related information such as tech stack
- clarify future goals of the project, if any

####Takeaway:

RDD is a great approach for Project development because it gives an outline to the developers on what needs to be created with a set of pre-decided tools. It also gives users/contributors an understanding of what can be done with the project.

###Goal 3: Choose a Project to build

Right after watching Mark Erikson and Joel Hooks talk on Redux, I dived into the official Redux [documentation](https://redux.js.org/introduction/getting-started) where I found a link to an Egghead course by Dan Abramov on [Fundamentals of Redux](https://egghead.io/courses/fundamentals-of-redux-course-from-dan-abramov-bd5cc867).

Then, I brainstormed at several business oriented ideas that could help me practice state management along the journey. I shortlisted a project which would allow users to generate  available domain names for their businesses and potentially help them find the best deal to buy the same. I named it "[Find my Domain](https://github.com/karanjhala/find-my-domain)"

Moving further, I started working on the Project's Readme file.

###Goal 4: Create a Readme file focused on RDD

Equipped with the information from videos, courses and RDD documentation, I looked at multiple examples of well written RDD Readmes across GitHub. I also referred to how my clubmates had written theirs.

Finally I came up with this [README.md](https://github.com/karanjhala/find-my-domain#readme) by the end of Week 1*

##Resources Referred/Studied/Watched
-[Mark Erikson and Joel Hooks talk on Redux](https://egghead.io/lessons/react-using-redux-in-modern-react-apps-with-mark-erikson)
-[When and when not to reach for Redux](https://changelog.com/posts/when-and-when-not-to-reach-for-redux)
-[Redux Introduction](https://redux.js.org/introduction/getting-started)
-[Egghead course by Dan Abramov on Fundamentals of Redux](https://egghead.io/courses/fundamentals-of-redux-course-from-dan-abramov-bd5cc867)
-[RDD article by Tom Preston Werner](https://tom.preston-werner.com/2010/08/23/readme-driven-development.html)
-[Another Article on RDD](https://elliotchance.medium.com/readme-driven-development-3a434b7e253c)
-[Article on writing a great Readme](https://x-team.com/blog/how-to-write-a-great-readme/)
-[RDD Readme Example: size-limit](https://github.com/ai/size-limit)



**I did not decide my Tech stack at this point and took advice from the club at the next meetup*