tutorials
tutorials copied to clipboard
Feedback on JS 4 (APIs part 1)
I coached this last week and had the following notes:
- It wasn't initially clear where the JavaScript had to be written. Earlier tutorials have it written straight into the console - it wasn't obvious to the student that the code needed to go into a
script.js. - It's not clear why
eventworks within the example code wheneis the passed argument in$(document).on('keypress', '#username', function(e). - When skim reading the tutorial, as students often do, it's not clear how to wire the various functions together. That said, I believe that encouraging this thinking is useful at this point, so maybe that's ok. It just might be worth explaining in the text how the wiring between functions should work for those that do read/are not being coached
- It confused the student when they had to replace an existing function with an expanded version
- If the user is not found on GitHub, we ask to show an error with the username... but within the
showUserfunction this is not available. - Overall the responsibility of
showUseris weird because it takes an instance ofXMLHttpRequest, not a user. When we switched to async it was obvious to create a second callback ofshowError, but again sending the username to that callback is non-trivial without using a closure which the student is likely not ready for.
Overall the tutorial is flowing better since the recent rewrite, and I think the decision to do the github request synchronously at first is sound. That said, I think it would be better to more explicitly "break" the code by switching it to async and letting the student understand the problems that follow with code that relies on blocking.
One last thing: you never, EVER get to the second exercise, even with an advanced student and 1:1 coaching. Perhaps it needs splitting? That said, this is an issue with several tutorials (eg intro to jQuery) and students are used to continuing the same module over several weeks. It just might give a better sense of achievement to "finish" a tutorial and then move on, as is possible in HTML and CSS.
Tagging @jkbits1 :)
@samsworldofno thanks, I'll take a look and add some comments.