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

HOW A ”NOT THE GREATEST ENGINEER” BECAME A GO CONTRIBUTOR

HOW A ”NOT THE GREATEST ENGINEER” BECAME A GO CONTRIBUTOR

Talk for Go Conference 2019 Spring.

80b0ac0000ae3fbf5834585620e2db14?s=128

Yohei Takeda

May 18, 2019
Tweet

Transcript

  1. HOW A ”NOT THE GREATEST ENGINEER” BECAME A GO CONTRIBUTOR

    Yohei Takeda @yotakyotak
  2. 2 Who is the target of this talk?

  3. MY DREAM IS TO BE A CONTRIBUTOR! 3

  4. BUT I’M NOT THAT GOOD... 4

  5. DON’T KNOW HOW TO DO IT. 5

  6. After my talk, you... ▸ Can grasp what to do

    to be a contributor! ▸ Get encouraged to start your action! ▸ Understand that anybody(requires a little english) can try! 6
  7. What I found out after my challenge ▸ You don’t

    have to be the “greatest engineer” ▸ At least for Go! Can’t imagine? Let me share precisely, the steps I actually took! 7
  8. 1. WHO AM I? My introduction 8

  9. Yohei Takeda @yotakyotak Go engineer, team leader @ Media Do

    Sometimes Vue.js, AWS Began engineer career after graduating University, without CS background 9
  10. 2. WHY DID I TRY TO CONTRIBUTE? 10

  11. 11 ”CONTRIBUTOR” SOUNDS SOOOO COOL!! At my first job, almost

    nobody around me was a “contributor”.
  12. 12 Came across a cool slide: https://kevin.burke.dev/slides/becoming-go-contri butor/#title-slide https://about.sourcegraph.com/go/gophercon-20 18-becoming-a-go-contributor

  13. “ Small commits to start 13

  14. 14

  15. 15 fmt package lacks example

  16. 16 Editing source codes might be difficult, but I can

    add documents or examples. Why not give it a try?
  17. 3. STEPS TO GET STARTED 17

  18. https://golang.org/doc/contribute.html#contributor - And any editor you like! For me, VS

    Code - It might take 30 mins to go through Step 0-4 18
  19. 19

  20. 4. HOW I FOUND MY ISSUE 20

  21. START WITH FMT EXAMPLES! 21 Designed by yanalya / Freepik

  22. 22

  23. 23

  24. 24

  25. IT’S NO LONGER AN ISSUE 25

  26. I’LL FIND ONE BY MYSELF! 26

  27. Condition of “easy to start” issue: https://github.com/golang/go/issues?utf8=%E2%9 C%93&q=+is%3Aissue+is%3Aopen+label%3ADo cumentation+label%3ANeedsFix+NOT+%22gola ng.org%2Fcl%22+

    -> open issue, “Documentation”, “NeedsFix”, no PR yet. 27
  28. 28 I’ll take this one!

  29. 5. STEPS TO SUBMISSION 29

  30. 30 Understand the issue

  31. 31 Lacking document for compile & link

  32. Least thing to do, add docs for: ▸ go compile

    -m ▸ go link -a, -buildid 32
  33. THAT’S NOT IDEAL SOLUTION!

  34. My decision Document all the flags provided for compile/link. I

    SHOULD SEEK FOR IDEAL SOLUTION. What I could have done Before starting to work on it, ask Go members if I’m on the wrong track. 34
  35. START READING THE CODE 35

  36. Simply, read, read and read ▸ Around 10 articles about

    build/compile/link ▸ Try commands with flags ▸ Get deeper understanding of Go! 36
  37. 37 Nice HINT! from: https://github.com/golang/go/blob/master/ src/cmd/compile/internal/gc/main.go

  38. 38 Documented all lacking flags

  39. https://golang.org/doc/contribute.html#sending_a _change_gerrit 2 ways to commit; Github & Gerrit( <-

    preferred!) 39
  40. 40 DONE!!

  41. BUT THERE’S STILL A LONG WAY TO GO...

  42. 4 MORE PATCH SETS TO GO!

  43. 6. DEAL WITH FEEDBACKS 43

  44. 44 Polite feedback

  45. Try to understand the feedback ▸ “flags related to debug

    info generated by the compiler, and flags related to debugging the compiler itself” ▸ I understand what it means, but difficult to judge for each flags… Don’t spend too much time!! 45
  46. 46 Tell “I’m not confident”

  47. Don’t be embarrassed! ▸ It’s important to be honest, especially

    when you communicate with somebody who don’t know how skilled you are. ▸ Assume you don’t have chance to talk with reviewers. You have to communicate on “comments”. Then you have to be precise. 47
  48. NO REPLIES FOR SEVERAL WEEKS... I GUESS I SHOULD REMIND

    THEM! 48
  49. 49 STARTED INVESTIGATION...

  50. 50 DONE!

  51. 51 After a while...

  52. THIS IS NOT EASY 52

  53. READ, FIX, AGAIN AND AGAIN 53

  54. What I’ve done for the following 3 patches ▸ Repeat

    the basic steps. Read feedback, read source code, add some backgrounds if any. ▸ I’ve made some mistakes... miss commits, misunderstandings ▸ My job got busy, I couldn’t work on this for 3 months 54
  55. 55

  56. 56

  57. FINALLY...!

  58. 58

  59. 59 https://github.com/golang/go/blob/master/CONTRIBUTORS

  60. 60 Designed by jigsawstocker / Freepik

  61. 7. SUMMARY 61

  62. Not easy ▸ It took me about 20~30h. Studying +

    4,5h per patch ▸ Not all english is easy. But it’s not face-to-face communication, take time. ▸ You might not fully understand the source codes. But sometimes you don’t have to. 62
  63. What I should have done ▸ When you’re too busy

    to continue, you should say so. Someone else might work on it, and there’s always other issues for you to work on when you get free. ▸ When there’s anything unclear, ask before submitting patch. 63
  64. But worth a challenge! ▸ You don’t have to be

    scared, embarrassed. Don’t just submit your source code, add precise comments, ask questions, share anything you have in your mind. ▸ Your process doesn’t have to be “perfect”. Start your journey to Go contributor! 64
  65. Thank you! 65