SlideShare a Scribd company logo
Writing engaging tutorials
  Making them come back for more


                     Christian Heilmann
           Yahoo! Frontend Engineering Summit UK
                       December 2007

       http://creativecommons.org/licenses/by-sa/3.0/
There is no perfect tutorial.
… as there is no “one”
      audience.
One thing to keep in mind is
  the perceived speed of the
internet and the impatience of
          developers.
We are much more patient
when it comes to assembling
 a plumbing unit in our flat
than when it comes to using
    other people’s code.
Developers work with the
IKEA model when using code
     that is not theirs:
Developers work with the
IKEA model when using code
     that is not theirs:

 Open it, mess around, start
reading when you get stuck.
Developers work with the
IKEA model when using code
     that is not theirs:

 Open it, mess around, start
reading when you get stuck.
  Complain when you find a
   channel that answers.
Readers I encountered:
Readers I encountered:

– Give me all the information, I find
  what I need.
Readers I encountered:

– Give me all the information, I find
  what I need.
– Get me a step-by-step instruction
  how to do things
Readers I encountered:

– Give me all the information, I find
  what I need.
– Get me a step-by-step instruction
  how to do things
– I want to click on things and see
  how they work, then read.
Readers I encountered:
Readers I encountered:

– I need something to copy + paste
  and get on with it myself
Readers I encountered:

– I need something to copy + paste
  and get on with it myself
– I don’t get it, can you show me?
Readers I encountered:

– I need something to copy + paste
  and get on with it myself
– I don’t get it, can you show me?
– Doesn’t work for me, I know better
  and this never worked in my
  professional environment.
Catering for them all is tricky.
However, readers are not
Pokemons – you don’t need
    to catch them all.
Start with the basics
Start with the basics

– Why is this a good idea
– Which real-life day to day web
  development problem is solved by it.
– What is the level of this tutorial – what
  do you need to know.
– Show a prominent link to a working
  example – if there is a visual outcome
  use a linked screenshot.
Start with the basics

– Why is this a good idea
– Which real-life day to day web
  development problem is solved by it.
– What is the level of this tutorial – what
  do you need to know.
– Show a prominent link to a working
  example – if there is a visual outcome
  use a linked screenshot.
Start with the basics

– Why is this a good idea
– Which real-life day to day web
  development problem is solved by it.
– What is the level of this tutorial – what
  do you need to know.
– Show a prominent link to a working
  example – if there is a visual outcome
  use a linked screenshot.
Start with the basics

– Why is this a good idea
– Which real-life day to day web
  development problem is solved by it.
– What is the level of this tutorial – what
  do you need to know.
– Show a prominent link to a working
  example – if there is a visual outcome
  use a linked screenshot.
Start with the basics

– Offer links to full documentation
  elsewhere (W3C, MSDN, YDN)
– Offer the download package with code
  examples or image templates upfront.
– Give an estimate as to how long it
  should take to go through this tutorial.
– Say your name, a way to contact you
  and when you wrote this.
Start with the basics

– Offer links to full documentation
  elsewhere (W3C, MSDN, YDN)
– Offer the download package with code
  examples or image templates upfront.
– Give an estimate as to how long it
  should take to go through this tutorial.
– Say your name, a way to contact you
  and when you wrote this.
Start with the basics

– Offer links to full documentation
  elsewhere (W3C, MSDN, YDN)
– Offer the download package with code
  examples or image templates upfront.
– Give an estimate as to how long it
  should take to go through this tutorial.
– Say your name, a way to contact you
  and when you wrote this.
Start with the basics

– Offer links to full documentation
  elsewhere (W3C, MSDN, YDN)
– Offer the download package with code
  examples or image templates upfront.
– Give an estimate as to how long it
  should take to go through this tutorial.
– Say your name, a way to contact you
  and when you wrote this.
Start with the basics

– Offer links to full documentation
  elsewhere (W3C, MSDN, YDN)
– Offer the download package with code
  examples or image templates upfront.
– Give an estimate as to how long it
  should take to go through this tutorial.
