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

How to Raise a Gopher in Record Time

How to Raise a Gopher in Record Time

tiffany jernigan

November 18, 2016
Tweet

More Decks by tiffany jernigan

Other Decks in Programming

Transcript

  1. @tiffanyfayj Raising a Gopher • Gophers eat more than half

    their body weight in food a day • They particularly like plants/vegetables • They love digging holes
  2. @tiffanyfayj Who Am I? • Georgia Tech - Electrical Engineering

    • Intel - Product Dev Engineer, Software Engineer • Docker - Software Engineer Consultant • Amazon - Developer Advocate • I am learning French (J’apprends le français)
  3. @tiffanyfayj Who Will This Help? • You've heard about Go

    • You're interested in learning the language • You want to start on the right foot • You’re interested in learning more • You want to help someone else learn
  4. @tiffanyfayj Why Learn Go? • Not niche anymore! • Adapted

    for concurrent I/O • Readable • Fast • Compiles into single binaries • Great for ◦ Distributed systems ◦ Microservices Can’t use this excuse as easily :P
  5. @tiffanyfayj Outline • Where to Begin? • More Websites •

    Tools • Training • Coding Practice • Communities • Conferences
  6. @tiffanyfayj Where to Begin? • Tour of Go ◦ https://tour.golang.org

    ◦ Basics to advanced topics (e.g. concurrency) ◦ Examples ◦ Exercises ◦ Available in many languages ◦ Available offline
  7. @tiffanyfayj Where to Begin? • Godocs ◦ https://golang.org/pkg ◦ What

    are they? http://blog.golang.org/godoc-documenting-go-c ode ◦ Offline godoc -http=:6060
  8. @tiffanyfayj Code Examples • Go by Example ◦ https://gobyexample.com/ ◦

    Has code as well as explanations and output ◦ Shows more general concepts
  9. @tiffanyfayj Code Examples • Socket Loop ◦ https://www.socketloop.com/ ◦ Has

    code comments and output ◦ Not as verbose as Go by Example ◦ Generally longer code blocks
  10. @tiffanyfayj Blogs • Official Golang blog ◦ https://blog.golang.org/ ◦ Written

    by Googlers who work on Go ◦ Detailed descriptions of every big release
  11. @tiffanyfayj Blogs • Dave Cheney’s blog ◦ http://dave.cheney.net/ ◦ Frequent

    and very informative posts ◦ My go to for learning about channels ▪ http://dave.cheney.net/tag/channels ◦ http://dave.cheney.net/resources-for-new-go-p rogrammers
  12. @tiffanyfayj Online Training • Todd McLeod ◦ https://www.youtube.com/user/toddmcleod ◦ https://github.com/GoesToEleven/GolangTrain

    ing • Pluralsight ◦ Nigel Poulton https://app.pluralsight.com/library/courses/go- fundamentals
  13. @tiffanyfayj Workshops • Ultimate Go by Ardan Labs/Bill Kennedy ◦

    https://www.ardanlabs.com/ultimate-go ◦ https://github.com/ardanlabs/gotraining ◦ Basics through more advanced concepts ◦ Examples and exercises ◦ On site assistance
  14. @tiffanyfayj Books • The Go Programming Language by Alan A.A.

    Donovan and Brian W. Kernighan ◦ http://www.gopl.io/ • Go in Action by Bill Kennedy, Brian Ketelsen, and Erik St. Martin ◦ https://www.manning.com/books/go-in-action ◦ Code samples https://github.com/goinaction/code
  15. @tiffanyfayj Editors • Go Playground https://play.golang.org/ • Vscode (what I

    use--with vscode-go) https://code.visualstudio.com/ ◦ Can have Delve debugger • Sublime (with GoSublime) https://www.sublimetext.com/ • Vim (with vim-go) http://www.vim.org/ • And there are many more
  16. @tiffanyfayj Tools • Gofmt ◦ https://golang.org/cmd/gofmt/ ◦ Formats your code

    to the Go standard format ◦ I have format on save set
  17. @tiffanyfayj Coding Challenges • These aren’t Go specific, but you

    have the option of using Go ◦ https://www.hackerrank.com/ ◦ https://www.codeeval.com/ • The monthly Go Challenges ◦ http://golang-challenge.org
  18. @tiffanyfayj Projects • Recreating previous projects you’ve done • Finding

    a project to do ◦ Golang Github wiki ▪ https://github.com/golang/go/wiki/Projects
  19. @tiffanyfayj Testing ↔ Features • Testing testing testing! • Unit

    tests (require less context) • Integration tests (requires broader understanding of the project) • Features (once you get the big picture) • Repeat
  20. @tiffanyfayj Communities • Coworkers/mentors • Communities at work • Gopher

    Slack ◦ http://bit.ly/1zUTGKh • Go-nuts Google Group ◦ https://groups.google.com/forum/#!forum/gola ng-nuts
  21. @tiffanyfayj Meetups/Organizations • Local Go Meetups ◦ http://http://www.meetup.com/ ◦ For

    everyone • GoBridge ◦ http://golangbridge.org/ ◦ For underrepresented communities • Women Who Go ◦ http://www.womenwhogo.org/ ◦ For people identifying as women
  22. @tiffanyfayj Conferences • The large scale version of meetups ◦

    More talks ◦ More people • Many are Go-specific https://github.com/golang/go/wiki/Conferences
  23. @tiffanyfayj Conferences • GopherCon (Denver, Colorado) ◦ https://www.gophercon.com/ ◦ Videos

    https://www.youtube.com/channel/UCx9QVEA pa5BKLw9r8cnOFEA/playlists ◦ Slides https://github.com/gophercon/
  24. @tiffanyfayj Conferences • GopherCon India ◦ http://www.gophercon.in/ • GopherCon Dubai

    ◦ http://www.gophercon.ae/ • GopherCon Brazil ◦ https://2016.gopherconbr.org/en/ • GopherCon Singapore ◦ https://2017.gophercon.sg/ ◦
  25. @tiffanyfayj Conferences • GolangUK ◦ http://golanguk.com/ • dotGo (France) ◦

    http://www.dotgo.eu/ ◦ https://www.youtube.com/user/dotconference s/playlists • GoLab (Italy) ◦ golab.io
  26. @tiffanyfayj Conferences • GothamGo (New York) ◦ http://gothamgo.com/ • GopherChina

    ◦ http://gopherchina.org/ • And there are others too!
  27. @tiffanyfayj Image Credits • http://www.shauntmax30.com/group/gopher/ • Gopher on horse: ◦

    GopherAcademy, LLC • All Gopher images are from or based on (created by various designers): ◦ Go mascot designed by Renée French and copyrighted under the Creative Commons Attribution 3.0 • XKCD