$30 off During Our Annual Pro Sale. View Details »

The Good Rubyist Challenge

The Good Rubyist Challenge

Richard Schneeman

June 06, 2014
Tweet

More Decks by Richard Schneeman

Other Decks in Programming

Transcript

  1. View Slide

  2. View Slide

  3. View Slide

  4. The Good Rubyist
    Challenge
    by Schneems

    View Slide

  5. Challenge:

    View Slide

  6. (verb) to invite
    someone to
    engage in a
    contest

    View Slide

  7. To be a good
    Rubyist

    View Slide

  8. You must best
    yourself

    View Slide

  9. They
    Call me
    @Schneems

    View Slide

  10. Ruby
    Schneems

    View Slide

  11. Ruby
    Python

    View Slide

  12. View Slide

  13. What would
    you say you
    “do” here?

    View Slide

  14. Maintain
    buildpack

    View Slide

  15. Handle Ruby
    ticket
    escalations

    View Slide

  16. Open
    Source
    Software
    Contribution

    View Slide

  17. Write and
    maintain
    docs

    View Slide

  18. My spanish
    story

    View Slide

  19. I’m here to
    deliver the
    truths!

    View Slide

  20. First

    View Slide

  21. Close your
    Laptops

    View Slide

  22. Unless you’re
    commenting
    on rails/rails
    issues

    View Slide

  23. How do you
    learn Ruby?

    View Slide

  24. How do you
    learn
    Anything?

    View Slide

  25. You must
    want to write
    Ruby

    View Slide

  26. People do not
    want to use
    tools

    View Slide

  27. People want
    to build

    View Slide

  28. No one wants
    to Hammer

    View Slide

  29. They want to
    build a house

    View Slide

  30. They learn to
    use a tool to
    accomplish a
    goal

    View Slide

  31. Adjunct
    Professor

    View Slide

  32. Tired of
    lectures

    View Slide

  33. timesHigherEducation.co.uk

    View Slide

  34. news.yahoo.com

    View Slide

  35. Speaking at
    conferences
    works
    Source: me

    View Slide

  36. Learning
    requires a
    feedback
    cycle

    View Slide

  37. Want
    Try
    Do
    Reflect

    View Slide

  38. Most of
    learning
    focuses on
    the how

    View Slide

  39. Focus on the
    “how-come”

    View Slide

  40. Course time:

    View Slide

  41. Does anyone
    know?

    View Slide

  42. View Slide

  43. So
    Crates

    View Slide

  44. Hated
    Lectures

    View Slide

  45. Socratic
    Method

    View Slide

  46. 1. Find an
    Argument

    View Slide

  47. “TDD
    Is 

    DEAD

    View Slide

  48. 2. Make a
    challenge
    statement

    View Slide

  49. Panda
    Schneems
    Used
    TDD
    Yesterday

    View Slide

  50. 3. Change
    Statement to
    be true for
    challenge

    View Slide

  51. TDD
    isn’t the only
    software
    development
    method

    View Slide

  52. 4. Challenge
    the changed
    statement
    with a ???

    View Slide

  53. Can you
    write
    good
    software
    without TDD?

    View Slide

  54. Repeat

    View Slide

  55. Truth: a
    statement
    that holds up
    to all scrutiny

    View Slide

  56. Socrates
    and
    the Oracle

    View Slide

  57. Nope

    View Slide

  58. Nope

    View Slide

  59. Yup

    View Slide

  60. “Socrates is
    the wisest
    man in
    Greece”

    View Slide

  61. View Slide

  62. “Yeah,
    well that’s
    just like,
    your opinion

    View Slide

  63. “the only
    person aware
    of his own
    ignorance”

    View Slide

  64. Today, we
    will be
    Socrates

    View Slide

  65. Become
    aware of our
    ignorance

    View Slide

  66. Who here is a
    Great
    developer?

    View Slide

  67. Who here is a
    Good
    developer?

    View Slide

  68. Challenges of
    a good
    developer

    View Slide

  69. Level 1
    !

    View Slide

  70. Read
    Ruby

    View Slide

  71. View Slide

  72. View Slide

  73. Write
    Ruby

    View Slide

  74. Online
    tutorials

    View Slide

  75. View Slide

  76. Challenge:

    have a goal

    View Slide

  77. Build the next
    Facebook for
    dogs

    View Slide

  78. Build the next
    instagram for
    grandmas

    View Slide

  79. Build the next
    whatsapp for
    wallabies

    View Slide

  80. We don’t
    learn by
    doing

    View Slide

  81. We learn by
    questioning
    what we’re
    doing

    View Slide

  82. We learn by
    questioning
    what we’re
    doing

    View Slide

  83. Sound
    Familiar?

    View Slide

  84. When you
    have a goal
    you’re always
    asking:

    View Slide

  85. How can I use
    this

    View Slide

  86. Challenge:
    Be Weird

    View Slide

  87. Write
    Ruby

    View Slide

  88. Write a
    project just to
    throw it away

    View Slide

  89. Put it on
    github
    anyway

    View Slide

  90. Programmers
    are
    craftsman

    View Slide

  91. Sharpen your
    skills through
    play

    View Slide

  92. Level 2
    !

    View Slide

  93. Programmers
    are
    social

    View Slide

  94. It’s true

    View Slide

  95. Writing code
    is sharing
    logic

    View Slide

  96. Challenge:
    share logic
    with humans

    View Slide

  97. Join
    A
    Usergroup

    View Slide

  98. Don’t forget

    View Slide

  99. View Slide

  100. Austin on Rails:
    2 presentations
    &
    “socilization
    practice”

    View Slide

  101. Austin.rb
    1 presentation
    & code kata

    View Slide

  102. Who has ever
    done a code
    kata?

    View Slide

  103. codeKata.com

    View Slide

  104. Example:
    Find all
    anagrams in
    a sentence

    View Slide

  105. Example:
    Convert roman
    numerals to
    integers

    View Slide

  106. View Slide

  107. Doing katas
    with real people
    gives you new
    insight.

    View Slide

  108. Doing katas
    with real people
    gives you new
    insight.

    View Slide

  109. Impostor
    Syndrome

    View Slide

  110. When you feel
    like you’re
    not a real
    programmer

    View Slide

  111. I suffered this
    for 2 years
    before showing
    anyone code

    View Slide

  112. Surprised to
    find out no
    one called me
    “stupid”

    View Slide

  113. No one called
    me “stupid”

    View Slide

  114. Other people
    made syntax
    mistakes too

    View Slide

  115. View Slide

  116. After 5+ years
    of going to
    user groups

    View Slide

  117. I’m worried I
    don’t have
    impostor
    syndrome
    anymore

    View Slide

  118. Just kidding

    View Slide

  119. Level 3
    !

    View Slide

  120. Who has ever:

    View Slide

  121. Written Ruby
    code?

    View Slide

  122. Keep hand
    raised if
    you’ve:

    View Slide

  123. Opened an
    issue on an
    OSS repo (a
    PR counts)

    View Slide

  124. Submitted a
    pull request to
    an open source
    library?

    View Slide

  125. Had a pull
    request
    accepted

    View Slide

  126. Had a pull
    request
    accepted

    View Slide

  127. Challenge:
    Give
    Forwards to
    open source

    View Slide

  128. A good
    rubyist
    makes the
    future better

    View Slide

  129. How do you
    help?

    View Slide

  130. Open issues
    when you
    find bugs

    View Slide

  131. Include:
    version
    numbers

    View Slide

  132. Include:
    Expected
    behavior

    View Slide

  133. Include:
    Actual
    behavior

    View Slide

  134. Include:
    Reproduction
    instructions

    View Slide

  135. Read issues

    View Slide

  136. How many
    issues are
    open on rails/
    rails now?

    View Slide

  137. 600+

    View Slide

  138. Challenge:
    Write
    comments on
    issues

    View Slide

  139. How?

    View Slide

  140. CodeTriage
    .com

    View Slide

  141. Challenge:
    Comment on
    an issue

    View Slide

  142. Challenge:
    Write docs for
    a Repo

    View Slide

  143. How?

    View Slide

  144. DocsDoctor
    .org

    View Slide

  145. View Slide

  146. Reading docs

    View Slide

  147. Writing
    comments

    View Slide

  148. The path to
    OSS core is
    paved with
    issues and docs

    View Slide

  149. Disastrous
    consequences

    View Slide

  150. You’ll become
    a better
    developer

    View Slide

  151. You’ll learn
    things you
    never knew
    about your tools

    View Slide

  152. Even if you’re
    not ready
    today

    View Slide

  153. At bare
    minimum

    View Slide

  154. Click

    View Slide

  155. Pick

    View Slide

  156. Send them
    <3

    View Slide

  157. Even OSS
    developers
    get impostor
    syndrome

    View Slide

  158. Giving
    developer
    love turns
    into OSS code

    View Slide

  159. Be greedy:
    Give to your
    future self

    View Slide

  160. My entire salary
    for the has come
    from working on
    OSS software

    View Slide

  161. Level 4
    !

    View Slide

  162. Bet you
    thought I was
    done

    View Slide

  163. What comes
    after being a
    good
    Rubyist?

    View Slide

  164. Rust?

    View Slide

  165. Go?

    View Slide

  166. Node?

    View Slide

  167. Swift?

    View Slide

  168. Nope

    View Slide

  169. There’s no need
    to leave Ruby to
    work with other
    languages

    View Slide

  170. Challenge:
    Learn how
    Ruby works

    View Slide

  171. View Slide

  172. Challenge:
    Contribute to
    Ruby
    (ask @Zzak)

    View Slide

  173. It doesn’t
    even have to
    be MRI

    View Slide

  174. View Slide

  175. View Slide

  176. Level 42
    !

    View Slide

  177. Let’s ask
    ourselves

    View Slide

  178. Can we be
    better Ruby
    programmers
    ?

    View Slide

  179. Can I
    challenge
    myself today?

    View Slide

  180. You can never
    know it all

    View Slide

  181. By following
    the pursuit

    View Slide

  182. We’re all
    good
    Rubyists

    View Slide

  183. Questions
    @schneems

    View Slide