Preamble
JoshSoftware Pvt. Ltd. is India’s leading company in building innovative web applications working exclusively in Ruby On Rails since 2007. Josh have been using Go in some of their Web applications along side Rails (especially for some heavy lifting). Back in 2009, Josh had been actively involved in organizing Ruby programming challenges and decided that Go too needs such challenges. Hence the monthly Go Challenge.
What is the Go Challenge ?
- The Go Challenge is the world’s first monthly programming challenge for Go developers (newbies included).
- The Go Challenge is free and registration is not required.
- A new Go Challenge will be posted here on the first day of each month starting March 2015.
- The challenge is open to individuals only.
- You are invited to post your queries / doubts on our forum.
How does the Go Challenge benefit you ?
The Go Challenge:
- is a good idea as reading books and documentation can only take you so far when learning a new language. To really learn, you need to use the language.
- provides a fabulous forum for using Go in the form of regular, engaging (but not arcanely difficult) challenges. Better yet, it provides feedback on how to use Go well, as each month the best solution to a challenge is chosen.
- is a wonderful introduction to the Go language and to the Go community.
First Challenge
The First Go Challenge, related to music and binary encoding, is being set by Matt Aimonetti. Matt is Splice CTO & Co-Founder, an experienced technologist, entrepreneur, technical writer and active open-source contributor based in Santa Monica, CA. Prior to Splice, Matt worked as a Tech manager/R&D developer at LivingSocial, on video game development at Sony PlayStation, as a sound engineer and on many other things.
Other Months
So far, the following Gophers have agreed to set up the challenge for:
- April 2015 – Guillaume J. Charmes
- May 2015 – Sau Sheong Chang
- June 2015 – Andrew Gerrand
- July 2015 – Jessica Frazelle
- August 2015 – Cory LaNou
- September 2015 – Steve Francia
- October 2015 – Francesc Campoy Flores
- November 2015 – Jeremy Saenz
Other interested Gophers: Blake Mizerany, Matthew Holt, Mike Gehard, Niket Patel, Piyush Verma, Verónica López and William Kennedy.
Sponsors
Any individual or companies interested in sponsoring the monthly event are welcome. Please contact Satish Talim at gochallenge [at] joshsoftware.com
So far, Anand D N, Apcera, CoreOS, Cube Root Software, DigitalOcean, Docker, GopherCasts, Helpshift, InfluxDB, John Sonmez, JoshSoftware Pvt. Ltd., Manning Publications Co., NodePrime, O’Reilly, Packt Publishing, Qwinix Technologies, RainingClouds and Sourcegraph have agreed to support the challenge. More to follow soon.
How to enter the Go Challenge?
- Read the Challenge Rules below. By participating in this challenge, you agree to be bound by the Challenge Rules.
- Create a zip of your Go source code and send the zip file to gochallenge [at] joshsoftware.com by the 15th of the month (midnight IST, 11:30 AM PDT). No new solutions will be accepted after that. In the email mention your full name, country of residence, and twitter id. We will give your zip file to the evaluation team. Note: Avoid sharing your code with anyone else; if your solution becomes available to the general public it might impact evaluation of your submission.
How will the challenge be evaluated?
Entries will be anonymized and evaluated by the challenge author and a team of evaluators.
- Functioning code and a test suite that passes.
- Code hygiene. Use gofmt, vet and lint. Review CodeReviewComments.
- Readability. How easy is it for another programmer to grasp what your entry is doing?
- Code structure. Do types and files have good names?
- Reliability. Are errors properly handled?
- Appropriate consideration given to memory and performance (nothing is unnecessarily expensive).
Challenge Rules
- The Challenge is open to individuals.
- You maintain ownership of all code you submit and can release it under an open source license or keep it private after the challenge.
- Evaluators cannot enter the challenge.
- Each entrant shall indemnify, defend, and hold JoshSoftware Pvt. Ltd. (who has sponsored the domain and is the organizer of these challenges) harmless from any third party claims arising from or related to that entrant’s participation in the Challenge. In no event shall JoshSoftware Pvt. Ltd. be liable to an entrant for acts or omissions arising out of or related to the Challenge or that entrant’s participation in the Challenge.
- Odds of winning depend on the number and quality of entries received.
- All taxes, including income taxes, are the sole responsibility of winners.
- No prize substitution is permitted.
Evaluators
Nathan Youngman has agreed to set guidelines for evaluation. Akshay Deo, Jacques Fuentes, Jiahua Chen, Jyotiska NK, Niket Patel, Nishant Modak, Piyush Verma, Pravin Mishra, Sanat Gersappa and Søren Mathiasen have agreed to go through all the submitted solutions of a challenge. They will comment and rank these solutions. More evaluators are welcome.
Best Solution
The author of the Go Challenge for the particular month will decide the best solution, with some help from the Go community. This author shall have the sole authority and discretion to select the award recipient(s).
Notification
The winning entries will be announced here. The winners will be sent their prizes by email/postal mail.
Prizes
There will normally be two prizes (though we reserve the right to change this for each challenge). One prize will be awarded for the best solution selected by the author and the other (in later chalenges) will be for the best popular voted solution by the community. Prizes can range from small cash rewards to free PDFs, Screencasts – whatever the sponsors of the challenge have offered.
Here are some great prizes provided by our sponsors for the event.
Winner (selected by the author):
- Anand D N – Essential-Go screencast
- Apcera – Go Gopher Messenger Bag
- Cube Root Software – An eBook Go-The Standard Library
- Helpshift – An eBook A Go Developer’s Notebook
- InfluxDB – A US$ 50 Amazon digital gift card.
- John Sonmez – An eBook Soft Skills: The software developer’s life manual
- Koding – A free 3 months Hobbyist Koding plan
- Manning Publications Co. – Two eBooks Go Web Programming and Go in Action
- O’Reilly – An eBook Go:Up and Running
- Packt Publishing – A print book Mastering Concurrency in Go
- Qwinix Technologies – An eBook The Docker Book: Containerization is the new virtualization
- RainingClouds – An eBook Level Up Your Web Apps With Go
- Sourcegraph – Interview with the winner on their blog and will get their shirt, stickers
Winner (selected by the Go community):
- Anand D N – Essential-Go screencast
- Apcera – Go Gopher Squishable
- Helpshift – An eBook A Go Developer’s Notebook
- InfluxDB – A US$ 50 Amazon digital gift card.
- John Sonmez – An eBook Soft Skills: The software developer’s life manual
- Koding – A free 3 months Hobbyist Koding plan
- Manning Publications Co. – Two eBooks Go Web Programming and Go in Action
- Packt Publishing – An eBook Building Your First Application with Go-Video
- Qwinix Technologies – An eBook The Docker Book: Containerization is the new virtualization
- RainingClouds – An eBook Level Up Your Web Apps With Go
- Sourcegraph – Interview with the winner on their blog and will get their shirt, stickers
Anyone can a get 42% off on the price of the following eBooks from Manning Publications Co.:
- Go Web Programming – Use discount code: cftw15go
- Go in Action – Use discount code: cftw15go
Also, anyone can a get 20% off on the price of the following print and / or eBooks from Packt Publishing:
- Building Your First Application with Go-Video – Use discount code: 20%byfag20
- Mastering Concurrency in Go – Use discount code: 20%mcig20
- Go Programming Blueprints – Use discount code: 20%gpbs20
Winner Interviews
After a winner wins the monthly challenge, he/she would be interviewed by Sourcegraph and the interview will be published on their blog.
Credit
- The Gopher character is based on the Go mascot designed by Renée French and copyrighted under the Creative Commons Attribution 3.0 license.
- The Go Challenge is being organized by JoshSoftware Pvt. Ltd. with help from the Go community.