SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.
SlideShare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.
Successfully reported this slideshow.
Activate your 14 day free trial to unlock unlimited reading.
Killing the golden calf of coding - We are Developers keynote
Killing the golden calf of coding - We are Developers keynote
1.
Sacrificing the golden calf of coding…
Chris Heilmann (@codepo8) April 2018
2.
Big mouth strikes
again…
twitter.com/codepo8/status/922380136531537921
3.
What’s wrong with
coding?
twitter.com/stephstad/status/994340133733253120
4.
What’s wrong with
coding?
twitter.com/JBalloonist/status/994957763154411520
5.
nothing
null
undefined
“”
[]
false
NaN
What’s wrong with
coding?
6.
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.
7.
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.
8.
The “coder” of
today is the
astronaut of the 50s
9.
The “coder” of
today is the
astronaut of the 50s
10.
The “coder” of
today is the
astronaut of the 50s
11.
An astronaut with
job security and no
physical demands…
12.
▪ 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
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
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
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
19.
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
20.
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
21.
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
22.
Photo by Florian Ziegler 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 a part 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 be the warriors
who get the glory. But
it's the engineers who
build societies.
– Steve Jobs
28.
It may be the warriors
who get the glory. But
it's the engineers who
build societies.
– B'elanna Torres
30.
Getting help from
machines…
quickdraw.withgoogle.com
31.
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/
32.
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
33.
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.
34.
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
35.
Thanks!
Chris Heilmann
Christianheilmann.com
Developer-evangelism.com
@codepo8