Sacrificing the golden calf of coding…
Chris Heilmann (@codepo8) April 2018
Big mouth strikes
again…
twitter.com/codepo8/status/922380136531537921
What’s wrong with
coding?
twitter.com/stephstad/status/994340133733253120
What’s wrong with
coding?
twitter.com/JBalloonist/status/994957763154411520
nothing
null
undefined
“”
[]
false
NaN
What’s wrong with
coding?
I am worried about
the perception of
coding…
▪ Worry: automation will take away
human jobs
▪ Misconception: this is a bad thing,
not a sensible evolutionary step
towards a better society
▪ Knee-jerk reaction: everybody
needs to learn to code.
I am worried about
the perception of
coding…
▪ Huge misconception: everybody
who learns to code will have a
great, fulfilling job.
▪ Danger: people who just learned to
code will immediately build
products
▪ Arrogant assumption: what we call
coding now can never be
automated.
The “coder” of
today is the
astronaut of the 50s
The “coder” of
today is the
astronaut of the 50s
The “coder” of
today is the
astronaut of the 50s
An astronaut with
job security and no
physical demands…
▪ It is great that we have so much
enthusiasm for coding
▪ It is less exciting that it isn’t about
creating things and finding
solutions, but landing a job
▪ It is questionable if the need we
have now for coders will stay in the
very near future
▪ We’re not exempt of automation
▪ Maybe our work is following similar
paths that any other work does
<3 enthusiasm for
our work
Florian Ziegler flickr.com/photos/damndirty/41263240134
Act One:
Coding
Curiosity
When everything is
new, happiness
ensues
A smorgasbord of
offerings…
▪ Communication channels (Twitter,
Slack, Mastodon, IRC)
▪ Events/Meetups
▪ Video recordings of events
▪ Online training resources (Khan
Academy, Skillshare, Pluralsight,
Lynda.com…)
▪ Live and collaborative coding
environments (Twitch etc…)
▪ Open and extensible development
environments that teach good code
while you use them.
Peer pressure to
keep things light
and easy
▪ It is frowned upon to point out
problems to newcomers
▪ We don’t want to hear about
problems of the past that don’t
apply today
▪ A lot of best practices of the past
work towards a world of longevity
▪ But we’re OK to use and discard
software products like physical ones
We are not
“independent”
coders…
▪ It is tempting to repeat things the
community says to fit in.
▪ It is easy to apply what is touted as
great without considering the
effects – as you don’t know them.
▪ You create a lot in a short amount
of time with abstractions you have
no clue about.
▪ We have a high dependency on
tools and resources
▪ Shortcuts are tempting and feel like
innovation
Florian Ziegler flickr.com/photos/damndirty/40153024740/
Act Two:
Coding
Realities
Coding in
production
environments…
▪ End users are slow to upgrade and
do random things.
▪ Your code is an attack vector for
the bad guys
▪ There is no truth in “we will fix it
later, let’s just finish this sprint” - yet
it is very common
Coding in
production
environments…
▪ Legacy code is no myth – it is a
time-sink nobody wants to take on
▪ Innovation happens often only on
the sly – asking for forgiveness is
easier than asking for permission
▪ Nothing acts like your local
machine or the perfect setup of the
teaching environment
Being a coder isn’t
all about your
coding skills
▪ It is not uncommon to be praised
for things you consider terrible
▪ Your enthusiasm can be a bad
guide when it comes to giving time
estimates
▪ Being a magical, fast problem
solver can put you on the spot
when things go wrong
▪ Being able to fix issues way down
the line will be a very important
thing – we build vulnerable systems
Photo by Florian Ziegler flickr.com/photos/damndirty/40153024740/
Andreas Dantz flickr.com/photos/szene/40193567250
Act Three:
Focusing on
outcomes
Code as craft (or
even art) is 3.62%
of what we do…
Software is a part of
day-to-day life and
needs fast delivery
Reusing components
creates predictable
outcomes
▪ Instead of knowing how to code
from scratch, it will become
increasingly important to know
what components to use
▪ Reusing code, frameworks and
libraries allows us to fix
performance, security and
compatibility issues in a central spot
▪ If we’re honest, this has happened
in production a long time ago and
a lot less innovative than we’d like it
to be.
From coder to
engineer
▪ Fast-paced products with a short
lifetime are easier to deliver when
you use already existing
components
▪ This means your skillset isn’t as
much about the underlying code,
but about what is good to use
▪ Vetting and creating reusable
components and solutions are skills
that will allow for secure and fast
turnaround
▪ This is less exciting than being a
“code warrior” or “ninja unicorn”
It may be the warriors
who get the glory. But
it's the engineers who
build societies.
– Steve Jobs
It may be the warriors
who get the glory. But
it's the engineers who
build societies.
– B'elanna Torres
Getting help from
machines…
autodraw.com
Getting help from
machines…
quickdraw.withgoogle.com
We built an initial prototype using about a dozen hand-drawn
components as training data, open source machine learning
algorithms, and a small amount of intermediary code to render
components from our design system into the browser. We were
pleasantly surprised with the result:
blog.floydhub.com/turning-design-mockups-into-code-with-deep-learning/
We built an initial prototype using about a dozen hand-drawn
components as training data, open source machine learning
algorithms, and a small amount of intermediary code to render
components from our design system into the browser. We were
pleasantly surprised with the result:
airbnb.design/sketching-interfaces
I look forward to
machines doing
repetitive code
▪ Maybe this is a good time to realise
that the CLI isn’t in 2018 what
should demand our attention
▪ Maybe it is time we concentrate on
delivering maintainable, secure
products that pay attention to our
end user’s privacy
▪ Maybe we need a different outlet
for our ego and realise that we
deliver services to the world, not
replace it.
▪ There is no Earth B and we can’t
fork humankind.
This is a good time
to be a great
example…
▪ We’re not in a good spot when it
comes to work/life separation
▪ There is a lot of demand to be like
us – as there are jobs for us
▪ It is up to us to build a healthy,
friendly and rewarding work
environment for future generations
and sideways job starters
▪ Our products aren’t niche any
more, life now depends on them
Thanks!
Chris Heilmann
Christianheilmann.com
Developer-evangelism.com
@codepo8

Killing the golden calf of coding - We are Developers keynote

  • 1.
    Sacrificing the goldencalf of coding… Chris Heilmann (@codepo8) April 2018
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
    I am worriedabout the perception of coding… ▪ Worry: automation will take away human jobs ▪ Misconception: this is a bad thing, not a sensible evolutionary step towards a better society ▪ Knee-jerk reaction: everybody needs to learn to code.
  • 7.
    I am worriedabout the perception of coding… ▪ Huge misconception: everybody who learns to code will have a great, fulfilling job. ▪ Danger: people who just learned to code will immediately build products ▪ Arrogant assumption: what we call coding now can never be automated.
  • 8.
    The “coder” of todayis the astronaut of the 50s
  • 9.
    The “coder” of todayis the astronaut of the 50s
  • 10.
    The “coder” of todayis the astronaut of the 50s
  • 11.
    An astronaut with jobsecurity and no physical demands…
  • 12.
    ▪ It isgreat that we have so much enthusiasm for coding ▪ It is less exciting that it isn’t about creating things and finding solutions, but landing a job ▪ It is questionable if the need we have now for coders will stay in the very near future ▪ We’re not exempt of automation ▪ Maybe our work is following similar paths that any other work does <3 enthusiasm for our work
  • 13.
  • 14.
    When everything is new,happiness ensues
  • 15.
    A smorgasbord of offerings… ▪Communication channels (Twitter, Slack, Mastodon, IRC) ▪ Events/Meetups ▪ Video recordings of events ▪ Online training resources (Khan Academy, Skillshare, Pluralsight, Lynda.com…) ▪ Live and collaborative coding environments (Twitch etc…) ▪ Open and extensible development environments that teach good code while you use them.
  • 16.
    Peer pressure to keepthings light and easy ▪ It is frowned upon to point out problems to newcomers ▪ We don’t want to hear about problems of the past that don’t apply today ▪ A lot of best practices of the past work towards a world of longevity ▪ But we’re OK to use and discard software products like physical ones
  • 17.
    We are not “independent” coders… ▪It is tempting to repeat things the community says to fit in. ▪ It is easy to apply what is touted as great without considering the effects – as you don’t know them. ▪ You create a lot in a short amount of time with abstractions you have no clue about. ▪ We have a high dependency on tools and resources ▪ Shortcuts are tempting and feel like innovation
  • 18.
  • 19.
    Coding in production environments… ▪ Endusers are slow to upgrade and do random things. ▪ Your code is an attack vector for the bad guys ▪ There is no truth in “we will fix it later, let’s just finish this sprint” - yet it is very common
  • 20.
    Coding in production environments… ▪ Legacycode is no myth – it is a time-sink nobody wants to take on ▪ Innovation happens often only on the sly – asking for forgiveness is easier than asking for permission ▪ Nothing acts like your local machine or the perfect setup of the teaching environment
  • 21.
    Being a coderisn’t all about your coding skills ▪ It is not uncommon to be praised for things you consider terrible ▪ Your enthusiasm can be a bad guide when it comes to giving time estimates ▪ Being a magical, fast problem solver can put you on the spot when things go wrong ▪ Being able to fix issues way down the line will be a very important thing – we build vulnerable systems
  • 22.
    Photo by FlorianZiegler flickr.com/photos/damndirty/40153024740/ Andreas Dantz flickr.com/photos/szene/40193567250 Act Three: Focusing on outcomes
  • 23.
    Code as craft(or even art) is 3.62% of what we do…
  • 24.
    Software is apart of day-to-day life and needs fast delivery
  • 25.
    Reusing components creates predictable outcomes ▪Instead of knowing how to code from scratch, it will become increasingly important to know what components to use ▪ Reusing code, frameworks and libraries allows us to fix performance, security and compatibility issues in a central spot ▪ If we’re honest, this has happened in production a long time ago and a lot less innovative than we’d like it to be.
  • 26.
    From coder to engineer ▪Fast-paced products with a short lifetime are easier to deliver when you use already existing components ▪ This means your skillset isn’t as much about the underlying code, but about what is good to use ▪ Vetting and creating reusable components and solutions are skills that will allow for secure and fast turnaround ▪ This is less exciting than being a “code warrior” or “ninja unicorn”
  • 27.
    It may bethe warriors who get the glory. But it's the engineers who build societies. – Steve Jobs
  • 28.
    It may bethe warriors who get the glory. But it's the engineers who build societies. – B'elanna Torres
  • 29.
  • 30.
  • 31.
    We built aninitial prototype using about a dozen hand-drawn components as training data, open source machine learning algorithms, and a small amount of intermediary code to render components from our design system into the browser. We were pleasantly surprised with the result: blog.floydhub.com/turning-design-mockups-into-code-with-deep-learning/
  • 32.
    We built aninitial prototype using about a dozen hand-drawn components as training data, open source machine learning algorithms, and a small amount of intermediary code to render components from our design system into the browser. We were pleasantly surprised with the result: airbnb.design/sketching-interfaces
  • 33.
    I look forwardto machines doing repetitive code ▪ Maybe this is a good time to realise that the CLI isn’t in 2018 what should demand our attention ▪ Maybe it is time we concentrate on delivering maintainable, secure products that pay attention to our end user’s privacy ▪ Maybe we need a different outlet for our ego and realise that we deliver services to the world, not replace it. ▪ There is no Earth B and we can’t fork humankind.
  • 34.
    This is agood time to be a great example… ▪ We’re not in a good spot when it comes to work/life separation ▪ There is a lot of demand to be like us – as there are jobs for us ▪ It is up to us to build a healthy, friendly and rewarding work environment for future generations and sideways job starters ▪ Our products aren’t niche any more, life now depends on them
  • 35.