SlideShare ist ein Scribd-Unternehmen logo
1 von 65
Downloaden Sie, um offline zu lesen
The art and pain of
     teaching
    JavaScript

Christian Heilmann | http://wait-till-i.com | http://twitter.com/codepo8

                             <head> 2008
Both teaching and learning
   JavaScript is tough.
Probably the main issue with
   it is how to get people
  interested in learning it.
JavaScript information has
become a commodity and
  there are thousands of
   ready-made solutions
         available.
The range of people that
want to work with JavaScript
       is staggering.
Designer


           Java/Ruby/Python/C++
                   coder
... which is fun cause 5 years
ago neither of these groups
     wanted to even touch
          JavaScript.
Still each of these groups
  want JavaScript to do
     different things...
...and work the same way
they are used to working.
And that makes it very hard
        to teach it.
As someone who wants to
get to grips with learning
JavaScript you are in the
     same dilemma.
There are hundreds of
tutorials on “Learning
  JavaScript” online.
How could you define which
one is good and which isn’t?
We have to consider several
types of people who want to
       use JavaScript.
Users           Implementers


        Tinkerers         Developers
Users simply need a
JavaScript solution for a
     certain task.

 Users               Implementers

         Tinkerers             Developers
All they are looking for is a
copy and paste script that
      does something.

  Users               Implementers

          Tinkerers             Developers
You’ll be most successful if
  you manage to get this
implementation in a format
     they are used to.
  Users               Implementers

          Tinkerers             Developers
“add this script into a
document that also has an
element with the ID ‘menu’
  to get a sliding menu”
  Users               Implementers

          Tinkerers             Developers
“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
Tinkerers want a JavaScript
solution that can be slightly
          modified.

   Users               Implementers

           Tinkerers             Developers
This starts with styling the
solution differently and ends
at heavier customisation (f.e.
      label translation)
   Users               Implementers

           Tinkerers             Developers
The easier your solution is to
    customise, the more
tinkerers will be happy with
              it.
   Users               Implementers

           Tinkerers             Developers
Implementers will use your
solution and will need much
   heavier customisation.

   Users               Implementers

           Tinkerers             Developers
Customisation that will be
far beyond what you thought
 your solution was meant to
           deliver.
   Users               Implementers

           Tinkerers             Developers
What you’ll need to provide
there is a way to build upon
 and extend your solution.

   Users               Implementers

           Tinkerers             Developers
Developers will see your
solution as either a base to
 build upon, inspiration or
  something to improve.
  Users               Implementers

          Tinkerers             Developers
They are the most vocal,
critical and at the same time
 a very interesting group to
            reach.
   Users               Implementers

           Tinkerers             Developers
They are people that want to
 reach under the hood and
    play with the cables.

   Users               Implementers

           Tinkerers             Developers
Quo Vadis?




         http://www.ïŹ‚ickr.com/photos/stephmcg/2756340726/
The biggest issue with
 learning JavaScript is that
there are too many old and
    outdated sources of
  information on the web.
There are a lot of people
who provide amazing and
 up-to-date information.
However, beginners are not
  likely to ever find this
       information.
There aren’t any easy ways
   out of this situation.
Experts are not very inclined
 to write beginner material.
And the very nature of the
  web and the workings of
search engines favour older
   material that has been
    around for a while.
Rewiring is tough
  Quo Vadis?


              http://www.ïŹ‚ickr.com/photos/cudmore/31741007/
Some people* are working
  on ideas to tackle this
        problem.
* http://www.thecssdiv.co.uk/2008/09/30/barcamplondon5-slides/
Let’s however now
concentrate on building new
  materials in a way that
   counteracts attrition.
The first trick is to document
      what we do more.
“People learn by looking at
    the source code”
This is how we learnt, yes,
but that was because of the
  lack of good resources.
Looking at source code and
copying means we know the
  how but never the why.
Therefore it might be a good
  plan to marry code and
      documentation.
That way code updates mean
      tutorial updates.

http://icant.co.uk/sandbox/tutorialbuilder/
http://jsdoc.sourceforge.net/
http://www.naturaldocs.org/
In terms of code solutions
  users of our code should
never be forced to go in the
source and change it to their
           needs.
