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

[Epic] Improve React curriculum #1301

Closed
vegetabill opened this issue Mar 20, 2020 · 10 comments
Closed

[Epic] Improve React curriculum #1301

vegetabill opened this issue Mar 20, 2020 · 10 comments
Assignees
Labels
Epic Not worked on directly but an umbrella for other work

Comments

@vegetabill
Copy link
Collaborator

vegetabill commented Mar 20, 2020

React had by far the biggest gaps in the curriculum. For example, Database (a much simpler concept) had over 5 lessons devoted to it.

Example feedback for cohort:

I don't feel I learn much about React this.week, and the react assignments and topic outline is not helping me to learn much. I suggest Techtonica to have more small react activities or learning materials on the roadmap.

Areas of Improvement

@vegetabill vegetabill added the Epic Not worked on directly but an umbrella for other work label Mar 20, 2020
@vegetabill vegetabill added this to the H2-2020 Start (June) milestone Mar 20, 2020
@vegetabill vegetabill self-assigned this Mar 20, 2020
@alodahl
Copy link
Collaborator

alodahl commented May 26, 2020

FWIW I disagree about hooks being an elective... I think class components are something they should be able to recognize, but hooks are so much easier, and companies are moving to using them now. I bet they could learn it immediately after class/constructor stuff so they can be compared.

@vegetabill
Copy link
Collaborator Author

hooks are so much easier

@alodahl actually I found the opposite was true. Was this your own experience or from previous cohorts? I'm mostly concerned about interference where you try to learn two ways to do the same thing without fully understanding either of them. Participants also tried to mix and match the styles in one codebase which was a disaster.

Hooks can certainly be required, but it should be moved much later after mastery of building non-trivial apps. Because we teach OOP and class-based components are simpler to understand in my experience, which is why I think they should come first.

@alodahl
Copy link
Collaborator

alodahl commented Jul 20, 2020

My own experience. But not doing constructors/state and hooks back to back makes sense to me. It can be done near the end, or could even be an elective, but I think they are becoming the standard.

The reason I think its easier is because you don't have write a constructor, bind anything, remember to name it "this.state" or "this.anything", and it makes functional component coding much shorter and cleaner. My hunch is that it will save them a bunch of time and troubleshooting while they create their portfolio project. But if you think it will be confusing rather than helpful, I understand.

@vegetabill
Copy link
Collaborator Author

Just to add more context to the "teach functional or class", while functional is definitely the norm for new code, in their internships they're still more likely to see class-based code. Just started a job in late 2020 with a fairly cutting edge tech stack and class based components are still all over the place in non-new UI code.

To try to keep the lessons consistent and easier to maintain, I believe we effectively settled on:

  • Use class-based components in all examples except in lessons focused on learning about functional components
  • Functional lesson will be a requirement, not an elective, but will come later after they've had experience with class-based components

Does that sound good? As time goes by the class-based components become a total relic, we can rethink the above.

@alodahl
Copy link
Collaborator

alodahl commented Mar 8, 2021

I moved React Hooks to week 13 (formerly career week) to avoid confusion.

@alodahl
Copy link
Collaborator

alodahl commented Mar 8, 2021

Are you sure you want to teach JS classes after React classes? That seems backwards to me.

@vegetabill
Copy link
Collaborator Author

@alodahl agreed that would be backward. If you're referencing:

Focus exclusively on class-based components

That's just meant to be a decision for the entire curriculum, not a lesson. If you remember from gssoc, I was strict on only allowing class-based component example code. I think it's pretty consistent now. Maybe in a few years we can switch to teaching functional exclusively 😁

@alodahl
Copy link
Collaborator

alodahl commented Mar 14, 2021

Sticking with React class-based components is fine. I guess I want to make sure that things are taught in this order:

  1. JS functional programming & JS classes
  2. React class components, having the most emphasis
  3. React Hooks and functional components, much later so no one gets mixed up

@vegetabill
Copy link
Collaborator Author

@alodahl that is the current state, AFAICT, except that hooks is an elective and I don't think is in the schedule.

So we don't forget it for H2, I added it to #1543

@vegetabill
Copy link
Collaborator Author

Everything in this epic is either merged or closed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Epic Not worked on directly but an umbrella for other work
Projects
None yet
Development

No branches or pull requests

2 participants