Speakerline
Speakers
Proposals
Events
Tags
Edit a proposal
Adam Cuppy
Ahmed Omran
Alan Ridlehoover
Amit Zur
Andrew Mason
Andrew Nesbitt
Andy Andrea
Andy Croll
Asia Hoe
Avdi Grimm
Ben Greenberg
Bhavani Ravi
Brandon Carlson
Brittany Martin
Caleb Thompson
Caren Chang
Chiu-Ki Chan
Christine Seeman
Cody Norman
Devon Estes
Eileen Uchitelle
Emily Giurleo
Emily Samp
Enrico Grillo
Espartaco Palma
Fito von Zastrow
Frances Coronel
Hilary Stohs-Krause
Jalem Raj Rohit
Jemma Issroff
Jenny Shih
Joel Chippindale
Justin Searls
Katrina Owen
Kevin Murphy
Kudakwashe Paradzayi
Kylie Stradley
Maeve Revels
Maryann Bell
Matt Bee
Mayra Lucia Navarro
Molly Struve
Nadia Odunayo
Nickolas Means
Noah Gibbs
Olivier Lacan
Ramón Huidobro
Richard Schneeman
Rizky Ariestiyansyah
Saron Yitbarek
Sean Moran-Richards
Shem Magnezi
Srushith Repakula
Stefanni Brasil
Stephanie Minn
Sweta Sanghavi
Syed Faraaz Ahmad
Tekin Suleyman
Thomas Carr
Tom Stuart
Ufuk Kayserilioglu
Valentino Stoll
Victoria Gonda
Vladimir Dementyev
Title
Tags (comma-separated, max 3)
Body
How do you learn Go? First do the tour. Then read the language spec. Then write a lot of code. This works for a lot of people, but for some the gap between the tour and the spec is a vast chasm. In his GopherCon 2015 keynote, Russ Cox said: "Go needs everyone's help, and everyone isn't here." This talk draws on two years of iterative exploration. It examines one way to bridge this gap, aiming to make Go accessible to a broader audience. _Details (this was the part that only goes to the selection committee)_ This talk is about helping developers from non-traditional backgrounds be successful learning Go. It is a practical talk, structured around code examples. Each example explores practical, stylistic, and theoretical aspects of Go. Go has a reputation for being hard core. This is alluring to some people, and intimidating to others. There's a perception that Go is not just hard core, but hard. There's a notion that learning Go requires a serious understanding of computer science fundamentals. Paradoxically, this is both true and not true. Many resources about Go tackle it via its theoretical underpinnings. But Go is simple and consistent. Deep knowledge of programming theory should not be a prerequisite to learning the language. Rather, learning Go is an excellent way to improve ones understanding of these concepts. I've had a lot of success easing people into the language by giving them frequent, small wins. For people who feel intimidated, this removes the psychological barrier to getting started. Lacking a foundation in computer science is no obstacle. The exercises are tiny, but the lessons that they teach are significant. Having wrestled with a problem, the theory behind the solution becomes relevant and interesting. For example, one exercise asks the developer to add a billion seconds to a timestamp. This is not a hard thing to do, and yet people find creative ways to solve this. Because they are unfamiliar with Go it forces them to hunt around in the standard library. They learn about `time.Duration` and Go's support for scientific notation. Judicious socratic questioning leads people to discover--and understand--Go's untyped constants. It doesn't take long for developers to start writing code that looks and smells like Go. This fluency with the basics gives them the confidence to explore Go in more depth.
Back to Speaker Directory