Widgets should be easily
       skinable.
There should be
 configuration objects for
everything that is likely to
         change.
In order to support
 implementers we should
consider APIs and plugin
systems for our solutions.
http://developer.yahoo.com/yui/editor/
Yes, this will make our
solutions to be more work
and probably make them a
      bit more bulky.
But it will ensure that we can
 control the quality even in
           the future.
Another idea is to consider
an update script for widgets
   and tutorials that flags
   outdated local installs.
First and foremost all of this
 needs a change in how we
   approach delivering JS
        information.
It shouldn’t be about the
quick win and the applause
     for being the first.
It should be about releasing
products that people can use
  without needing to know
       what we know.
It should be about releasing
without expecting or forcing
the users to alter what they
      don’t understand.
Basically, it should be about
     not being elitist...
...and realising that what we
   had to go through to get
where we are now shouldn’t
    be needed any longer.
Instead we should try to
    liberate people to be
creative in new ways that we
consider impossible because
      of our experience.
Or in other words...
OMG! Technology!
Should turn into...
Sharing the joy!
            http://www.ïŹ‚ickr.com/photos/ptg/2954729291/
Thanks!

Weitere Àhnliche Inhalte

Ähnlich wie The art and pain of teaching JavaScript

Sum of the Parts Speaker Series - Experience Engineering and UX
Sum of the Parts Speaker Series - Experience Engineering and UXSum of the Parts Speaker Series - Experience Engineering and UX
Sum of the Parts Speaker Series - Experience Engineering and UXvincebohner
 
The Superhero’s Method of Modern HTML5 Development by RapidValue Solutions
The Superhero’s Method of Modern HTML5 Development by RapidValue SolutionsThe Superhero’s Method of Modern HTML5 Development by RapidValue Solutions
The Superhero’s Method of Modern HTML5 Development by RapidValue SolutionsRapidValue
 
Startup Institute NYC: Styling
Startup Institute NYC: StylingStartup Institute NYC: Styling
Startup Institute NYC: StylingMatthew Gerrior
 
Technologies A MERN Stack Developer Should Learn in 2022.pptx
Technologies A MERN Stack Developer Should Learn in 2022.pptxTechnologies A MERN Stack Developer Should Learn in 2022.pptx
Technologies A MERN Stack Developer Should Learn in 2022.pptx75waytechnologies
 
Hey open source, don’t forget the user! - by Chad Kieffer
Hey open source,  don’t forget the user! - by Chad KiefferHey open source,  don’t forget the user! - by Chad Kieffer
Hey open source, don’t forget the user! - by Chad Kiefferdmthompson
 
Front End: Building Future-Proof eCommerce Sites.pdf
Front End: Building Future-Proof eCommerce Sites.pdfFront End: Building Future-Proof eCommerce Sites.pdf
Front End: Building Future-Proof eCommerce Sites.pdfWP Engine
 
Professional web development with libraries
Professional web development with librariesProfessional web development with libraries
Professional web development with librariesChristian Heilmann
 
Stop making these mistakes when using react native to build apps
Stop making these mistakes when using react native to build appsStop making these mistakes when using react native to build apps
Stop making these mistakes when using react native to build appsMoon Technolabs Pvt. Ltd.
 
Roadmap to Become a Pro in MERN Stack Development
Roadmap to Become a Pro in MERN Stack DevelopmentRoadmap to Become a Pro in MERN Stack Development
Roadmap to Become a Pro in MERN Stack Development75waytechnologies
 
The State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistThe State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistMark Fayngersh
 
Resisting The Feature Creature
Resisting The Feature CreatureResisting The Feature Creature
Resisting The Feature CreatureChristian Heilmann
 
Fuel for a great web experience
Fuel for a great web experienceFuel for a great web experience
Fuel for a great web experienceChristian Heilmann
 
MERN Stack - A Perfect Stack to Choose in 2022.pptx
MERN Stack - A Perfect Stack to Choose in 2022.pptxMERN Stack - A Perfect Stack to Choose in 2022.pptx
MERN Stack - A Perfect Stack to Choose in 2022.pptx75waytechnologies
 
The road to professional web development
The road to professional web developmentThe road to professional web development
The road to professional web developmentChristian Heilmann
 
