Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Killing the golden calf of coding - We are Developers keynote

1,893 views

Published on

Keynote about the near future of development and how we're not exempt of automation.

Published in: Education
  • Be the first to comment

Killing the golden calf of coding - We are Developers keynote

  1. 1. Sacrificing the golden calf of coding… Chris Heilmann (@codepo8) April 2018
  2. 2. Big mouth strikes again… twitter.com/codepo8/status/922380136531537921
  3. 3. What’s wrong with coding? twitter.com/stephstad/status/994340133733253120
  4. 4. What’s wrong with coding? twitter.com/JBalloonist/status/994957763154411520
  5. 5. nothing null undefined “” [] false NaN What’s wrong with coding?
  6. 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. 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. 8. The “coder” of today is the astronaut of the 50s
  9. 9. The “coder” of today is the astronaut of the 50s
  10. 10. The “coder” of today is the astronaut of the 50s
  11. 11. An astronaut with job security and no physical demands…
  12. 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
  13. 13. Florian Ziegler flickr.com/photos/damndirty/41263240134 Act One: Coding Curiosity
  14. 14. When everything is new, happiness ensues
  15. 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. 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. 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. 18. Florian Ziegler flickr.com/photos/damndirty/40153024740/ Act Two: Coding Realities
  19. 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. 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. 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. 22. Photo by Florian Ziegler flickr.com/photos/damndirty/40153024740/ Andreas Dantz flickr.com/photos/szene/40193567250 Act Three: Focusing on outcomes
  23. 23. Code as craft (or even art) is 3.62% of what we do…
  24. 24. Software is a part of day-to-day life and needs fast delivery
  25. 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. 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. 27. It may be the warriors who get the glory. But it's the engineers who build societies. – Steve Jobs
  28. 28. It may be the warriors who get the glory. But it's the engineers who build societies. – B'elanna Torres
  29. 29. Getting help from machines… autodraw.com
  30. 30. Getting help from machines… quickdraw.withgoogle.com
  31. 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. 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. 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. 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. 35. Thanks! Chris Heilmann Christianheilmann.com Developer-evangelism.com @codepo8

×