SlideShare a Scribd company logo
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.flickr.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.flickr.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.flickr.com/photos/ptg/2954729291/
Thanks!

More Related Content

Similar to 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 UX
vincebohner
 
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
RapidValue
 
Startup Institute NYC: Styling
Startup Institute NYC: StylingStartup Institute NYC: Styling
Startup Institute NYC: Styling
Matthew 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.pptx
75waytechnologies
 
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.pdf
WP Engine
 
Professional web development with libraries
Professional web development with librariesProfessional web development with libraries
Professional web development with libraries
Christian 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 apps
Moon 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 Development
75waytechnologies
 
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 Creature
Christian Heilmann
 
Fuel for a great web experience
Fuel for a great web experienceFuel for a great web experience
Fuel for a great web experience
Christian 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.pptx
75waytechnologies
 
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
Hyperdrive Agile Leadership (powered by Bratton & Company)
 
The road to professional web development
The road to professional web developmentThe road to professional web development
The road to professional web development
Christian Heilmann
 
Quo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteQuo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynote
Christian Heilmann
 
DSC Aswan University info session
DSC Aswan University info sessionDSC Aswan University info session
DSC Aswan University info session
AhmedHany131
 
[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
 
BackEnd-Roadmap.pdf
BackEnd-Roadmap.pdfBackEnd-Roadmap.pdf
BackEnd-Roadmap.pdf
Mohankumar975815
 
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
Noman Shaikh
 

Similar to 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
 

More from Christian Heilmann

Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019Develop, Debug, Learn? - Dotjs2019
Develop, Debug, Learn? - Dotjs2019
Christian Heilmann
 
Hinting at a better web
Hinting at a better webHinting at a better web
Hinting at a better web
Christian Heilmann
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilege
Christian 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 Oslo
Christian Heilmann
 
Artificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynoteArtificial intelligence for humans… #AIDC2018 keynote
Artificial intelligence for humans… #AIDC2018 keynote
Christian 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 keynote
Christian Heilmann
 
Progressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays FinlandProgressive Web Apps - Techdays Finland
Progressive Web Apps - Techdays Finland
Christian Heilmann
 
Taking the "vile" out of privilege
Taking the "vile" out of privilegeTaking the "vile" out of privilege
Taking the "vile" out of privilege
Christian 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 developer
Christian Heilmann
 
Taking the P out of PWA
Taking the P out of PWATaking the P out of PWA
Taking the P out of PWA
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
 
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 - DevReach
Christian 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 worlds
Christian 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 humans
Christian 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. Control
Christian Heilmann
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017
Christian 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
 

More from 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)
 

Recently uploaded

Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptxChapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
Nguyen Thanh Tu Collection
 
Normal Labour/ Stages of Labour/ Mechanism of Labour
Normal Labour/ Stages of Labour/ Mechanism of LabourNormal Labour/ Stages of Labour/ Mechanism of Labour
Normal Labour/ Stages of Labour/ Mechanism of Labour
Wasim Ak
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
camakaiclarkmusic
 
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama UniversityNatural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Akanksha trivedi rama nursing college kanpur.
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
Peter Windle
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
vaibhavrinwa19
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
Jisc
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
Jean Carlos Nunes Paixão
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
Delapenabediema
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
Celine George
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
EduSkills OECD
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
JosvitaDsouza2
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
Israel Genealogy Research Association
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
Jisc
 
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Dr. Vinod Kumar Kanvaria
 
Digital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments UnitDigital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments Unit
chanes7
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
Academy of Science of South Africa
 
Digital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion DesignsDigital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion Designs
chanes7
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
MysoreMuleSoftMeetup
 

Recently uploaded (20)

Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptxChapter 4 - Islamic Financial Institutions in Malaysia.pptx
Chapter 4 - Islamic Financial Institutions in Malaysia.pptx
 
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
BÀI TẬP BỔ TRỢ TIẾNG ANH GLOBAL SUCCESS LỚP 3 - CẢ NĂM (CÓ FILE NGHE VÀ ĐÁP Á...
 
Normal Labour/ Stages of Labour/ Mechanism of Labour
Normal Labour/ Stages of Labour/ Mechanism of LabourNormal Labour/ Stages of Labour/ Mechanism of Labour
Normal Labour/ Stages of Labour/ Mechanism of Labour
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
 
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama UniversityNatural birth techniques - Mrs.Akanksha Trivedi Rama University
Natural birth techniques - Mrs.Akanksha Trivedi Rama University
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
 
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
 
Digital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments UnitDigital Artifact 1 - 10VCD Environments Unit
Digital Artifact 1 - 10VCD Environments Unit
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
 
Digital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion DesignsDigital Artifact 2 - Investigating Pavilion Designs
Digital Artifact 2 - Investigating Pavilion Designs
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
 

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.
  • 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.flickr.com/photos/ptg/2954729291/