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.
▪ 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
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
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
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
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