– Say your name, a way to contact you
  and when you wrote this.
Offer landmarks
Offer landmarks
– Offer a “quick jump / table of contents”
  feature – this also allows bookmarking
– Cut the tutorial up into logical steps /
  units with useful headings (don’t try to
  be funny)
– Add a link to the state of the code at
  each step – so people can follow the
  changes without needing to copy and
  paste.
Offer landmarks
– Offer a “quick jump / table of contents”
  feature – this also allows bookmarking
– Cut the tutorial up into logical steps /
  units with useful headings (don’t try to
  be funny)
– Add a link to the state of the code at
  each step – so people can follow the
  changes without needing to copy and
  paste.
Offer landmarks
– Offer a “quick jump / table of contents”
  feature – this also allows bookmarking
– Cut the tutorial up into logical steps /
  units with useful headings (don’t try to
  be funny)
– Add a link to the state of the code at
  each step – so people can follow the
  changes without needing to copy and
  paste.
Language
Language

– PBE - Plain Bloody English
– Explain your TLAs
– Explain product names and special
  terms
– Use short sentences.
– Avoid the “I”, instead invite the reader
  with a “then you can do…” or a “Let’s…”
Language

– PBE - Plain Bloody English
– Explain your TLAs
– Explain product names and special
  terms
– Use short sentences.
– Avoid the “I”, instead invite the reader
  with a “then you can do…” or a “Let’s…”
Language

– PBE - Plain Bloody English
– Explain your TLAs
– Explain product names and special
  terms
– Use short sentences.
– Avoid the “I”, instead invite the reader
  with a “then you can do…” or a “Let’s…”
Language

– PBE - Plain Bloody English
– Explain your TLAs
– Explain product names and special
  terms
– Use short sentences.
– Avoid the “I”, instead invite the reader
  with a “then you can do…” or a “Let’s…”
Language

– PBE - Plain Bloody English
– Explain your TLAs
– Explain product names and special
  terms
– Use short sentences.
– Avoid the “I”, instead invite the reader
  with a “then you can do…” or a “Let’s…”
Language

– PBE - Plain Bloody English
– Explain your TLAs
– Explain product names and special
  terms
– Use short sentences.
– Avoid the “I” - instead invite the reader
  with a “then you can do…” or a “Let’s…”
Credibility
Credibility

– Back up your statements with examples.
– Back up your statements with third party
  resources.
– Never hush up errors you made. If
  feedback changes your tutorial, thank
  the commenter and add the changes.
  <del>/<ins>
Credibility

– Back up your statements with examples.
– Back up your statements with third party
  resources.
– Never hush up errors you made. If
  feedback changes your tutorial, thank
  the commenter and add the changes.
  <del>/<ins>
Credibility

– Back up your statements with examples.
– Back up your statements with third party
  resources.
– Never hush up errors you made. If
  feedback changes your tutorial, thank
  the commenter and add the changes.
  <del>/<ins>
Credibility

– Back up your statements with examples.
– Back up your statements with third party
  resources.
– Never hush up errors you made. If
  feedback changes your tutorial, thank
  the commenter and add the changes.
  <del>/<ins>
– Have an editor / reviewer
Leaving them hungry
Leaving them hungry

– Offer extra problems / other application
  ideas at the end and let people try them
  out.
– Hint at more tricks in the same vain or
  link to other tutorials.
– Show high-class solutions using that
  trick (which awesome sites use it)
Leaving them hungry

– Offer extra problems / other application
  ideas at the end and let people try them
  out.
– Hint at more tricks in the same vain or
  link to other tutorials.
– Show high-class solutions using that
  trick (which awesome sites use it)
Leaving them hungry

– Offer extra problems / other application
  ideas at the end and let people try them
  out.
– Hint at more tricks in the same vain or
  link to other tutorials.
– Show high-class solutions using that
  trick (which awesome sites use it)
Traps to avoid!

– Don’t offer the solutions to code
  exercises, people will only copy + paste
  and learn nothing.
– Don’t cut up code into non-executable
  chunks, show the whole script then
  repeat the parts bit-by-bit.
