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

General Feedback about stream-adventure #65

Open
edenfull opened this issue Jun 29, 2014 · 2 comments
Open

General Feedback about stream-adventure #65

edenfull opened this issue Jun 29, 2014 · 2 comments

Comments

@edenfull
Copy link

My name is Eden, and I completed part of stream-adventure yesterday as a part of NodeSchool Berlin, which was taught by @balupton, @KenanSulayman and @timaschew. Thank you for your excellent guidance and instruction! I had a wonderful time, and NodeSchool is an excellent idea. Thank you @substack for writing this tutorial.

My programming background: I've been coding for about a year in Java/C#, and I'm currently completing a residency at Hacker Retreat. I have been learning JavaScript for ~1 month now using various resources (Eloquent JavaScript, doing katas, refactoring with Ben), and am still new to a lot of programming concepts (callbacks, piping, etc.). I had completed learnyounode prior to doing stream-adventure.

I struggled greatly with completing stream-adventure because I don't feel that a lot of concepts were thoroughly explained to me before I was asked to implement them for each exercise. I experienced this to a lesser degree in learnyounode as well. For example:

  • I didn't actually understand piping until Ben explained it to me as a stream that would get "drained" if I piped it elsewhere, so I can/need to pipe it back to the original stream after I have piped it through some sort of transform. This plumbing analogy helped GREATLY, and I would recommend having a clearer explaining of what piping is exactly during one of the earlier exercises, like Meet Pipe. At present, we are just told to start piping things, without an explanation of what piping is.
  • What is a duplexer? Anton explained a duplexer to me using the analogy of two walkie-talkies, where only one person can be speaking at a time, and the other person is listening. A duplexer is like two phones on a call, where both can speak at the same time. In Duplexer, the exercise simply says a duplexer is a module that exports a duplex stream, but that doesn't actually explain what it is to me.
  • We're asked to use libraries like Trumpet and Through, but I don't feel like they were actually explained to me. How do they work? Why are they useful? When do developers use them? The only reason I was able to make a lot of my exercises work was because of trial and error based on the example code, or cheating by looking at the solutions. Furthermore, it wasn't explicitly stated in Duplexer Redux that we still needed to use the Through library. I know it was used in Duplexer, but having this hint would have helped a lot.
  • In general, the exercises assume a lot about prior knowledge that the student might have. I don't think I actually knew what an HTTP client was.

I think the exercises would be more powerful if all of them directly built on top of the previous one, with the final exercise being a little script that incorporates all of the concepts learned. At present, I feel like I completed all of these exercises, but I don't know what to do with all the concepts I learned. They weren't presented to me in a way where I feel like I can go and apply them to a current project I'm working on. In what context would a duplexer be useful? When should I use these libraries?

These are just some thoughts I had on how to improve stream-adventure and NodeSchool in general. Please keep working on these - they are amazing and I learned so much this weekend! Thank you for all that you do.

@timaschew
Copy link

actually my analogy was not really about a duplexer 😔 but for the difference between a full duplex and half duplex

@19h
Copy link

19h commented Aug 20, 2014

I'm glad you liked it! I'd be looking forward for getting around for another round of NodeSchool. 🚶

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants