Top Banner
Chris Heilmann (codepo8), Halfstack, London, November 2017
68

Sacrificing the golden calf of "coding"

Jan 22, 2018

Download

Education

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Sacrificing the golden calf of "coding"

Chris Heilmann (codepo8), Halfstack, London, November 2017

Page 2: Sacrificing the golden calf of "coding"

Chris Heilmann @codepo8

Page 3: Sacrificing the golden calf of "coding"

twitter.com/codepo8/status/922380136531537921

Page 4: Sacrificing the golden calf of "coding"
Page 5: Sacrificing the golden calf of "coding"

Machine Learning and AI is hot.

Page 6: Sacrificing the golden calf of "coding"

Automation worries everybody

http://wumo.com/wumo/2017/10/28

Page 7: Sacrificing the golden calf of "coding"

nytimes.com/2017/11/05/technology/machine-learning-artificial-intelligence-ai.html

The heat is on…

Page 8: Sacrificing the golden calf of "coding"

Blanket solution:

Everybody must learn how to code.

Page 9: Sacrificing the golden calf of "coding"

Let’s rewind for a bit…

Page 10: Sacrificing the golden calf of "coding"

The Future of Programming

worrydream.com/dbx

Bret Victor@worrydream

Page 11: Sacrificing the golden calf of "coding"

To me, coding was a demo scene term.

Page 12: Sacrificing the golden calf of "coding"

Coding in the demo scene:

Programming in a creative fashion, pushing the boundaries of limited environments

Page 13: Sacrificing the golden calf of "coding"

+ performance+ cleverness+ inventiveness- maintainability- readability

Page 14: Sacrificing the golden calf of "coding"

CoderProgrammerDeveloperEngineerCreatorMaker

Page 15: Sacrificing the golden calf of "coding"

+ maintainability+ readability~ cleverness~ performance- inventiveness

Page 16: Sacrificing the golden calf of "coding"

The curious case of Benjamin a Button

Story time:

Page 17: Sacrificing the golden calf of "coding"

Professional development:

“Wow, how did you do that?”

“Have you finished this?”to:

Moving from

Page 18: Sacrificing the golden calf of "coding"
Page 19: Sacrificing the golden calf of "coding"

Personalised development environment, tooling and code snippets.

The developer level-up:

Page 20: Sacrificing the golden calf of "coding"

We’re good at inventing and advocating best practices…

Page 21: Sacrificing the golden calf of "coding"

Less so at using them…

Page 22: Sacrificing the golden calf of "coding"

Why is that?

Page 23: Sacrificing the golden calf of "coding"

People are people…

Page 24: Sacrificing the golden calf of "coding"

People don’t always upgrade like we’d love them to. This means we need support old, terrible ideas.

The legacy problem:

Page 25: Sacrificing the golden calf of "coding"

Browsers have to favour the end user and protect them from programmer mistakes. Lazy developers see that as a carte blanche.

The protect the user problem:

Page 26: Sacrificing the golden calf of "coding"

If how we do things isn’t as appreciated as how fast it is done, we find ways to automate our work.

The development appreciation gap:

Page 27: Sacrificing the golden calf of "coding"

Writing Perl/CGI (1997 edition)

1. Get a client request

2. Go to Matt’s Script Archive

3. Download something

4. Change things until it resembles what the client wants and stops breaking with a 500 (chmod 777 if in doubt)

5. Invoice, hide under rock

Page 28: Sacrificing the golden calf of "coding"

How do we find appreciation?

Page 29: Sacrificing the golden calf of "coding"
Page 30: Sacrificing the golden calf of "coding"

We talk on dedicated channels to those “in the know”.

Page 31: Sacrificing the golden calf of "coding"

Fixing code…1. Create an available version of your code

(codepen, gist, jsbin, jsfiddle…)

2. Go to Stackoverflow and post your problem

3. Abandon all hope of getting a straight answer

4. Get well versed in filtering out feedback on various levels of dysfunctional human communication

5. Find the answer in the maelstrom of “just use $x” or “well, actually…”

Page 32: Sacrificing the golden calf of "coding"

Fixing code (pro edition)

1. Go to Stackoverflow

2. Describe your coding problem with an obviously wrong solution and call it a best practice

3. Get popcorn

4. Follow the moshpit of ideas and biases

5. Find the one good solution that crops up

Page 33: Sacrificing the golden calf of "coding"

We’re better at doing than at explaining needs and values.

Page 34: Sacrificing the golden calf of "coding"

How do we find happiness?

Page 35: Sacrificing the golden calf of "coding"
Page 36: Sacrificing the golden calf of "coding"

We collect and describe reusable code and patterns.

Page 37: Sacrificing the golden calf of "coding"

We package reusable code and patterns up in frameworks, libraries, tooling and processes.

The digital hoarding scenario:

Page 38: Sacrificing the golden calf of "coding"

Generic, reusable solutions are bigger codebases and have more computational overhead.

The digital hoarding problem:

Page 39: Sacrificing the golden calf of "coding"

More tools and processes to strip the overhead before shipping to the end user.

The digital hoarding solution:

Page 40: Sacrificing the golden calf of "coding"

Have we raised the bar too high for people starting new?

twitter.com/ben_howdle/status/930012526628110337

Page 41: Sacrificing the golden calf of "coding"

twitter.com/TheLarkInn/status/930320292399820800

Are we teaching ways that we know and worked for us, but are outdated?

Page 42: Sacrificing the golden calf of "coding"

We have amazing tooling and helpers at our disposal!

Page 43: Sacrificing the golden calf of "coding"

Browsers come with excellent development and debugging tools.

Page 44: Sacrificing the golden calf of "coding"

Editors are open, extensible and integrate with our workflows and environments

vscodecandothat.com

Page 45: Sacrificing the golden calf of "coding"

We have collaborative editing and education tools.

code.visualstudio.com/blogs/2017/11/15/live-share

codepen.io

jsbin.com

glitch.com

Page 46: Sacrificing the golden calf of "coding"

Linting and validation tools tell us what to fix – even as a continuous integration step.

sonarwhal.com

Page 47: Sacrificing the golden calf of "coding"

Everything counts in large amounts

Page 48: Sacrificing the golden calf of "coding"

Our users* have much more capable devices with higher computation power than in the past.

A changed world:

* The affluent and local ones our investors and our sales and marketing departments care about.

Page 49: Sacrificing the golden calf of "coding"

The technologies we have at our disposal are complex and have higher computation demands.

A changed world:

Page 50: Sacrificing the golden calf of "coding"

We now have a larger distance between code creation and execution, with optimisation steps in between.

Rolling with the punches:

Page 51: Sacrificing the golden calf of "coding"

The business demands on our creations are about fast delivery and constant innovation. This demands re-use and automation.

Rolling with the punches:

Page 52: Sacrificing the golden calf of "coding"

With increased complexity and demand, any software product will sooner or later use pre-built components.

The natural software evolution:

Page 53: Sacrificing the golden calf of "coding"

More tools and processes to strip the overhead before shipping to the end user.

The digital hoarding solution:

This flows over into the design space. Style guides, pattern libraries.

Page 54: Sacrificing the golden calf of "coding"

The problem is that humans are sloppy and clumsy.

Page 55: Sacrificing the golden calf of "coding"

This increases with boredom and a demand to do repetitive tasks.

Page 56: Sacrificing the golden calf of "coding"

This is where programs and automated tools shine.

Page 57: Sacrificing the golden calf of "coding"

autodraw.com

Page 58: Sacrificing the golden calf of "coding"

quickdraw.withgoogle.com

Page 59: Sacrificing the golden calf of "coding"

letsenhance.io

Page 60: Sacrificing the golden calf of "coding"

letsenhance.io

Page 61: Sacrificing the golden calf of "coding"

airbnb.design/sketching-interfaces

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.

Page 62: Sacrificing the golden calf of "coding"

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

Page 63: Sacrificing the golden calf of "coding"

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.

airbnb.design/sketching-interfaces

Page 64: Sacrificing the golden calf of "coding"

Questioning the dogma:

Everybody must learn how to code.

Page 65: Sacrificing the golden calf of "coding"

Questioning the dogma:

Everybody must learn how to solve problems.

Page 66: Sacrificing the golden calf of "coding"

twitter.com/idiot_girl/status/930567111868669952

Moving from the “how” to the “why”.

Page 67: Sacrificing the golden calf of "coding"

twitter.com/kurtiskemple/status/930419045769318400

Let’s focus more on the human, and less on trying to be machines. We won’t win this race.

Page 68: Sacrificing the golden calf of "coding"

Chris Heilmann

@codepo8