Quo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteQuo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteChristian Heilmann
 
DSC Aswan University info session
DSC Aswan University info sessionDSC Aswan University info session
DSC Aswan University info sessionAhmedHany131
 
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...DevDay.org
 
Everything You Need to Know About Hiring Node.pdf
Everything You Need to Know About Hiring Node.pdfEverything You Need to Know About Hiring Node.pdf
Everything You Need to Know About Hiring Node.pdfNoman Shaikh
 

Ähnlich wie The art and pain of teaching JavaScript (20)

Sum of the Parts Speaker Series - Experience Engineering and UX
Sum of the Parts Speaker Series - Experience Engineering and UXSum of the Parts Speaker Series - Experience Engineering and UX
Sum of the Parts Speaker Series - Experience Engineering and UX
 
The Superhero’s Method of Modern HTML5 Development by RapidValue Solutions
The Superhero’s Method of Modern HTML5 Development by RapidValue SolutionsThe Superhero’s Method of Modern HTML5 Development by RapidValue Solutions
The Superhero’s Method of Modern HTML5 Development by RapidValue Solutions
 
Startup Institute NYC: Styling
Startup Institute NYC: StylingStartup Institute NYC: Styling
Startup Institute NYC: Styling
 
Technologies A MERN Stack Developer Should Learn in 2022.pptx
Technologies A MERN Stack Developer Should Learn in 2022.pptxTechnologies A MERN Stack Developer Should Learn in 2022.pptx
Technologies A MERN Stack Developer Should Learn in 2022.pptx
 
Hey open source, don’t forget the user! - by Chad Kieffer
Hey open source,  don’t forget the user! - by Chad KiefferHey open source,  don’t forget the user! - by Chad Kieffer
Hey open source, don’t forget the user! - by Chad Kieffer
 
Front End: Building Future-Proof eCommerce Sites.pdf
Front End: Building Future-Proof eCommerce Sites.pdfFront End: Building Future-Proof eCommerce Sites.pdf
Front End: Building Future-Proof eCommerce Sites.pdf
 
Professional web development with libraries
Professional web development with librariesProfessional web development with libraries
Professional web development with libraries
 
Stop making these mistakes when using react native to build apps
Stop making these mistakes when using react native to build appsStop making these mistakes when using react native to build apps
Stop making these mistakes when using react native to build apps
 
Roadmap to Become a Pro in MERN Stack Development
Roadmap to Become a Pro in MERN Stack DevelopmentRoadmap to Become a Pro in MERN Stack Development
Roadmap to Become a Pro in MERN Stack Development
 
The State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistThe State of Front-end At CrowdTwist
The State of Front-end At CrowdTwist
 
Resisting The Feature Creature
Resisting The Feature CreatureResisting The Feature Creature
Resisting The Feature Creature
 
Fuel for a great web experience
Fuel for a great web experienceFuel for a great web experience
Fuel for a great web experience
 
MERN Stack - A Perfect Stack to Choose in 2022.pptx
MERN Stack - A Perfect Stack to Choose in 2022.pptxMERN Stack - A Perfect Stack to Choose in 2022.pptx
MERN Stack - A Perfect Stack to Choose in 2022.pptx
 
Enabling Lean at Enterprise Scale: Lean Engineering in Action
Enabling Lean at Enterprise Scale: Lean Engineering in ActionEnabling Lean at Enterprise Scale: Lean Engineering in Action
Enabling Lean at Enterprise Scale: Lean Engineering in Action
 
The road to professional web development
The road to professional web developmentThe road to professional web development
The road to professional web development
 
Quo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteQuo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynote
 
DSC Aswan University info session
DSC Aswan University info sessionDSC Aswan University info session
DSC Aswan University info session
 
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
 
BackEnd-Roadmap.pdf
BackEnd-Roadmap.pdfBackEnd-Roadmap.pdf
BackEnd-Roadmap.pdf
 
Everything You Need to Know About Hiring Node.pdf
Everything You Need to Know About Hiring Node.pdfEverything You Need to Know About Hiring Node.pdf
Everything You Need to Know About Hiring Node.pdf
 

Mehr von Christian Heilmann

Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019Christian Heilmann
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilegeChristian Heilmann
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloChristian Heilmann
 