– Stick to one solution per tutorial and
  explain this one well.
Traps to avoid!

– Don’t offer the solutions to code
  exercises, people will only copy + paste
  and learn nothing.
– Don’t cut up code into non-executable
  chunks, show the whole script then
  repeat the parts bit-by-bit.
– Stick to one solution per tutorial and
  explain this one well.
Traps to avoid!

– Don’t offer the solutions to code
  exercises, people will only copy + paste
  and learn nothing.
– Don’t cut up code into non-executable
  chunks, show the whole script then
  repeat the parts bit-by-bit.
– Stick to one solution per tutorial and
  explain this one well.
Traps to avoid!

– Don’t offer the solutions to code
  exercises, people will only copy + paste
  and learn nothing.
– Don’t cut up code into non-executable
  chunks, show the whole script then
  repeat the parts bit-by-bit.
– Stick to one solution per tutorial and
  explain this one well.
Maintenance
Maintenance

– Don’t leave your tutorials to collect
  dust.
– If they become outdated, find a
  better, up-to-date solution and link
  or even redirect to this one.
– We have more than enough
  information graveyards.
Maintenance

– Don’t leave your tutorials to collect
  dust.
– If they become outdated, find a
  better, up-to-date solution and link
  or even redirect to this one.
– We have more than enough
  information graveyards.
Maintenance

– Don’t leave your tutorials to collect
  dust.
– If they become outdated, find a
  better, up-to-date solution and link
  or even redirect to this one.
– We have more than enough
  information graveyards.
What are you in for?

– Last but not least, it is not about
  you!
– You will get positive and negative
  comments targeted at you and not
  the subject.
– Don’t take any of these serious.
– Most of your readers will never
  contact you or take part.
What are you in for?

– Last but not least, it is not about
  you!
– You will get positive and negative
  comments targeted at you and not
  the subject.
– Don’t take any of these serious.
– Most of your readers will never
  contact you or take part.
What are you in for?

– Last but not least, it is not about
  you!
– You will get positive and negative
  comments targeted at you and not
  the subject.
– Don’t take any of these serious.
– Most of your readers will never
  contact you or take part.
What are you in for?

– Last but not least, it is not about
  you!
– You will get positive and negative
  comments targeted at you and not
  the subject.
– Don’t take any of these serious.
– Most of your readers will never
  contact you or take part.
What are you in for?

– Last but not least, it is not about
  you!
– You will get positive and negative
  comments targeted at you and not
  the subject.
– Don’t take any of these serious.
– Most of your readers will never
  contact you or take part.
THANKS!


    http://wait-till-i.com
chris.heilmann@gmail.com

More Related Content

What's hot

Hanging legal medicine
Hanging legal medicineHanging legal medicine
Hanging legal medicine
SalimKun
 
胎兒醫學影像中心
胎兒醫學影像中心胎兒醫學影像中心
胎兒醫學影像中心
mo mo
 
Signature Analysis
Signature AnalysisSignature Analysis
Signature Analysis
Rajarshi Ghosh
 
The sale of human organs should be legal
The sale of human organs should be legalThe sale of human organs should be legal
The sale of human organs should be legal
Amit Prakash Singh
 
Introduction to fmt
Introduction to fmtIntroduction to fmt
Introduction to fmt
Imran Sabri
 
Basics of CT & MRI
Basics of CT & MRIBasics of CT & MRI
Basics of CT & MRI
Vibhuti Kaul
 
Presentation on FORENSIC DOCUMENT EXAMINATION.ppt
Presentation on FORENSIC DOCUMENT EXAMINATION.pptPresentation on FORENSIC DOCUMENT EXAMINATION.ppt
Presentation on FORENSIC DOCUMENT EXAMINATION.ppt
RakeshPandey951330
 
Inflammation
InflammationInflammation
Inflammation
Nabeela Basha
 
Forensic Science - 09 Autopsy
Forensic Science - 09 AutopsyForensic Science - 09 Autopsy
Forensic Science - 09 Autopsy
Ian Anderson
 
Forensic pathology
Forensic pathologyForensic pathology
Forensic pathology
Mohamad Iqbal
 
History of Writing (GRAPHOLOGY)
History of Writing (GRAPHOLOGY)History of Writing (GRAPHOLOGY)
History of Writing (GRAPHOLOGY)
Buthainah Hamdy
 
Forensic medicine and its branches
Forensic medicine and its branchesForensic medicine and its branches
Forensic medicine and its branches
Dr Arman Hossain
 
identification of Race in Forensic medicine
identification of Race in Forensic medicineidentification of Race in Forensic medicine
identification of Race in Forensic medicine
chetan samra
 
Head injuries in forensic medicine
Head injuries in forensic medicineHead injuries in forensic medicine
Head injuries in forensic medicine
Just Jax
 

What's hot (14)

Hanging legal medicine
Hanging legal medicineHanging legal medicine
Hanging legal medicine
 
胎兒醫學影像中心
胎兒醫學影像中心胎兒醫學影像中心
胎兒醫學影像中心
 
Signature Analysis
Signature AnalysisSignature Analysis
Signature Analysis
 
The sale of human organs should be legal
The sale of human organs should be legalThe sale of human organs should be legal
The sale of human organs should be legal
 
Introduction to fmt
Introduction to fmtIntroduction to fmt
Introduction to fmt
 
Basics of CT & MRI
Basics of CT & MRIBasics of CT & MRI
Basics of CT & MRI
 
Presentation on FORENSIC DOCUMENT EXAMINATION.ppt
Presentation on FORENSIC DOCUMENT EXAMINATION.pptPresentation on FORENSIC DOCUMENT EXAMINATION.ppt
Presentation on FORENSIC DOCUMENT EXAMINATION.ppt
 
Inflammation
InflammationInflammation
Inflammation
 
Forensic Science - 09 Autopsy
Forensic Science - 09 AutopsyForensic Science - 09 Autopsy
Forensic Science - 09 Autopsy
 
Forensic pathology
Forensic pathologyForensic pathology
Forensic pathology
 
History of Writing (GRAPHOLOGY)
History of Writing (GRAPHOLOGY)History of Writing (GRAPHOLOGY)
History of Writing (GRAPHOLOGY)
 
Forensic medicine and its branches
Forensic medicine and its branchesForensic medicine and its branches
Forensic medicine and its branches
 
identification of Race in Forensic medicine
identification of Race in Forensic medicineidentification of Race in Forensic medicine
identification of Race in Forensic medicine
 
Head injuries in forensic medicine
Head injuries in forensic medicineHead injuries in forensic medicine
Head injuries in forensic medicine
 

Similar to Writing engaging tutorials

Science-Fair Project - (Template)
Science-Fair Project - (Template)Science-Fair Project - (Template)
Science-Fair Project - (Template)
Geogropedia World
 
I Want 2 Do Project Tell Me Wat 2 Do
I Want 2 Do Project Tell Me Wat 2 DoI Want 2 Do Project Tell Me Wat 2 Do
I Want 2 Do Project Tell Me Wat 2 Do
Felipe Cerda
 
Salt Rapid Prototyping 030310
Salt Rapid Prototyping 030310Salt Rapid Prototyping 030310
Salt Rapid Prototyping 030310
Lisa Meece
 
Why You're A Bad PHP Programmer
Why You're A Bad PHP ProgrammerWhy You're A Bad PHP Programmer
Why You're A Bad PHP Programmer
KLabCyscorpions-TechBlog
 
Intro to Web 2.0 for Educators
Intro to Web 2.0 for EducatorsIntro to Web 2.0 for Educators
Intro to Web 2.0 for Educators
Stephen Best
 
Give a Great Tech Talk
Give a Great Tech TalkGive a Great Tech Talk
Give a Great Tech Talk
jberkus
 
How To Use Powerpoint -- A Briefing
How To Use Powerpoint -- A BriefingHow To Use Powerpoint -- A Briefing
How To Use Powerpoint -- A Briefing
Rohn Jay Miller
 
How Not Php
How Not PhpHow Not Php
How Not Php
Achmad Solichin
 
Building reusable components with generics and protocols
Building reusable components with generics and protocolsBuilding reusable components with generics and protocols
Building reusable components with generics and protocols
Donny Wals
 
CMS 210: Introduction to Web Accessibility
CMS 210: Introduction to Web AccessibilityCMS 210: Introduction to Web Accessibility
CMS 210: Introduction to Web Accessibility
Montana State University
 
Building a site for people with big imaginations
Building a site for people with big imaginationsBuilding a site for people with big imaginations
Building a site for people with big imaginations
Mark Mansour
 
+100 Prompts to Create Content with ChatGPT
+100 Prompts to Create Content with ChatGPT+100 Prompts to Create Content with ChatGPT
+100 Prompts to Create Content with ChatGPT
Carl Remi Beauregard
 
Coaching teams in creative problem solving
Coaching teams in creative problem solvingCoaching teams in creative problem solving
Coaching teams in creative problem solving
Flowa Oy
 
Culture And Aesthetic Revisited
Culture And Aesthetic RevisitedCulture And Aesthetic Revisited
Culture And Aesthetic Revisited
Adam Keys
 
Intuitive images: tips and techniques for creating and evaluating graphics in...
Intuitive images: tips and techniques for creating and evaluating graphics in...Intuitive images: tips and techniques for creating and evaluating graphics in...
Intuitive images: tips and techniques for creating and evaluating graphics in...
TCUK
 
Rails Conf Talk Slides
Rails Conf Talk SlidesRails Conf Talk Slides
Rails Conf Talk Slides
RubyOnRails_dude
 
Technical Writing For Consultants
Technical Writing For ConsultantsTechnical Writing For Consultants
Technical Writing For Consultants
rlucera
 
Building resuable and customizable Vue components
Building resuable and customizable Vue componentsBuilding resuable and customizable Vue components
Building resuable and customizable Vue components
Filip Rakowski
 
Hr pts-e-dn-version 2.0
Hr pts-e-dn-version 2.0Hr pts-e-dn-version 2.0
Hr pts-e-dn-version 2.0
Paul Robere
 
Presentations With Powerpoint
Presentations With PowerpointPresentations With Powerpoint
Presentations With Powerpoint
guestf64d10
 

Similar to Writing engaging tutorials (20)

Science-Fair Project - (Template)
Science-Fair Project - (Template)Science-Fair Project - (Template)
Science-Fair Project - (Template)
 
I Want 2 Do Project Tell Me Wat 2 Do
I Want 2 Do Project Tell Me Wat 2 DoI Want 2 Do Project Tell Me Wat 2 Do
I Want 2 Do Project Tell Me Wat 2 Do
 
Salt Rapid Prototyping 030310
Salt Rapid Prototyping 030310Salt Rapid Prototyping 030310
Salt Rapid Prototyping 030310
 
Why You're A Bad PHP Programmer
Why You're A Bad PHP ProgrammerWhy You're A Bad PHP Programmer
Why You're A Bad PHP Programmer
 
Intro to Web 2.0 for Educators
Intro to Web 2.0 for EducatorsIntro to Web 2.0 for Educators
Intro to Web 2.0 for Educators
 
Give a Great Tech Talk
Give a Great Tech TalkGive a Great Tech Talk
Give a Great Tech Talk
 
How To Use Powerpoint -- A Briefing
How To Use Powerpoint -- A BriefingHow To Use Powerpoint -- A Briefing
How To Use Powerpoint -- A Briefing
 
How Not Php
How Not PhpHow Not Php
How Not Php
 
Building reusable components with generics and protocols
Building reusable components with generics and protocolsBuilding reusable components with generics and protocols
Building reusable components with generics and protocols
 
CMS 210: Introduction to Web Accessibility
CMS 210: Introduction to Web AccessibilityCMS 210: Introduction to Web Accessibility
CMS 210: Introduction to Web Accessibility
 
Building a site for people with big imaginations
Building a site for people with big imaginationsBuilding a site for people with big imaginations
Building a site for people with big imaginations
 
+100 Prompts to Create Content with ChatGPT
+100 Prompts to Create Content with ChatGPT+100 Prompts to Create Content with ChatGPT
+100 Prompts to Create Content with ChatGPT
 
Coaching teams in creative problem solving
Coaching teams in creative problem solvingCoaching teams in creative problem solving
Coaching teams in creative problem solving
 
Culture And Aesthetic Revisited
Culture And Aesthetic RevisitedCulture And Aesthetic Revisited
Culture And Aesthetic Revisited
 
Intuitive images: tips and techniques for creating and evaluating graphics in...
Intuitive images: tips and techniques for creating and evaluating graphics in...Intuitive images: tips and techniques for creating and evaluating graphics in...
Intuitive images: tips and techniques for creating and evaluating graphics in...
 
Rails Conf Talk Slides
Rails Conf Talk SlidesRails Conf Talk Slides
Rails Conf Talk Slides
 
Technical Writing For Consultants
Technical Writing For ConsultantsTechnical Writing For Consultants
Technical Writing For Consultants
 
Building resuable and customizable Vue components
Building resuable and customizable Vue componentsBuilding resuable and customizable Vue components
Building resuable and customizable Vue components
 
Hr pts-e-dn-version 2.0
Hr pts-e-dn-version 2.0Hr pts-e-dn-version 2.0
Hr pts-e-dn-version 2.0
 
Presentations With Powerpoint
Presentations With PowerpointPresentations With Powerpoint
Presentations With Powerpoint
 

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

Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
welrejdoall
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
Liveplex
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
jackson110191
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
BookNet Canada
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
KAMAL CHOUDHARY
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
RaminGhanbari2
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Mydbops
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
SynapseIndia
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
Enterprise Wired
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
Lidia A.
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
UiPathCommunity
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
Vijayananda Mohire
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
Eric D. Schabell
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
Matthew Sinclair
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
Toru Tamaki
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
Yevgen Sysoyev
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 

Recently uploaded (20)

Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 

