Share
Embed
Transcript
46 slides
-
@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 -
@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) -
@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 -
@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 -
@tiffanyfayj Outline • Where to Begin? • More Websites •
Tools • Training • Coding Practice • Communities • Conferences -
@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 -
@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 -
@tiffanyfayj Where to Begin? • Source code ◦ https://golang.org/src ◦
https://github.com/golang/go -
@tiffanyfayj Code Examples • Go by Example ◦ https://gobyexample.com/ ◦
Has code as well as explanations and output ◦ Shows more general concepts -
@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 -
@tiffanyfayj Blogs • Official Golang blog ◦ https://blog.golang.org/ ◦ Written
by Googlers who work on Go ◦ Detailed descriptions of every big release -
@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 -
@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 -
@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 -
@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 -
@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 -
@tiffanyfayj Tools • Gofmt ◦ https://golang.org/cmd/gofmt/ ◦ Formats your code
to the Go standard format ◦ I have format on save set -
@tiffanyfayj Tools • Goimports ◦ https://godoc.org/golang.org/x/tools/cmd/goim ports ◦ Automatically will
add packages you’ve used to the imports when you save -
@tiffanyfayj Tools • Autocomplete ◦ https://github.com/nsf/gocode ◦ Start typing and
it will show options ◦ Very helpful for learning -
@tiffanyfayj Tools • Godef ◦ https://github.com/rogpeppe/godef ◦ Jumps to where
the code you’re looking at is defined -
@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 -
@tiffanyfayj Projects • Recreating previous projects you’ve done • Finding
a project to do ◦ Golang Github wiki ▪ https://github.com/golang/go/wiki/Projects -
@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 -
@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 -
@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 -
@tiffanyfayj Conferences • The large scale version of meetups ◦
More talks ◦ More people • Many are Go-specific https://github.com/golang/go/wiki/Conferences -
@tiffanyfayj Conferences • GopherCon (Denver, Colorado) ◦ https://www.gophercon.com/ ◦ Videos
https://www.youtube.com/channel/UCx9QVEA pa5BKLw9r8cnOFEA/playlists ◦ Slides https://github.com/gophercon/ -
@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/ ◦ -
@tiffanyfayj Conferences • GolangUK ◦ http://golanguk.com/ • dotGo (France) ◦
http://www.dotgo.eu/ ◦ https://www.youtube.com/user/dotconference s/playlists • GoLab (Italy) ◦ golab.io -
@tiffanyfayj Conferences • GothamGo (New York) ◦ http://gothamgo.com/ • GopherChina
◦ http://gopherchina.org/ • And there are others too! -
@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