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

Iteration for WB #7

Open
4 tasks
eliasmalik opened this issue Oct 20, 2018 · 1 comment
Open
4 tasks

Iteration for WB #7

eliasmalik opened this issue Oct 20, 2018 · 1 comment

Comments

@eliasmalik
Copy link
Collaborator

Hey @shiryz hope you don't mind, I thought I'd stick all my thoughts here, and we can figure out what to do with them afterwards.

All my comments are based on only reading through the resource, so if your experience in actually delivering it contradicts anything I say, please say so!

Current structure

From my understanding (please correct me!) this is a summary of the current resource:

Form

A mix of reading and mentor-led classroom discussion.

Content

  • Functions as 1st class objects
  • Callbacks as higher order functions
  • Call stack (not sure this is really doing what we want)
  • Sync callback examples
  • Description of async
  • Async callback examples

Suggested structure

Form

A mix of reading, exercises and classroom discussion

Content

  • Functions as 1st class objects
  • Callbacks as higher order functions
  • Sync callback examples
  • Sync callback exercises
  • Introduction to "async"
  • Async callback examples
  • Async callback exercises

So, very similar. Note that I've cut out the call stack stuff; not because I don't think it's useful, but because I think you have to spend quite a bit of time on it for it to be useful (and also because the example is not quite right 🙃😝). I think people can probably understand callbacks a little intuitively without understanding the call stack.

Issues

I think mostly we can just re-arrange/re-use the stuff you've already got, but a couple of things might need to be sorted first:

  • Offer a little more space to your code snippets. Better formatted blocks of code are probably easier for beginners to digest.
  • I like using foo, but (apparently) a lot of people who go through the course dislike it. If we can use more meaningful names, we probably should.
  • I might be worth emphasising that in synchronous code, values are passed up the call stack using return. In asynchronous code, values have to be passed down the call stack using callbacks. If we do drop the call stack stuff, you don't need to mention that part, just thing about accessing values with return versus accessing them with callback.
  • Adding some small exercises. My preference would be to just use to codewars style stuff, but I've not been able to find anything good. This is the only actual callback-focused exercise I can find, and it might be too easy. I think the ones Mavis found are more focused on closures and scope.

These are just suggestions though, I'd be happy to hear your thoughts (and those of @m4v15 too)

@eliasmalik eliasmalik changed the title Iteration Iteration for WB Oct 20, 2018
@shiryz
Copy link
Owner

shiryz commented Oct 21, 2018

Hey @eliasCodes, thank you for putting the time in to write this in detail, a few comments:

Form, a mix of reading and mentor-led classroom discussion.

It was mentor-led entirely, I sent the students a link later

Offer a little more space to your code snippets

and this too

we can use more meaningful names

I agree with both, it was the result of trying to finish the document in time

I might be worth emphasising that in synchronous code, values are passed up the call stack using return...

Very good point! I'm unsure about whether we should keep/remove the call stack stuff, I personally found it very helpful when trying to understand how a cb works but like you've mentioned it takes time to fully understand it, and it does deviate from the main point of this workshop

eliasmalik added a commit that referenced this issue Oct 28, 2018
shiryz added a commit that referenced this issue Oct 31, 2018
First pass of new iteration, see #7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants