SlideShare a Scribd company logo
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript
developer
Chris Heilmann (@codepo8) April 2018
ways to be a
happier
JavaScript
developer
▪ Understanding that
JavaScript is not a language
▪ Concentrating on the now
▪ Limiting our development
environment
▪ Making it harder to write
bad code
▪ Getting to know our tooling
▪ Giving back to others
▪ Muffling the noise
Understanding that
JavaScript is not a
language…
JavaScript is a
lot of things…
▪ Far from perfect
▪ Everywhere
▪ Free to use
▪ Environment independent
▪ Freely documented
▪ Instantly gratifying
JavaScript’s
versatility means
diverse needs.
▪ Web scripts
▪ WebView based solutions (Electron)
▪ Browser extensions
▪ Web based apps (PWA)
▪ Server-side solutions (Node)
▪ Convertible to binary formats
(WebAssembly)
▪ Powering Robots (Nodebots)
▪ Packages (NPM)
JavaScript is much
more now than we
ever expected…
▪ A standardised language (TC39)
▪ An ecosystem
▪ A community
▪ An opportunity to do a lot with one
language
▪ A chance to cause damage
(performance, security)
Relax - in a world
of options nobody
can be an expert
in all of them.
Concentrating on
the now…
Worries of the past
shouldn’t prevent
us from creating…
Focusing exclusively
on the next cool
thing is as stifling
and depressing
developer.mozilla.org/en-US
caniuse.com
Limiting our
development
environment
The web development trinity
BrowserTerminalEditor
▪ Where we code
▪ Where we tweak themes
▪ Where we mix spaces and
tabs – like animals
▪ Where we do version
control
▪ Where we run build tasks
▪ Where we deploy
▪ Where we tweak themes
▪ Where we assume
everyone runs OSX
▪ Where we debug
▪ Where we check and
tweak visual output
▪ Where we audit
▪ Where we annoy the
end user with odd log
messages.
That is a lot of
duplication and
multiplication
with choice
Tooling is starting
to overtake that
historically grown
trinity.
Good editors
consolidate
features to avoid
context switching.
VS Code (@code)
code.visualstudio.com
▪ Open Source, Cross-platform
▪ Hundreds of extensions
▪ Highly theme-able
▪ Built-in source control support
▪ Built-in terminal
▪ Integrates into build processes
▪ Written and extensible in TypeScript
▪ Straightens and lightens teeth with
repeat use
▪ Possibly is good against hair loss
▪ Gluten free, macrobiotic
VS Code (@code)
code.visualstudio.com
▪ Open Source, Cross-platform
▪ Hundreds of extensions
▪ Highly theme-able
▪ Built-in source control support
▪ Built-in terminal
▪ Integrates into build processes
▪ Written and extensible in TypeScript
▪ Straightens and lightens teeth with
repeat use
▪ Possibly is good against hair loss
▪ Gluten free, macrobiotic
twitter.com/crandycodes/status/983488436756627456
code.visualstudio.com/updates/v1_22#_node-debugging
smashingmagazine.com/2018/01/visual-studio-code
vscodecandothat.com
Instead of using
your own
machine, why not
try online before?
glitch.com
jsbin.com
codepen.io
Making it harder to
write bad code.
Applying a
stricter ruleset
pre-empts
mistakes
Linting > Debugging
code.visualstudio.com
▪ Find mistakes while you make them
▪ Based on the experience and
consensus of many others
▪ Learn from explanations of linting
results
▪ Install and configure, or use in-built
linting.
Moving from
knowing .*
to
learning by
making mistakes
Auditing
▪ Audit your work before you go live
▪ Learn from explanations of why
these are mistakes
▪ Keep iterating until it becomes
second nature.
Linting and
validation tools can
be part of your
release process.
sonarwhal.com
Getting to know our
tooling
It is true that our
tools have become
much more complex.
Knowing them gives
you superpowers
and insights how to
build great solutions
Step one is to stop using
console.log() and use
breakpoints instead.
code.visualstudio.com/Docs/editor/debugging
smashingmagazine.com/2018/02/javascript-firefox-debugger/
Giving back to
others
Take part in the
JavaScript
community...
▪ Help document
▪ Help clean up and send pull
requests
▪ Publish your own work as open
source
▪ Enjoy meetups and events
▪ Help by example, not by telling
people what they should do
Muffling the noise…
Not everybody
cares about the nuts
and bolts and has
endless time to
invest…
twitter.com/headjs_ru/status/955333399564161024
It is easy to get
tempted to sell
people your
experience as
“best practice”
Find the
largest item in
the array…
Once learned,
never
forgotten…
Loop
optimisation
Using native
methods
instead of “if”…
Looking up
array
methods..
Embracing
new language
features…
Which one is
the best?
It depends™
▪ Who is writing the code?
▪ Where does it run?
▪ How clean is the data we deal with?
▪ What horrible old environment
needs support?
▪ Who will maintain it?
▪ How likely is it ever to change?
▪ How will it be used?
Validate and triage
▪ Let’s not feel bad if not everything
in the JS world excites us
▪ Not everything hot and cool is
ready to replace what we are
comfortable with.
▪ If it doesn’t make our lives easier, it
is OK to not use it – hype moves
fast and forgets fast.
▪ Let’s be excited, but also ready to
give it a “meh”
Projection isn’t
good…
▪ What makes us effective can be
very subjective
▪ It makes sense to talk about our
success.
▪ It makes less sense trying to force
others to do the same
▪ New approaches lead to new
happy paths, let’s not discourage
people from finding theirs.
Let’s not kid
ourselves about the
bleeding edge…
▪ The amazing new idea of today
very often becomes the problem of
tomorrow
▪ Production code moves less fast
than we think
▪ Our end users aren’t guinea pigs or
canaries
▪ It is the bleeding edge, make sure
you have enough blood to give
Let’s make this a
great community…
▪ Let’s be the people we’d like to
have met when we started
▪ Let’s be kind
▪ Let’s be supportive
▪ Let’s allow people to learn by
making mistakes and letting off
steam
▪ Let’s not get lost in pointless drama
Thanks!
Chris Heilmann
@codepo8
Terminal photo by Terminal 5 Insider
Editor photo by John Oxley Library
Browser photo by Joseph Brent

More Related Content

PDF
Hinting at a better web
PPTX
Develop, Debug, Learn? - Dotjs2019
PDF
Christian Heilmann - Seven Things to Do to Make You a Happier JavaScript Deve...
PDF
Five ways to be a happier JavaScript developer
PDF
Architecture 101: Vision, Properties and Skills
PDF
PPTX
boots2nerd
PDF
Hinting at a better web
Develop, Debug, Learn? - Dotjs2019
Christian Heilmann - Seven Things to Do to Make You a Happier JavaScript Deve...
Five ways to be a happier JavaScript developer
Architecture 101: Vision, Properties and Skills
boots2nerd

What's hot (20)

PDF
PDF
PDF
Intro to web
PDF
Django Bath and Bristol Users Group
PDF
Frontend Crash Coarse 09/28
PDF
Resisting The Feature Creature
PPT
WebPlatform Training
PDF
HTML5 Jump Start
PDF
Lean 2020
PDF
WordCamp Barcelona 2015 : From Design to a Theme
PDF
Frontend Crash Course
PDF
Future Fit courses
PDF
Intro to CakePHP - SDPHP MeetUp Dec 2012
PPTX
Web development
PDF
Developing a Web Application
PPTX
자바스크립트 공부를 위한 책 소개
PDF
Web & Mobile
PDF
Looking for a place to hang my helmet
PDF
Creating Content in a Pattern Library
PDF
WordCamp Birmingham 2015 - Theme building workshop
Intro to web
Django Bath and Bristol Users Group
Frontend Crash Coarse 09/28
Resisting The Feature Creature
WebPlatform Training
HTML5 Jump Start
Lean 2020
WordCamp Barcelona 2015 : From Design to a Theme
Frontend Crash Course
Future Fit courses
Intro to CakePHP - SDPHP MeetUp Dec 2012
Web development
Developing a Web Application
자바스크립트 공부를 위한 책 소개
Web & Mobile
Looking for a place to hang my helmet
Creating Content in a Pattern Library
WordCamp Birmingham 2015 - Theme building workshop
Ad

Similar to Seven ways to be a happier JavaScript developer - NDC Oslo (20)

PDF
You learned JavaScript - now what?
PDF
Javascript isn't hard
PDF
Quo vadis, JavaScript? Devday.pl keynote
PDF
Choosing Javascript Libraries to Adopt for Development
PDF
JavaScript is a buffet - Scriptconf 2017 keynote
PDF
DownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
PDF
Refactoring JavaScript turning bad code into good code First Edition Burchard
PDF
Hangover.js
PDF
Developers survival-guide
PPTX
Javascript best practices
KEY
jsDay - Javascript as a programming language
KEY
YOOX Launch & Learn - Javascript as a programming language
KEY
corporateJavascript
PDF
15 Experts on the Art of JavaScript Programming
PDF
DownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
PDF
Overboard.js - where are we going with with jsconfasia / devfestasia
PDF
Breaking out of the endless callback look - #jsday Italy keynote
PDF
Sacrificing the golden calf of "coding"
PPTX
Integreation
You learned JavaScript - now what?
Javascript isn't hard
Quo vadis, JavaScript? Devday.pl keynote
Choosing Javascript Libraries to Adopt for Development
JavaScript is a buffet - Scriptconf 2017 keynote
DownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
Refactoring JavaScript turning bad code into good code First Edition Burchard
Hangover.js
Developers survival-guide
Javascript best practices
jsDay - Javascript as a programming language
YOOX Launch & Learn - Javascript as a programming language
corporateJavascript
15 Experts on the Art of JavaScript Programming
DownTheRabbitHole.js – How to Stay Sane in an Insane Ecosystem
Overboard.js - where are we going with with jsconfasia / devfestasia
Breaking out of the endless callback look - #jsday Italy keynote
Sacrificing the golden calf of "coding"
Integreation
Ad

More from Christian Heilmann (20)

PDF
Taking the "vile" out of privilege
PDF
Artificial intelligence for humans… #AIDC2018 keynote
PDF
Killing the golden calf of coding - We are Developers keynote
PDF
Progressive Web Apps - Techdays Finland
PDF
Taking the "vile" out of privilege
PDF
Taking the P out of PWA
PDF
Sacrificing the golden calf of "coding"
PDF
Progressive Web Apps - Covering the best of both worlds - DevReach
PDF
Progressive Web Apps - Covering the best of both worlds
PPTX
Non-trivial pursuits: Learning machines and forgetful humans
PDF
Progressive Web Apps - Bringing the web front and center
PDF
CSS vs. JavaScript - Trust vs. Control
PDF
Leveling up your JavaScipt - DrupalJam 2017
PDF
The Soul in The Machine - Developing for Humans (FrankenJS edition)
PDF
Breaking out of the Tetris mind set #btconf
PDF
Progressive Web Apps - Goto Chicago 2017
PDF
Turning huge ships - Open Source and Microsoft
PDF
Supercharging Public Speaking
PDF
The Soul in The Machine - Developing for Humans
PDF
The Progressive Web and its New Challenges - Confoo Montréal 2017
Taking the "vile" out of privilege
Artificial intelligence for humans… #AIDC2018 keynote
Killing the golden calf of coding - We are Developers keynote
Progressive Web Apps - Techdays Finland
Taking the "vile" out of privilege
Taking the P out of PWA
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
Non-trivial pursuits: Learning machines and forgetful humans
Progressive Web Apps - Bringing the web front and center
CSS vs. JavaScript - Trust vs. Control
Leveling up your JavaScipt - DrupalJam 2017
The Soul in The Machine - Developing for Humans (FrankenJS edition)
Breaking out of the Tetris mind set #btconf
Progressive Web Apps - Goto Chicago 2017
Turning huge ships - Open Source and Microsoft
Supercharging Public Speaking
The Soul in The Machine - Developing for Humans
The Progressive Web and its New Challenges - Confoo Montréal 2017

Recently uploaded (20)

PDF
A GUIDE TO GENETICS FOR UNDERGRADUATE MEDICAL STUDENTS
PPTX
master seminar digital applications in india
PDF
RTP_AR_KS1_Tutor's Guide_English [FOR REPRODUCTION].pdf
PDF
Microbial disease of the cardiovascular and lymphatic systems
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PDF
RMMM.pdf make it easy to upload and study
PDF
A systematic review of self-coping strategies used by university students to ...
PDF
01-Introduction-to-Information-Management.pdf
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PPTX
Radiologic_Anatomy_of_the_Brachial_plexus [final].pptx
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PPTX
Cell Structure & Organelles in detailed.
PDF
What if we spent less time fighting change, and more time building what’s rig...
PDF
Paper A Mock Exam 9_ Attempt review.pdf.
PDF
Trump Administration's workforce development strategy
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PPTX
Introduction-to-Literarature-and-Literary-Studies-week-Prelim-coverage.pptx
PPTX
Cell Types and Its function , kingdom of life
PDF
LDMMIA Reiki Yoga Finals Review Spring Summer
PPTX
Final Presentation General Medicine 03-08-2024.pptx
A GUIDE TO GENETICS FOR UNDERGRADUATE MEDICAL STUDENTS
master seminar digital applications in india
RTP_AR_KS1_Tutor's Guide_English [FOR REPRODUCTION].pdf
Microbial disease of the cardiovascular and lymphatic systems
Module 4: Burden of Disease Tutorial Slides S2 2025
RMMM.pdf make it easy to upload and study
A systematic review of self-coping strategies used by university students to ...
01-Introduction-to-Information-Management.pdf
Microbial diseases, their pathogenesis and prophylaxis
Radiologic_Anatomy_of_the_Brachial_plexus [final].pptx
Supply Chain Operations Speaking Notes -ICLT Program
Cell Structure & Organelles in detailed.
What if we spent less time fighting change, and more time building what’s rig...
Paper A Mock Exam 9_ Attempt review.pdf.
Trump Administration's workforce development strategy
Final Presentation General Medicine 03-08-2024.pptx
Introduction-to-Literarature-and-Literary-Studies-week-Prelim-coverage.pptx
Cell Types and Its function , kingdom of life
LDMMIA Reiki Yoga Finals Review Spring Summer
Final Presentation General Medicine 03-08-2024.pptx

Seven ways to be a happier JavaScript developer - NDC Oslo