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


  1. just write. then leave it. read it aloud. edit. kill

    your darlings. What is good writing practice?
  2. ‘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
  3. 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.
  4. 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.
  5. 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?
  6. 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.”
  7. ‘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.
  8. most code schools are teaching 
 most amateurs to be

 (at most) conversational coders.
  9. 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.
  10. more pseudo-code*. more sketching.! * not the same as sudo

 which is possibly a lesson i learned the hard way.
  11. this is also a metaphor For constructive criticism. For providing

    context to your code. For not preferring RTFM to RTFC. empty readme
  12. just write. then leave it. read it aloud. edit. kill

    your darlings. This applies to writing code, too.
  13. 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.
  14. who are you optimizing for? You have three customers. Your

    product team. Your community (which isn’t all experts). Your end user.
  15. 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.
  16. when we’re all coders, we can all be awesome. Conversational

    Coders Customer-Centric Coders Awesome Product Teams Making 
 Awesome Products