# Go will be at OSCON 2014
15 Jul 2014
Tags: conference, oscon
Summary: [OSCON](http://www.oscon.com), the Open Source Convention, is taking place from July 20th to the 29th in Portland, Oregon and Go will be central to many talks. If you are attending make sure you add these to your personal schedule.

Francesc Campoy

##

[OSCON](http://www.oscon.com), the Open Source Convention, is taking place
from July 20th to the 29th in Portland, Oregon and Go will be central to many
talks. If you are attending make sure you add these to your personal schedule.

On Monday you'll have the chance to learn Go in these two tutorials:

  - [Getting Started with Go](http://www.oscon.com/oscon2014/public/schedule/detail/34395)
    by [Steve Francia](http://twitter.com/spf13) (MongoDB) at 9:00am on Monday, 07/21/2014

  - [A Quick Introduction to System Tools Programming with Go](http://www.oscon.com/oscon2014/public/schedule/detail/34267)
    by [Chris McEniry](http://twitter.com/macmceniry) (Sony Network Entertainment)
    at 1:30pm on Monday, 07/21/2014

During the rest of the week you can hear how different projects use Go:

  - [A Recovering Java Developer Learns to Go](http://www.oscon.com/oscon2014/public/schedule/detail/34371)
    by [Matt Stine](http://twitter.com/mstine) (Pivotal) at 1:40pm on Tuesday, 07/22/2014

  - [Painless Data Storage with MongoDB and Go](http://www.oscon.com/oscon2014/public/schedule/detail/34299)
    by [Steve Francia](http://twitter.com/spf13) (MongoDB) and [Gustavo Niemeyer](http://twitter.com/gniemeyer)
    (Canonical) at 1:40pm on Tuesday, 07/22/2014

  - [Gophers with Hammers: Fun with Parsing and Generating Go](http://www.oscon.com/oscon2014/public/schedule/detail/37795)
    by [Josh Bleecher Snyder](http://twitter.com/offbymany) (PayPal) at 2:30pm
    on Tuesday, 07/22/2014

  - [Go for Object Oriented Programmers (or OO Programming without Objects)](http://www.oscon.com/oscon2014/public/schedule/detail/34047)
    by [Steve Francia](http://twitter.com/spf13) (MongoDB) at 4:10pm on
    Wednesday, 07/23/2014

  - [Inside the Go Tour](http://www.oscon.com/oscon2014/public/schedule/detail/34509)
    by [Francesc Campoy Flores](http://twitter.com/francesc) (Google Inc.)
    at 11:50am on Thursday, 07/24/2014

And if you have any questions come to the
[Go office hours](http://www.oscon.com/oscon2014/public/schedule/detail/37075)
on Wednesday or come anytime by the Google booth.

See you at OSCON!