Writing engaging tutorials

  • 1. Writing engaging tutorials Making them come back for more Christian Heilmann Yahoo! Frontend Engineering Summit UK December 2007 http://creativecommons.org/licenses/by-sa/3.0/
  • 2. There is no perfect tutorial.
  • 3. … as there is no “one” audience.
  • 4. One thing to keep in mind is the perceived speed of the internet and the impatience of developers.
  • 5. We are much more patient when it comes to assembling a plumbing unit in our flat than when it comes to using other people’s code.
  • 6. Developers work with the IKEA model when using code that is not theirs:
  • 7. Developers work with the IKEA model when using code that is not theirs: Open it, mess around, start reading when you get stuck.
  • 8. Developers work with the IKEA model when using code that is not theirs: Open it, mess around, start reading when you get stuck. Complain when you find a channel that answers.
  • 10. Readers I encountered: – Give me all the information, I find what I need.
  • 11. Readers I encountered: – Give me all the information, I find what I need. – Get me a step-by-step instruction how to do things
  • 12. Readers I encountered: – Give me all the information, I find what I need. – Get me a step-by-step instruction how to do things – I want to click on things and see how they work, then read.
  • 14. Readers I encountered: – I need something to copy + paste and get on with it myself
  • 15. Readers I encountered: – I need something to copy + paste and get on with it myself – I don’t get it, can you show me?
  • 16. Readers I encountered: – I need something to copy + paste and get on with it myself – I don’t get it, can you show me? – Doesn’t work for me, I know better and this never worked in my professional environment.
  • 17. Catering for them all is tricky.
  • 18. However, readers are not Pokemons – you don’t need to catch them all.
  • 19. Start with the basics
  • 20. Start with the basics – Why is this a good idea – Which real-life day to day web development problem is solved by it. – What is the level of this tutorial – what do you need to know. – Show a prominent link to a working example – if there is a visual outcome use a linked screenshot.
  • 21. Start with the basics – Why is this a good idea – Which real-life day to day web development problem is solved by it. – What is the level of this tutorial – what do you need to know. – Show a prominent link to a working example – if there is a visual outcome use a linked screenshot.
  • 22. Start with the basics – Why is this a good idea – Which real-life day to day web development problem is solved by it. – What is the level of this tutorial – what do you need to know. – Show a prominent link to a working example – if there is a visual outcome use a linked screenshot.
  • 23. Start with the basics – Why is this a good idea – Which real-life day to day web development problem is solved by it. – What is the level of this tutorial – what do you need to know. – Show a prominent link to a working example – if there is a visual outcome use a linked screenshot.
  • 24. Start with the basics – Offer links to full documentation elsewhere (W3C, MSDN, YDN) – Offer the download package with code examples or image templates upfront. – Give an estimate as to how long it should take to go through this tutorial. – Say your name, a way to contact you and when you wrote this.
  • 25. Start with the basics – Offer links to full documentation elsewhere (W3C, MSDN, YDN) – Offer the download package with code examples or image templates upfront. – Give an estimate as to how long it should take to go through this tutorial. – Say your name, a way to contact you and when you wrote this.
  • 26. Start with the basics – Offer links to full documentation elsewhere (W3C, MSDN, YDN) – Offer the download package with code examples or image templates upfront. – Give an estimate as to how long it should take to go through this tutorial. – Say your name, a way to contact you and when you wrote this.
  • 27. Start with the basics – Offer links to full documentation elsewhere (W3C, MSDN, YDN) – Offer the download package with code examples or image templates upfront. – Give an estimate as to how long it should take to go through this tutorial. – Say your name, a way to contact you and when you wrote this.
  • 28. Start with the basics – Offer links to full documentation elsewhere (W3C, MSDN, YDN) – Offer the download package with code examples or image templates upfront. – Give an estimate as to how long it should take to go through this tutorial. – Say your name, a way to contact you and when you wrote this.
  • 30. Offer landmarks – Offer a “quick jump / table of contents” feature – this also allows bookmarking – Cut the tutorial up into logical steps / units with useful headings (don’t try to be funny) – Add a link to the state of the code at each step – so people can follow the changes without needing to copy and paste.
  • 31. Offer landmarks – Offer a “quick jump / table of contents” feature – this also allows bookmarking – Cut the tutorial up into logical steps / units with useful headings (don’t try to be funny) – Add a link to the state of the code at each step – so people can follow the changes without needing to copy and paste.
  • 32. Offer landmarks – Offer a “quick jump / table of contents” feature – this also allows bookmarking – Cut the tutorial up into logical steps / units with useful headings (don’t try to be funny) – Add a link to the state of the code at each step – so people can follow the changes without needing to copy and paste.
  • 34. Language – PBE - Plain Bloody English – Explain your TLAs – Explain product names and special terms – Use short sentences. – Avoid the “I”, instead invite the reader with a “then you can do…” or a “Let’s…”
  • 35. Language – PBE - Plain Bloody English – Explain your TLAs – Explain product names and special terms – Use short sentences. – Avoid the “I”, instead invite the reader with a “then you can do…” or a “Let’s…”
  • 36. Language – PBE - Plain Bloody English – Explain your TLAs – Explain product names and special terms – Use short sentences. – Avoid the “I”, instead invite the reader with a “then you can do…” or a “Let’s…”
  • 37. Language – PBE - Plain Bloody English – Explain your TLAs – Explain product names and special terms – Use short sentences. – Avoid the “I”, instead invite the reader with a “then you can do…” or a “Let’s…”
  • 38. Language – PBE - Plain Bloody English – Explain your TLAs – Explain product names and special terms – Use short sentences. – Avoid the “I”, instead invite the reader with a “then you can do…” or a “Let’s…”
  • 39. Language – PBE - Plain Bloody English – Explain your TLAs – Explain product names and special terms – Use short sentences. – Avoid the “I” - instead invite the reader with a “then you can do…” or a “Let’s…”
  • 41. Credibility – Back up your statements with examples. – Back up your statements with third party resources. – Never hush up errors you made. If feedback changes your tutorial, thank the commenter and add the changes. <del>/<ins>
  • 42. Credibility – Back up your statements with examples. – Back up your statements with third party resources. – Never hush up errors you made. If feedback changes your tutorial, thank the commenter and add the changes. <del>/<ins>
  • 43. Credibility – Back up your statements with examples. – Back up your statements with third party resources. – Never hush up errors you made. If feedback changes your tutorial, thank the commenter and add the changes. <del>/<ins>
  • 44. Credibility – Back up your statements with examples. – Back up your statements with third party resources. – Never hush up errors you made. If feedback changes your tutorial, thank the commenter and add the changes. <del>/<ins> – Have an editor / reviewer
  • 46. Leaving them hungry – Offer extra problems / other application ideas at the end and let people try them out. – Hint at more tricks in the same vain or link to other tutorials. – Show high-class solutions using that trick (which awesome sites use it)
  • 47. Leaving them hungry – Offer extra problems / other application ideas at the end and let people try them out. – Hint at more tricks in the same vain or link to other tutorials. – Show high-class solutions using that trick (which awesome sites use it)
  • 48. Leaving them hungry – Offer extra problems / other application ideas at the end and let people try them out. – Hint at more tricks in the same vain or link to other tutorials. – Show high-class solutions using that trick (which awesome sites use it)
  • 49. Traps to avoid! – Don’t offer the solutions to code exercises, people will only copy + paste and learn nothing. – Don’t cut up code into non-executable chunks, show the whole script then repeat the parts bit-by-bit. – Stick to one solution per tutorial and explain this one well.
  • 50. Traps to avoid! – Don’t offer the solutions to code exercises, people will only copy + paste and learn nothing. – Don’t cut up code into non-executable chunks, show the whole script then repeat the parts bit-by-bit. – Stick to one solution per tutorial and explain this one well.
  • 51. Traps to avoid! – Don’t offer the solutions to code exercises, people will only copy + paste and learn nothing. – Don’t cut up code into non-executable chunks, show the whole script then repeat the parts bit-by-bit. – Stick to one solution per tutorial and explain this one well.
  • 52. Traps to avoid! – Don’t offer the solutions to code exercises, people will only copy + paste and learn nothing. – Don’t cut up code into non-executable chunks, show the whole script then repeat the parts bit-by-bit. – Stick to one solution per tutorial and explain this one well.
  • 54. Maintenance – Don’t leave your tutorials to collect dust. – If they become outdated, find a better, up-to-date solution and link or even redirect to this one. – We have more than enough information graveyards.
  • 55. Maintenance – Don’t leave your tutorials to collect dust. – If they become outdated, find a better, up-to-date solution and link or even redirect to this one. – We have more than enough information graveyards.
  • 56. Maintenance – Don’t leave your tutorials to collect dust. – If they become outdated, find a better, up-to-date solution and link or even redirect to this one. – We have more than enough information graveyards.
  • 57. What are you in for? – Last but not least, it is not about you! – You will get positive and negative comments targeted at you and not the subject. – Don’t take any of these serious. – Most of your readers will never contact you or take part.
  • 58. What are you in for? – Last but not least, it is not about you! – You will get positive and negative comments targeted at you and not the subject. – Don’t take any of these serious. – Most of your readers will never contact you or take part.
  • 59. What are you in for? – Last but not least, it is not about you! – You will get positive and negative comments targeted at you and not the subject. – Don’t take any of these serious. – Most of your readers will never contact you or take part.
  • 60. What are you in for? – Last but not least, it is not about you! – You will get positive and negative comments targeted at you and not the subject. – Don’t take any of these serious. – Most of your readers will never contact you or take part.
  • 61. What are you in for? – Last but not least, it is not about you! – You will get positive and negative comments targeted at you and not the subject. – Don’t take any of these serious. – Most of your readers will never contact you or take part.
  • 62. THANKS! http://wait-till-i.com chris.heilmann@gmail.com