The art and pain of teaching JavaScript

7,187 views

Published on

My slides for the head conference 2008 explaining how hard it is to write JavaScript solutions that cater for all the users out there and what can be done to avoid us creating a lot of material that is outdated as soon as it comes out.

Published in: Education, Technology
1 Comment
9 Likes
Statistics
Notes
  • Saya suka penerangan mengenai javascript.

    Stulangperdana
    www.mdamin76.com/
    www.sprintringtones.org/
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
7,187
On SlideShare
0
From Embeds
0
Number of Embeds
86
Actions
Shares
0
Downloads
111
Comments
1
Likes
9
Embeds 0
No embeds

No notes for slide

The art and pain of teaching JavaScript

  1. The art and pain of teaching JavaScript Christian Heilmann | http://wait-till-i.com | http://twitter.com/codepo8 <head> 2008
  2. Both teaching and learning JavaScript is tough.
  3. Probably the main issue with it is how to get people interested in learning it.
  4. JavaScript information has become a commodity and there are thousands of ready-made solutions available.
  5. The range of people that want to work with JavaScript is staggering.
  6. Designer Java/Ruby/Python/C++ coder
  7. ... which is fun cause 5 years ago neither of these groups wanted to even touch JavaScript.
  8. Still each of these groups want JavaScript to do different things...
  9. ...and work the same way they are used to working.
  10. And that makes it very hard to teach it.
  11. As someone who wants to get to grips with learning JavaScript you are in the same dilemma.
  12. There are hundreds of tutorials on “Learning JavaScript” online.
  13. How could you define which one is good and which isn’t?
  14. We have to consider several types of people who want to use JavaScript.
  15. Users Implementers Tinkerers Developers
  16. Users simply need a JavaScript solution for a certain task. Users Implementers Tinkerers Developers
  17. All they are looking for is a copy and paste script that does something. Users Implementers Tinkerers Developers
  18. You’ll be most successful if you manage to get this implementation in a format they are used to. Users Implementers Tinkerers Developers
  19. “add this script into a document that also has an element with the ID ‘menu’ to get a sliding menu” Users Implementers Tinkerers Developers
  20. “to add client-side validation of your form simply add the following script and mark mandatory fields with a class called ‘mandatory’.” Users Implementers Tinkerers Developers
  21. Tinkerers want a JavaScript solution that can be slightly modified. Users Implementers Tinkerers Developers
  22. This starts with styling the solution differently and ends at heavier customisation (f.e. label translation) Users Implementers Tinkerers Developers
  23. The easier your solution is to customise, the more tinkerers will be happy with it. Users Implementers Tinkerers Developers
  24. Implementers will use your solution and will need much heavier customisation. Users Implementers Tinkerers Developers
  25. Customisation that will be far beyond what you thought your solution was meant to deliver. Users Implementers Tinkerers Developers
  26. What you’ll need to provide there is a way to build upon and extend your solution. Users Implementers Tinkerers Developers
  27. Developers will see your solution as either a base to build upon, inspiration or something to improve. Users Implementers Tinkerers Developers
  28. They are the most vocal, critical and at the same time a very interesting group to reach. Users Implementers Tinkerers Developers
  29. They are people that want to reach under the hood and play with the cables. Users Implementers Tinkerers Developers
  30. Quo Vadis? http://www.flickr.com/photos/stephmcg/2756340726/
  31. The biggest issue with learning JavaScript is that there are too many old and outdated sources of information on the web.
  32. There are a lot of people who provide amazing and up-to-date information.
  33. However, beginners are not likely to ever find this information.
  34. There aren’t any easy ways out of this situation.
  35. Experts are not very inclined to write beginner material.
  36. And the very nature of the web and the workings of search engines favour older material that has been around for a while.
  37. Rewiring is tough Quo Vadis? http://www.flickr.com/photos/cudmore/31741007/
  38. Some people* are working on ideas to tackle this problem. * http://www.thecssdiv.co.uk/2008/09/30/barcamplondon5-slides/
  39. Let’s however now concentrate on building new materials in a way that counteracts attrition.
  40. The first trick is to document what we do more.
  41. “People learn by looking at the source code”
  42. This is how we learnt, yes, but that was because of the lack of good resources.
  43. Looking at source code and copying means we know the how but never the why.
  44. Therefore it might be a good plan to marry code and documentation.
  45. That way code updates mean tutorial updates. http://icant.co.uk/sandbox/tutorialbuilder/ http://jsdoc.sourceforge.net/ http://www.naturaldocs.org/
  46. In terms of code solutions users of our code should never be forced to go in the source and change it to their needs.
  47. Widgets should be easily skinable.
  48. There should be configuration objects for everything that is likely to change.
  49. In order to support implementers we should consider APIs and plugin systems for our solutions.
  50. http://developer.yahoo.com/yui/editor/
  51. Yes, this will make our solutions to be more work and probably make them a bit more bulky.
  52. But it will ensure that we can control the quality even in the future.
  53. Another idea is to consider an update script for widgets and tutorials that flags outdated local installs.
  54. First and foremost all of this needs a change in how we approach delivering JS information.
  55. It shouldn’t be about the quick win and the applause for being the first.
  56. It should be about releasing products that people can use without needing to know what we know.
  57. It should be about releasing without expecting or forcing the users to alter what they don’t understand.
  58. Basically, it should be about not being elitist...
  59. ...and realising that what we had to go through to get where we are now shouldn’t be needed any longer.
  60. Instead we should try to liberate people to be creative in new ways that we consider impossible because of our experience.
  61. Or in other words...
  62. OMG! Technology!
  63. Should turn into...
  64. Sharing the joy! http://www.flickr.com/photos/ptg/2954729291/
  65. Thanks!

×