foundersandcoders / coursebook

The new coursebook
https://learn.foundersandcoders.com
Other
50 stars 23 forks source link

Week 9 topics #342

Closed sofer closed 2 years ago

sofer commented 3 years ago

Real-world project (4 one-day workshops on different topics but working towards a single overaching project all week)

See https://github.com/foundersandcoders/coursebook/issues/288#issuecomment-746578159

Is one of those one-day workshops going to be on Next.js with hosting on Vercel?

oliverjam commented 3 years ago

I wasn't planning on it. Not sure how I feel about going directly from introducing React to an even more abstracted meta-framework. It would definitely be more "real world" I guess

oliverjam commented 3 years ago

Having thought about this more I am reconsidering. Might need further thought before we start creating Week 9 content

oliverjam commented 3 years ago

We're going to use this issue to track ideas for the new Week 9.

oliverjam commented 3 years ago

I would basically like this week to be a "stuff you realistically need in a production app you get paid money for", since we don't have time for those things in React Week.

  1. Testing (shifted from React Week to make room for intro SPA stuff)
  2. Integrating with a backend/API
  3. Deploying the frontend/backend (same git repo? serverless? 3rd party DB?)
  4. Planning a full-stack build (frontend first with mock backend)

Teach Next will kind of cover quite a few of those, so might be a good idea. Would possibly require a bit of an intro to what serverless functions are, since that's how Next's "API routes" are structured (i.e. you don't manage an actual server with routing etc).

Testing may have been covered already if we end up teaching Cypress earlier on, since they can just keep E2E testing their app without changing anything much.

Albadylic commented 3 years ago

In terms of naming, does Week 9 remain 'React Week' even if (the former) React week's content is split across week 8 (App) and Week 9?

oliverjam commented 3 years ago

Probably not. We've made all the other week names more generic (API Week instead of Express Week, which means we can drop Express from Week 7 entirely and not have to change the name). So Week 8 should probably be Single-Page App Week, and Week 9 Production App or Full-stack App or something?

sofer commented 3 years ago

@redahaq and @reubengt might be interested in helping out with Next.js, if needed.

reubengt commented 3 years ago

100% on board✨

oliverjam commented 3 years ago

That would be great! I'd also be interested in your opinions on what's missing from the curriculum to bridge the gap from React Week to "deploying an actual product". Anything we didn't cover in the thread above?

Albadylic commented 3 years ago

To Discuss: how teams work in weeks 7, 8, 9. Groups will be together for the three weeks, in the past React Week projects have been done in pairs. Is there a way to tie all three weeks together?

oliverjam commented 3 years ago

I'm going to have a think about how these weeks will fit together

sofer commented 3 years ago

Next week:

Over to @oliverjam

reubengt commented 3 years ago

I can be in the space wednesday/thursday to help out with projects. re databases, is the idea to introduce a new database service? I'm not sure what has been discussed already but just throwing an idea out there, would firebase work? I have found it much easier to use firebase for a small project than setting up a postgres database.

sofer commented 3 years ago

Ha ha! @reubengt you have just wandered into the week's great debate :-) Great to know that you are around Wed/Thurs.

oliverjam commented 3 years ago

@reubengt I've just had a lot of bad experiences with the Firebase ecosystem. Didn't enjoy it much on Aplisay and I've seen several FAC grads get really stuck in a tangled mess trying to build out a TFB project that started with Firebase.

The idea is that if they're doing a Next app deployed to something like Vercel (or other serverless-first service) then they can't have their own stateful server for something like Postgres. So they'll need an externally hosted data-persistence layer—and it's a lot faster to use a 3rd party one than build your own.

I was thinking AWS DynamoDB is the most obvious "default hosted DB". Otherwise FaunaDB is great (although it has a weird query language).

sofer commented 3 years ago

@oliverjam I love what you have done with Week 9 and I am looking forward to the presentations on Friday.

oliverjam commented 3 years ago

I ended up just creating 4 Postgres DBs on AWS RDS and giving each group their connection string. They spent Monday working through the official Learn Next.js tutorial, then the rest of the week building a project.

Feedback:

  1. "Learn Next.js is long and boring and has lots of copy/pasting".
    I think this is fine, since part of the goal here was to ease the cohort into learning via real-world resources and not our Coursebook. We could maybe think about breaking it up with other stuff so it's not a full day.
  2. "The project criteria was really hard".
    I didn't expect this—I think I misjudged how difficult they would find it to adapt the Next.js examples from Monday into their own thing. This mostly comes from a lack of conceptual understanding I think; they haven't had a chance to fully absorb what is going on and so everything feels like a complex new thing.
    We probably need more guidance on the shopping basket feature, since groups tried to do that in a ton of different ways, some more successfully than others. Possibly dedicated spike time on Tuesday afternoon (as we did in Week 7).
oliverjam commented 3 years ago

Circle discussion: we'd like to try a similar project-based week for FAC22 too. We'll make some tweaks:

  1. Spikes like Week 7 on e.g. shopping baskets to give them a little more guidance. Do this on Monday to break up the long Next.js workshop
  2. Interview prep on Monday to also break up the workshop