Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What Happens to Everyone, When Everyone Learns to Code

What Happens to Everyone, When Everyone Learns to Code

Farrah was a keynote speaker at Rails Conference 2014, the Flagship event of the Ruby on Rails team members and community. It’s the largest official gathering of the year, attended by top Rails talent, companies and project representatives from all over the world.

The Difference Engine

April 22, 2014
Tweet

Transcript

  1. what happens to everyone 

    when everyone learns to code.
    #railsconf2014 | @farrahbostic

    View Slide

  2. Hi, I’m
    @farrahbostic
    !
    !
    I run...

    View Slide

  3. i come from advertising.

    View Slide

  4. “software writers.” awesome.

    View Slide

  5. just write.
    then leave it.
    read it aloud.
    edit.
    kill your darlings.
    What is
    good
    writing
    practice?

    View Slide

  6. The lyf so short,
    the craft so longe
    to lerne.
    - Chaucer

    View Slide

  7. what happens to everyone 

    when everyone learns to code?

    View Slide

  8. fact: “Everybody should learn to code”

    View Slide

  9. how to become a coder

    View Slide

  10. 1,000,000 STEM graduates
    “be a coder” in >4 years. it’ll cost you six figures.

    View Slide

  11. “be a coder” in 10,000 hours, or 10 years, whichever comes last.

    View Slide

  12. meanwhile…

    View Slide

  13. We’ll let you “be a coder” in 12 weeks, give or take.

    View Slide

  14. I’ve been working on it, too
    @noahbrier
    @stueccles
    @jondahl
    @rachelsklar
    @aviflombaum

    View Slide

  15. the truth is,
    you learn to code by coding

    View Slide

  16. Which starts out feeling like this.

    View Slide

  17. THEN YOU FIND SOMETHING THAT FEELS LIKE THIS.

    View Slide

  18. but then you decide to turn hard core.
    Start fast.
    Go hard.
    Stop.

    View Slide

  19. so how’d that work out?

    View Slide

  20. ‘i didn’t build that’ - we did
    Matz • dhh • RailsGuides • Ryan Bates • Redactor.js • Woo Themes • John Resig • Dave Methvin •
    PostgreSQL • Jonas Nicklas • Corey Johnson • Heroku • GitHub • @olvado • @hjames • @cjbell88 •
    @j_schelling • TypeKit • kuler • moo.com • keynote • pixelmator • slideshare • youtube • skype •
    AddThis • LocomotiveCMS • sirtrevor.js • mini-magick • carrierwave • flexslider • jQuery • uistencils

    View Slide

  21. the internet teaches you how to
    create more internet.
    But you’re not just learning/teaching the code,
    you’re also learning/teaching the culture.

    View Slide

  22. and maybe
    that’s a little
    scary.

    View Slide

  23. interesting thought from dhh
    “Professionals obey the laws.

    Amateurs break them…”
    But there are amateurs, and there are novices.
    Novices break laws too, accidentally, 

    and often without even realizing it.

    View Slide

  24. but then we meet the stack trace

    View Slide

  25. View Slide

  26. and we end up at stack overflow
    It’s great for amateurs.
    We find out we’re not alone
    experiencing a problem.
    We get answers to our questions.
    Great, right?

    View Slide

  27. but we struggle to belong.
    “It’s difficult to tell
    what is being asked
    here. This question is
    ambiguous, vague,
    incomplete, overly
    broad, or rhetorical
    and cannot be
    reasonably answered
    in its current form.”

    View Slide

  28. stack overflow == terminus?

    View Slide

  29. For novices & amateurs, 

    “coder” is a moving target.

    View Slide

  30. ‘code inequality’
    It’s good for you to be experts and
    me to be a novice.
    That motivates me to get better.
    But the goal is not to make that
    difference permanent and immutable.
    That would be structural inequality -
    where novices give up, amateurs
    never become experts, and experts
    only become more expert.
    That would be bad.

    View Slide

  31. so what?

    View Slide

  32. technology is feeling magical again.

    View Slide

  33. but it’s also scaring the shit out of people.

    View Slide

  34. whose side are you on?

    View Slide

  35. okay, let’s take a deep breath.

    View Slide

  36. everyone should still learn to code,
    right?

    View Slide

  37. but who is everybody? 

    and how much do i really have to learn?

    View Slide

  38. most code schools are teaching 

    most amateurs to be 

    (at most) conversational coders.

    View Slide

  39. so what does that mean for you?
    It means you need to be more than “just” devs.
    It means you are now writing 

    for a much broader audience.
    And solving even problems that go beyond

    how to write beautiful code.

    View Slide

  40. what about “strategy inequality”

    View Slide

  41. forget about being an expert.
    be a problem-solver.
    become a customer-centric coder.

    View Slide

  42. we’re all in this together.

    View Slide

  43. meet the new product team.
    Conversational
    Coders
    Customer-Centric
    Coders

    View Slide

  44. how do we get ready?

    View Slide

  45. for starters, keep the good intentions
    & match it with good behavior

    View Slide

  46. “code should make you happy”

    View Slide

  47. “Don’t code alone”

    View Slide

  48. clarity counts.

    View Slide

  49. more pseudo-code*. more sketching.!
    * not the same as sudo code. 

    which is possibly a lesson i learned the hard way.

    View Slide

  50. empty readme

    View Slide

  51. View Slide

  52. this is also a metaphor
    For constructive criticism.
    For providing context to your code.
    For not preferring RTFM to RTFC.
    empty readme

    View Slide

  53. just write.
    then leave it.
    read it aloud.
    edit.
    kill your darlings.
    This applies
    to writing
    code, too.

    View Slide

  54. let’s optimize the right things.
    Just like dhh’s comments about TDD…
    Optimize the important things.
    Yes, your code.
    Sure, your process.
    And, yeah, the documentation.
    So we can spend most of our focus 

    on optimizing products for people.

    View Slide

  55. View Slide

  56. who are you optimizing for?
    You have three customers.
    Your product team.
    Your community (which isn’t all experts).
    Your end user.

    View Slide

  57. who are we designing for?

    View Slide

  58. it’s complicated.

    View Slide

  59. so then what?

    View Slide

  60. we write code to create value.
    Marketers worry a lot about making things people
    want, and making people want things.
    !
    We should focus on making things that are valuable.

    View Slide

  61. when we’re all coders, we can all be awesome.
    Conversational
    Coders
    Customer-Centric
    Coders
    Awesome Product Teams Making 

    Awesome Products

    View Slide

  62. Challenge
    Accepted

    View Slide

  63. what’s next?
    @farrahbostic

    View Slide