Artificial intelligence for humans
 #AIDC2018 keynote
Artificial intelligence for humans
 #AIDC2018 keynoteArtificial intelligence for humans
 #AIDC2018 keynote
Artificial intelligence for humans
 #AIDC2018 keynoteChristian Heilmann
 
Killing the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteKilling the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteChristian Heilmann
 
Progressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandProgressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandChristian Heilmann
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilegeChristian Heilmann
 
Five ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerFive ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerChristian Heilmann
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Christian Heilmann
 
You learned JavaScript - now what?
You learned JavaScript - now what?You learned JavaScript - now what?
You learned JavaScript - now what?Christian Heilmann
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Christian Heilmann
 
Progressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReachProgressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReachChristian Heilmann
 
Progressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worldsProgressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worldsChristian Heilmann
 
Non-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humansNon-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humansChristian Heilmann
 
Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center Christian Heilmann
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlChristian Heilmann
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Christian Heilmann
 
The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)Christian Heilmann
 

Mehr von Christian Heilmann (20)

Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019
 
Hinting at a better web
Hinting at a better webHinting at a better web
Hinting at a better web
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilege
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC Oslo
 
Artificial intelligence for humans
 #AIDC2018 keynote
Artificial intelligence for humans
 #AIDC2018 keynoteArtificial intelligence for humans
 #AIDC2018 keynote
Artificial intelligence for humans
 #AIDC2018 keynote
 
Killing the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynoteKilling the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynote
 
Progressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandProgressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays Finland
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilege
 
Five ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developerFive ways to be a happier JavaScript developer
Five ways to be a happier JavaScript developer
 
Taking the P out of PWA
Taking the P out of PWATaking the P out of PWA
Taking the P out of PWA
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
 
You learned JavaScript - now what?
You learned JavaScript - now what?You learned JavaScript - now what?
You learned JavaScript - now what?
 
Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"Sacrificing the golden calf of "coding"
Sacrificing the golden calf of "coding"
 
Progressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReachProgressive Web Apps - Covering the best of both worlds - DevReach
Progressive Web Apps - Covering the best of both worlds - DevReach
 
Progressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worldsProgressive Web Apps - Covering the best of both worlds
Progressive Web Apps - Covering the best of both worlds
 
Non-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humansNon-trivial pursuits: Learning machines and forgetful humans
Non-trivial pursuits: Learning machines and forgetful humans
 
Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center Progressive Web Apps - Bringing the web front and center
Progressive Web Apps - Bringing the web front and center
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. Control
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017
 
The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)The Soul in The Machine - Developing for Humans (FrankenJS edition)
The Soul in The Machine - Developing for Humans (FrankenJS edition)
 

KĂŒrzlich hochgeladen

Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfErwinPantujan2
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
Visit to a blind student's school🧑‍🩯🧑‍🩯(community medicine)
Visit to a blind student's school🧑‍🩯🧑‍🩯(community medicine)Visit to a blind student's school🧑‍🩯🧑‍🩯(community medicine)
Visit to a blind student's school🧑‍🩯🧑‍🩯(community medicine)lakshayb543
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomnelietumpap1
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)cama23
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxMaryGraceBautista27
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 

KĂŒrzlich hochgeladen (20)

Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
 
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptxYOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
YOUVE_GOT_EMAIL_PRELIMS_EL_DORADO_2024.pptx
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
Visit to a blind student's school🧑‍🩯🧑‍🩯(community medicine)
Visit to a blind student's school🧑‍🩯🧑‍🩯(community medicine)Visit to a blind student's school🧑‍🩯🧑‍🩯(community medicine)
Visit to a blind student's school🧑‍🩯🧑‍🩯(community medicine)
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
ENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choomENGLISH6-Q4-W3.pptxqurter our high choom
ENGLISH6-Q4-W3.pptxqurter our high choom
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptx
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptxLEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
LEFT_ON_C'N_ PRELIMS_EL_DORADO_2024.pptx
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 

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.ïŹ‚ickr.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.ïŹ‚ickr.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.
  • 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...
  • 64. Sharing the joy! http://www.ïŹ‚ickr.com/photos/ptg/2954729291/