"All you need is the standard library" - Everyone on the internet

I can't tell you the number of times I heard this when learning to create web applications using Go. After a while, it started to haunt me.

I started learning Go by reading the standard library and every tutorial I could find, but I quickly ran into a problem.

Rather than creating HTML templates and rendering real dynamic content, we were instead using fmt.Fprint() to print hard coded HTML. 😱

Or when we needed access to a database we would create a global connection and share it with ALL of our code. Yikes!

As a result, I couldn't figure out how to get past creating my first few pages. It was frustrating, to say the least.

While getting stuck I kept asking myself questions like...

  • "How do I share my database connection with my handlers?"
  • "How do I hash user passwords securely? What is the correct way to make sure a user is authenticated and has access to this resource?"
  • "How should I organize my code? Where does the MVC pattern fit into all of this? Is my design RESTful? Will it be hard to maintain?"

No matter how many tutorials I read, I always felt like there was something left out. Some part of the bigger picture that wasn't explained, leaving me unsure of how to proceed.

The underlying problem was that every single tutorial I read oversimplified things, and what I needed was a comprehensive course showing me how all the pieces worked together.

Web applications are complex systems

After building my umpteenth silly TODO app, single page wiki, or some other contrived example I nearly gave up.

My progress was painfully slow, and every time I solved one problem I found myself facing two new ones. I still had no idea how to connect all of the pieces together.

It was as if someone had handed me toolbox, taught me how to use each tool, and then said "You now know how to build a house!" The hell I do! My house would blow over within the week if that was how construction worked.

It isn't enough to simply learn how each tool works. Knowing how to use a tablesaw, nailgun, and power drill don't qualify me to construct a house. You need to learn how every piece of a house gets connected together first. How the roof connects to the frame, how the frame is supported by the foundation, and how the plumbing runs throughout the foundation.

So why do we keep thinking this approach will work for web development? Why do we keep telling new Gophers, "All you need is the standard library to build web applications!"

Technically it isn't inaccurate, but it sure as hell isn't the ideal way to learn, and it leads to developers slowly working their way through countless tutorials, reading endless docs, and trying hundreds of bad approaches before they finally get it right. And even then they aren't confident what they did is right. They just know it hasn't failed yet.

But what if you didn't have to struggle through hundreds of tutorials?

What if you didn't have to read countless tutorials? What if you didn't have to guess at how to hash and store a user's password? What if you had confidence that your authentication was truly secure? You would finally be able to rest easy at night knowing you aren't letting your users down. Or you would be able to start actually building that app so you can meet your first customers. And most importantly, you could finally start enjoying the benefits of using Go for web development.

Web Development with Go can help you cut through all the complexity and finally become the developer you know you should be.

Web development with Go absolutely saved me from giving up on Go. Before finding this course I kept hitting roadblock after roadblock. I can't tell you how excited I was when I realized just how approachable and productive this course is. I went from struggling to get even the most basic tasks completed to actually building out my own app idea. I can't wait to release it!

Web Development with Go is the course I wish I had.

This course is the result of over a year of work and research. Time spent reading documentation, source code, blog posts, and anything else I could get my hands on. Writing thousands of lines of code, refactoring endlessly, and constantly seeking better design patterns.

Web Development with Go will save you months of research, trial and error, and nights scratching your head. After completing the course you will...

  • ‣ Know exactly how to initialize your database connection and give the rest of your code access to it
  • ‣ Have clear examples of how and when to email users.
  • ‣ Be positive that you are salting and hashing your passwords correctly
  • ‣ Feel confident saying, "Yes, my authentication system is safe and secure!"
  • ‣ Know exactly how to organize your code using MVC so that it encourages a RESTful design.
  • ‣ And so much more!

All of this is possible because this is not your run of the mill 30 minute tutorial. It is a comprehensive breakdown of every aspect of web development, teaching everything from how to create the most basic web application all the way to preparing your code and deploying it in a production environment. The course spans over 15 hours of screencasts and the included ebook is over 700 pages. Even after completing the course, you will be referencing the material for years to come.

(Watch a sample screencast of the first web applicatoin we write. Be sure to check out the followup video where we explain what all of this code does afterwards.)

(Check out the followup to this video where we explain the code we just wrote in detail.)


Interested in a Preview?

Sign up below and get a free course preview including over 2 hours of screencasts and 3 chapters from the book!

Web Development with Go in Apple Devices

Don't just take my word for it


The course is already being used by hundreds of others who absolutely love it. Some were even so excited that they had to share it with the world. Here is a taste a few of them had to say...

Jon does a great job of taking the large task of creating a web application and breaks it down into steps that are easy to understand and follow along with. If you want to learn how web development works at its very core I can't recommend it enough.
Liam Randall
Liam Randall
Sr. Director at a Large Financial Service
I learned of Jon Calhoun's course via the Gopher Slack. His contributions and advice to the "greenhorns" of Golang alone was enough to capture my attention. Jon was clearly prepared while writing "Web Development With Go". It is well organized, far from biased, and demonstrates best practices in the process.

The course takes the form of an in-depth tutorial and forces the reader to follow along and get their hands dirty. It covers everything from submitting a form, to normalizing data before persisting it on the backend. Whether you are a Go developer or not, you will certainly learn something new from this book.
John Moore
John Moore
Developer at American Express Global Business Travel
Amigo. Your course KICKS ASS! Your code is clear, your delivery is clear, and I just did a few of the algorithm tutorials on your site and they too are clearly explained. Thank you!!!

Great JOB!
Angel Rosario
Happy Customer
Todd was the teacher that I and many others needed to learn the basics of Go.

Jon is the teacher that I and others need now to learn web development. He made the effort to make web development easy to understand and I respect him for that.
Peter
A Budding Gopher
Jon's course, Web Development with Go, is amazing. It is filled with a great insights and has been an amazing resource of knowledge.

Invest in yourself by buying this book along with the extras. You won’t regret it.
Georges Mantzos
Happy Customer

What you will learn

Here are just a few of the things we will be covering in this course. Everything is taught in the context of our final web application, but we will occasionally review a topic in isolation before looking at how it connects to the rest of our application.


  • How to build a web application from scratch

    While following along with the book, you will learn how to build everything from the most basic web server and continuously build upon it until you have a fully fledged web application.

  • What are MVC and REST?

    You will learn all about MVC (model-view-controller) and REST, including how using both design principles can make your application significantly easier to maintain and improve.

  • How to create and utilize templates

    Static pages are boring, so we will use the html/template package included in Go's standard library to create HTML pages with dynamic content. This will allow us to display custom dashboards, galleries, and images for each user depending on what page they visit and what they have access to.

  • How to build an authentication system

    Web Development with Go will teach you how to build a proper authentication system including how to hash passwords with bcrypt, creating user sessions, avoiding timing attacks, and so much more.

    If you aren't 100% certain your authentication system is secure, this is a must-read!

  • How to interact with a PostgreSQL database

    Not only will you learn how to create, update, and delete records using the database/sql package, but we will also cover how to normalize and validate data before saving it to your database. We even cover how to relay validation errors to your end users.

  • How to process file uploads

    Our photo galleries need images, so we will write all of the code necessary to accept file uploads, process those incoming images, and finally serve them back to end users who visit our galleries.

  • How to send emails to users

    No matter how smart your users are, some of them are bound to forget their pssword. We will cover how to utilize services like Mailgun to send emails to our customers when this happens, giving them a way to restore access to their account.

  • How to use the Dropbox API

    If you purchase a package with the bonus content you will also learn how to interact with the Dropbox API, including implementing oauth2 to get access to a user's Dropbox folders and importing images from a user-specified directory to create a photo gallery.

  • Plus many more topics

    This is only a small subset of all the things we will learn. Check out what you will build or read the Chapter List to get a better idea of everything we cover, and if you have any questions don't hesitate to email me if you are curious about a specific topic.

What you will build

Throughout the course you will be building LensLocked, a website where photographers can create photo galleries to share with their clients.

Photographers can sign up, create galleries, and upload photos all from within their dashboard.

After a gallery is completed it can be published, making it publicly accessibly to anyone with the URL and allowing photogrpahers to share their work with their clients.

If you purchase one of the packages with bonus content we will also look at how to let photographers link their Dropbox account and import galleries directly from Dropbox folders, allowing them to skip the annoying task of uploading photos that are already in their Dropbox account.

Samples & Chapter List

Web Development with Go will teach you how to build web applications by guiding you through the process of creating a photo gallery application. The course is broken down into the following chapters. Each chapter varies in length depending on how much material is covered and how many new concepts are being introduced, but they average around 45 pages per chapter in the ebooks, and around 2 hours of screencasts per chapter.

  • 1 - Introduction (sample chapter)
  • 2 - A Basic Web Application (sample chapter)
  • 3 - Adding New Pages (sample chapter)
  • 4 - A Brief Introduction to Templates
  • 5 - Understanding MVC
  • 6 - Creating Our First Views
  • 7 - Creating a Sign Up Page
  • 8 - An Introduction to Databases
  • 9 - Creating the User Model
  • 10 - Building an Authentication System
  • 11 - Remembering Users
  • 12 - Normalizing and Validating Data
  • 13 - Displaying Errors to the End User
  • 14 - Creating the Gallery Resource
  • 15 - Adding Images to Galleries
  • 16 - Preparing for and Deploying to Production
  • 17 - Filling in the gaps (emailing users, resetting passwords, etc)

Bonus Content

Order "The Complete Package" or "The Book + Bonus Content" package and you will receive the following bonus content where we use OAuth and the Dropbox API in our app.

  • 18 - Authorizing Dropbox Accounts with the Dropbox API*
  • 19 - Importing Images via the Dropbox API*
  • 20 - Creating Galleries with Dropbox Folders*

* The bonus content (Ch18-20) is not finished yet, but is being released incrementally as it is finished.

Get a FREE Sample


Interested in checking out a sample of the course to see if it is a good fit for you? No problem! Just let me know where to send it and I will send over a course preview that includes over 2 hours of screencasts and the first 3 chapters of the book in PDF, Kindle, epub, or HTML format.



Web Development with Go in Apple Devices

But I'm new to programming!


So what?!? While this book will provide a ton of value to veteran developers, it was designed to be accessible for beginners.

Every chapter goes over everything we introduce in great detail, making sure you aren't felt lost. You will frequently find "aside" videos that go into more detail about a topic, but are easily skipped if you are already familiar with the topic.

Below is an example of this, where I break down what a web request is and show examples of each component using the web developer tools available in Google Chrome.

The only expectations I make in the book are that you are vaguely familiar with Go and are willing to learn. That's it, and even the vaguely familiar with Go part could be fixed in a few days if you are really motivated.

When I introduce new techniques (like variadic parameters) or touch on any other advanced topic I take a moment to explain what we are doing so that you won't get lost.

On top of all the content in the course, there is also a shared slack where you can chat with myself and many others who are working through the course to get feedback and advice.

The Complete Package

The complete package includes everything you need to learn web development with Go. Over 140 screencasts (over 33hrs!), 10 video interviews, the 30-day development plan, slack, source code, bonus chapters, and of course, the book.

The Complete Package

$249

  • 140+ Screencasts with over 33 hours of content
  • 700+ page eBook covering 17 Chapters
  • 3 Bonus Chapters on Advanced API Usage
  • All of the code used in the course
  • 10 Video Interviews
  • 30-Day Development Plan*
  • Slack
    Access to the exclusive Web Development with Go Slack
BUY NOW FOR $249

Screencasts A whole lot of them!

    Chapter 1

    There aren't any videos for Ch1 right now. This is an introductory chapter in the book that explains who this book is for, what we are building, and some other information about what to expect. I will eventually add screencasts for it, but have been focusing on other content first. You can easily skip this without missing a beat.

    Chapter 2

  • 2.0 - Creating a code directory and git repo [12:09] (sample video)
  • 2.1 - A basic web application [13:12] (sample video)
  • 2.1 [ASIDE] - What is a web request? [10:02] (sample video)
  • 2.2 - Explaining our web application in detail [09:14] (sample video)
  • 2.3 - Dynamic reloading [10:32] (sample video)
  • Chapter 3

  • 3.1 - Setting the Content-Type Header [08:02] (sample video)
  • 3.2 - Adding a contact page [08:26] (sample video)
  • 3.3 - Adding a 404 page [07:34] (sample video)
  • 3.4 - net/http's ServeMux overview [15:19] (sample video)
  • 3.5 - julienschmidt/httprouter overview [07:47] (sample video)
  • 3.6 - gorilla/mux overview [07:06] (sample video)
  • 3.7 - Implementing gorilla mux [09:56] (sample video)
  • 3.Ex0 - Exercises overview [07:10] (sample video)
  • 3.Ex1 - Adding an FAQ page [05:34] (sample video)
  • 3.Ex2 - Gorilla mux 404 page [05:24] (sample video)
  • 3.Ex3 - Using httprouter [07:43] (sample video)
  • Chapter 4

  • 4.0 - What are templates [07:21]
  • 4.1 - Our first html template [14:50]
  • 4.2 - Code injection and contextual encoding [07:23]
  • 4.Ex0 - Exercises Overview [03:33]
  • 4.Ex1 - Rendering a custom field [03:11]
  • 4.Ex2 - Rendering additional data attributes [06:02]
  • 4.Ex3 - Rendering with nested structures [04:08]
  • Chapter 5

  • 5.0 - Intro [02:57]
  • 5.1 - What is MVC? [13:16]
  • 5.2 - Walking through a web request [05:58]
  • 5.Ex0 - Exercises [06:35]
  • Chapter 6

  • 6.0 - Creating our first view [11:57]
  • 6.1 - Creating the contact view [05:48]
  • 6.2 - Named and nested templates [08:43]
  • 6.3 - Creating the View type [08:38]
  • 6.4 - Using the View type [12:30]
  • 6.5 - Creating a Bootstrap layout [25:12]
  • 6.6 - Adding a navigation bar [12:45]
  • 6.7 - Cleaning up our code by globbing template files [17:03]
  • 6.8 - Simplifying our view rendering logic [09:50]
  • 6.9 - Moving our footer to the bootstrap layout [03:49]
  • 6.10 - Summary [04:42]
  • Chapter 7

  • 7.0 - Creating the signup page [19:48]
  • 7.1 - Wrapping the signup form in a bootstrap panel [13:07]
  • 7.2 - Adding a signup link to the navbar [03:25]
  • 7.3 - An introduction to REST (old video) [14:18]
  • 7.4 - Creating our first controller - the users controller [22:25]
  • 7.5 - CRUD, HTTP verbs with Gorilla mux, and the create action [17:35]
  • 7.6 - Parsing the signup form (parsing POST forms) [13:00]
  • 7.7 - Parsing forms with gorilla schema [17:30]
  • 7.8 - DRYing up our form parsing code [19:22]
  • 7.9 - Creating a controller for our mostly static pages [15:23]
  • 7.10 - Making views easier to create [13:30]
  • Chapter 8

  • 8.0 - What does it mean to persist data? [05:04]
  • 8.1 - Web applications use databases to persist data [07:49]
  • 8.2 - We will be using PostgreSQL [03:07]
  • 8.3 - SQL has many great educational resources [06:08]
  • 8.4 - Postgres is scalable and relatively easy to use [04:37]
  • 8.5 - Setting up and connecting to Postgres [07:36]
  • 8.6 - SQL basics and creating tables to interact with [07:15]
  • 8.7 - Connecting to our database with Go's sql package [18:23]
  • 8.8 - Writing records to our database with Go's sql package [15:51]
  • 8.9 - Querying for records with Go's sql package [12:58]
  • 8.10 - Handling relational data with Go's sql package [15:30]
  • 8.11 - Setting up GORM [08:26]
  • 8.12 - Creating our first model with GORM [14:18]
  • 8.13 - Creating records and logging with GORM [13:34]
  • 8.14 - Querying records with GORM [16:41]
  • 8.15 - Error handling with GORM [12:17]
  • 8.16 - Relational data with GORM [11:14]
  • Chapter 9

  • 9.1 - Creating the User model [09:26]
  • 9.2 - Creating the UserService [19:09]
  • 9.3 - The create user method [07:21]
  • 9.4 - What does a model test look like? [16:11]
  • 9.5 - Finishing the UserService implementation [26:10]
  • 9.6 - Connecting models and controllers [25:01]

    Chapter 10

  • 10.0 - An intro to building an auth system [14:19]
  • 10.1 - Store hashes, not passwords [13:36]
  • 10.2 - Implementing bcrypt hashing [10:39]
  • 10.3 - Using passwords from the signup form [05:26]
  • 10.4 - Salt and pepper [14:27]
  • 10.5 - Creating the login form [13:59]
  • 10.6 - Authenticating users [17:54]
  • Chapter 11

  • 11.0 - Remembering users and creating our first cookie [19:40]
  • 11.1 - Viewing cookies via code [05:43]
  • 11.2 - Creating cookies on login and signup [09:03]
  • 11.3 - Securing our cookies from tampering [19:41]
  • 11.4 - Generating remember tokens [13:08]
  • 11.4 [ASIDE] - Why 32 bytes? [07:28]
  • 11.5 - Writing a remember token hasher [16:27]
  • 11.6 - Hashing remember tokens on user creation and update [19:28]
  • 11.7 - Storing remember tokens in cookies [15:09]
  • 11.8 - Securing our cookies from XSS [07:32]
  • 11.9 - Securing our cookies from theft and CSRF [10:49]
  • Chapter 12

  • 12.0 - Validating and normalizing [14:02]
  • 12.1 - [ASIDE] Emebedding, interfaces, and chaining [08:40]
  • 12.1 - Static types vs interfaces [11:42]
  • 12.2 - The UserDB interface [18:10]
  • 12.3 - The UserService interface [17:54]
  • 12.4.0 - Organizing validation code [21:45]
  • 12.4.1 - Remember token normalizer [07:03]
  • 12.4.2 - Ensuring remember tokens are set on create [04:30]
  • 12.4.3 - Ensuring a valid ID on delete [06:58]
  • 12.5.0 - Converting emails to lowercase and trimming whitespace [09:44]
  • 12.5.1 - Requiring email addresses [04:10]
  • 12.5.2 - Verifying emails match a pattern [16:27]
  • 12.5.3 - Verifying an email address isn't taken [10:08]
  • 12.6 - Validating and normalizing passwords [15:11]
  • 12.7 - Validating and normalizing remember tokens [12:40]
  • Chapter 13

  • 13.1 - Bootstrap alerts [06:07]
  • 13.2 - Dynamic alerts [05:18]
  • 13.3 - Only show alerts when necessary [05:08]
  • 13.4 - Creating the views.Data type [10:24]
  • 13.5 - Handling signup errors [13:10]
  • 13.6 - Only display public errors [18:01]
  • 13.7 - Handling login errors [09:44]
  • 13.8 - Handling rendering errors [11:41]
  • Chapter 14

  • 14.0 - Intro to the gallery chapter [04:35]
  • 14.1 - The gallery model [07:30]
  • 14.2 - Sharing a GORM connection and the GalleryService [07:48]
  • 14.3 - Utilizing our shared GORM connection (the Services type) [06:11]
  • 14.4 - Moving close to the Services type [07:46]
  • 14.5 - Implementing the GalleryService [05:54]
  • 14.6 - Creating the galleries controller [09:34]
  • 14.7 - Implementing the Gallery create action [06:25]
  • 14.8 - Gallery validators and normalizers [15:22]
  • 14.9 - Requiring users to be logged in to view specific pages [20:12]
  • 14.10 - Adding users to the request context [15:56]
  • 14.11 - Rendering individual galleries [35:58]
  • 14.12 - Galleries edit action [13:38]
  • 14.13 - Galleries update action [06:34]
  • 14.14 - GalleryService update method [05:20]
  • 14.15 - Gallery delete action [13:00]
  • 14.16 - Gallery index action [22:25]
  • 14.17 - Navbar updates [35:11]
  • Chapter 15

  • 15.1 - File upload HTML form [25:22]
  • 15.2 - File upload handler [24:48]
  • 15.3 - The ImageService and create method [18:49]
  • 15.4 - Finding images by Gallery ID [16:03]
  • 15.5 - Rendering images [21:57]
  • 15.6 - Deleting images [32:51]
  • Chapter 16

  • 16.1 - Error cleanup [19:50]
  • 16.2 - Serving static assets [07:58]
  • 16.3 - CSRF protection [26:12]
  • 16.4 - Don't lookup the user when serving static assets [06:35]
  • 16.5 - URL encoding image path bug [07:45]
  • 16.6 - Starting with config variables [23:05]
  • 16.7 - Functional options for services [21:54]
  • 16.8 - Loading a JSON config [15:53]
  • 16.9 - Setting up a droplet (server) on Digital Ocean [06:28]
  • 16.10 - Installing postgres on our prod server [07:52]
  • 16.11 - Caddy server [13:35]
  • 16.12 - Deploy script [32:27]
  • Chapter 17

  • 17.1 - Deleting cookies and logging out users [13:39]
  • 17.2 - Redirecting with alerts [18:09]
  • 17.3 - Emailing users [34:28]
  • 17.4 - Persisting form data [12:25]
  • 17.5.1 - Resetting passwords - Creating the pwReset DB table [29:16]
  • 17.5.2 - Resetting passwords - Implementing UserService methods [24:29]
  • 17.5.3 - Resetting passwords - Form HTML templates [05:07]
  • 17.5.4 - Resetting passwords - Controller updates [20:58]
  • 17.5.5 - Resetting passwords - Sending emails and building links [21:03]
  • Bonus Content

  • The bonus content, is still being worked on but will be released as it is finished. I am shooting for the end of September, but it is hard to give a hard date as this stuff takes a lot of time to plan, record, review, and edit.
    Everything you need to build and deploy a produciton-ready web application is currently live and available for consumption, so the remaining pieces are all based on adding new features to our app.

Video Interviews

  • Mark Bates Go Buffalo

    Mark Bates is the creator of the Buffalo framework/ecosystem (Mark prefers "ecosystem") and an organizer for GopherCon.

    Buffalo is awesome for building web applications very quickly, and this video is a great jumpstart into using Buffalo. In it Mark and I discuss how Buffalo came to be, what problems it was designed to solve, and Mark even gives an introductory demo of the framework showing off many of its features.

  • Joe Fitzgerald &
    Zac Bergquist Atom + Go

    Joe and Zac are the maintainers for the go-plus package for the Atom editor and both work at Pivotal.

    In this interview we discuss the benefits of using an editor designed to work well with Go, as well as some of the differences between an IDE and an editor like Atom. Zac also gives a demo of some of the features of Atom while writing a simple Go package and tests.

  • Matt Holt Securing your Server

    Matt is the creator of Caddy Server, an HTTP/2 web server with automatic HTTPS. It is incredibly awesome, and even if you don't buy this course you should check it out.

    In this video Matt and I discuss some of the cool features provided by Caddy Server, and then we discuss why securing your server is so important even if you aren't serving sensitive data or accepting forms with user passwords or credit cards.

  • Michael Hartl Learning Just Enough

    Michael is the creator of Rails Tutorial and Learn Enough where he creates material teaching Web Development and more.

    Michael and I spend our time discussing how you beginners fall into the trap of trying to learn everything, but all they really need to learn is "enough to be dangerous." That is, just enough to get the job done, and then you can slowly build upon your skillset as the need arises. Not only is this approach much more rewarding (you get to see things ship faster!), it also drives you to learn the skills you need most and not waste time learning things you won't use.

  • Ryan Patterson Technical Interviews

    Ryan Patterson runs the engineering team at Simply Insured, and before that he worked at Facebook. Between the two companies Ryan has interviewed well over 500 candidates for development roles.

    In our conversation Ryan and I discuss technical interviews. We cover what to expect, when you should start applying, and what separates the great candidates from the bad ones. This video will not only give you a strong sense for when to start applying for jr. dev roles (hint - SOON!), but will help you understand what companies are looking for in developers of all roles.

  • Mattan Griffel Learning to Code

    Mattan is the creator of One Month and has been teaching people how to code for many years.

    In this interview we discuss how to learn to code, useful ways to improve your skills after completing a course like Web Development with Go, pitfalls that developers can fall into that prevent them from succeeding, and how to avoid those.

  • Charlie Guo Doing the Unscalable

    Charlie is the author of Unscalable, a book that covers the lesser-known backstories of many startups in Silicon Valley and how they did unscalable things in order to succeed.

    In our interview Charlie and I discuss how nearly every business was built by doing something unscalable. Whether it was manual data entry, going door-to-door to get feedback from customers, or running a business from a spreadsheet, everyone has their ugly backstory.

    Charlie and I then discuss how web applications are often built the same way. You can't possibly build every feature, so you pick and choose which things you must have and do the rest manually or fake it.

  • Ryan Jackson Starting a Tech Company

    Ryan is a 2 time Y Combinator founder and is currently working at his startup Paid.

    Ryan and I discuss starting an online company, covering many of the common questions that those just getting started tend to ask themselves. Questions like:

    ‣ How do I find my first customer?
    ‣ When can I start charging?
    ‣ Is my pricing right?

    After that we discuss how the internet has enabled businesses like his to iterate quickly and adapt as customers provide feedback, making it possible to adjust when you get things like your pricing wrong.

  • Adam Wathan Testing and More

    Adam is the creator of a Test-Driven Laravel, the creator of Nitpick CI, and the host of Full Stack Radio.

    In our interview Adam and I talk a bit about everything. We first talk about how he learned to code, gave up at one point, and eventually got back into it. After that the conversation moves on to consulting, and some simple tips that can make it much easier to find out waht a client needs built. Finally we move into the subject of testing, dsicussing how Adam goes about deciding what to test and writing tests that aren't tightly coupled to his implementation.

  • Sergey Ignatov & Florin Pățan JetBrain's Gogland IDE

    Sergey is a developer at JetBrains where he works on the Gogland IDE, their latest offering designed specifically for writing code in Go. Florin has also been heavily involved in the creation of the IDE, helping create the first plugin for Go in other Jetbrains editors.

    In this video we discuss all of the awesome features offered by Gogland and how to use them. Florin walks us through a demo while creating a new package and shows off some of the features you will want to check out as you get started. We then discuss some of the details about how the editor was created with Sergey. You should check this out before deciding what editor/IDE to use with Go!

    NOTE: This interview has been recorded yet, but isn't released yet.

Resources

  •   Source Code

    Get access to all of the source code used in the book from start to finish. You can easily jump to the code before/after a specific chapter, making it easy to jump to a specific section of the book or double check your work.



      Bonus Chapters

    You will receive 3 bonus chapters worth of screencasts covering how to integrate with the Dropbox API via OAuth, allowing your users to connect their Dropbox account, select a folder on their Dropbox account, and import the images in that folder as a gallery.

    NOTE: The bonus content isn't available yet, but is being released incrementally as it is finished.

  •   30 Day Development Plan

    This guide will walk you through breaking an application up into actionable steps that can each be completed in a day. With this guide you will be able to take an idea for a web application and break it into manageable steps, allowing you to turn your idea into a real web application in 30 days.

  • Slack   Students-only Slack

    Get access to the private Web Development with Go slack where you can chat with the author and other students working through the book. If you ever get stuck, this is an incredibly valuable resource for asking for help and debugging.

    This is also a great place to meet others to build an application with, learning how to collaborate and learn from one another. Not only is this an amazing way to learn, it is one of the primary ways that most developers get better - learning from their peers!

Buy the complete package now for $249

Absolutely Zero Risk! All sales include a 100% money back guarantee. Try out the videos and if it isn't a good fit simply email me and I'll give you a refund.

The Book + Bonus Content

Not a fan of screencasts? No problem!

This package doesn't include screencasts for the entire course, but it does include the 3 bonus sections covering OAuth and using the Dropbox API, the 30-day development plan, 4 interviews, and Slack access. All of this is in addition to the 700+ page book and all of the source code used in it.

The Book + Bonus Content

$99

  • 700+ page eBook covering 17 Chapters
  • 3 Bonus Chapters on Advanced API Usage
  • All of the code used in the course
  • 4 Video Interviews
  • 30-Day Development Plan*
  • Slack
    Access to the exclusive Web Development with Go Slack
BUY NOW FOR $99

Video Interviews

  • Mark Bates Go Buffalo

    Mark Bates is the creator of the Buffalo framework/ecosystem (Mark prefers "ecosystem") and an organizer for GopherCon.

    Buffalo is awesome for building web applications very quickly, and this video is a great jumpstart into using Buffalo. In it Mark and I discuss how Buffalo came to be, what problems it was designed to solve, and Mark even gives an introductory demo of the framework showing off many of its features.



    Mattan Griffel Learning to Code

    Mattan is the creator of One Month and has been teaching people how to code for many years.

    In this interview we discuss how to learn to code, useful ways to improve your skills after completing a course like Web Development with Go, pitfalls that developers can fall into that prevent them from succeeding, and how to avoid those.

  • Joe Fitzgerald &
    Zac Bergquist Atom + Go

    Joe and Zac are the maintainers for the go-plus package for the Atom editor and both work at Pivotal.

    In this interview we discuss the benefits of using an editor designed to work well with Go, as well as some of the differences between an IDE and an editor like Atom. Zac also gives a demo of some of the features of Atom while writing a simple Go package and tests.

  • Sergey Ignatov & Florin Pățan JetBrain's Gogland IDE

    Sergey is a developer at JetBrains where he works on the Gogland IDE, their latest offering designed specifically for writing code in Go. Florin has also been heavily involved in the creation of the IDE, helping create the first plugin for Go in other Jetbrains editors.

    In this video we discuss all of the awesome features offered by Gogland and how to use them. Florin walks us through a demo while creating a new package and shows off some of the features you will want to check out as you get started. We then discuss some of the details about how the editor was created with Sergey. You should check this out before deciding what editor/IDE to use with Go!

    NOTE: This interview hasn't been recorded yet, but will be shortly.

Resources

  •   Source Code

    Get access to all of the source code used in the book from start to finish. You can easily jump to the code before/after a specific chapter, making it easy to jump to a specific section of the book or double check your work.



      Bonus Chapters

    You will receive 3 bonus chapters covering how to integrate with the Dropbox API via OAuth, allowing your users to connect their Dropbox account, select a folder on their Dropbox account, and import the images in that folder as a gallery.

    NOTE: The bonus content isn't available yet, but is being released incrementally as it is finished.

  •   30 Day Development Plan

    This guide will walk you through breaking an application up into actionable steps that can each be completed in a day. With this guide you will be able to take an idea for a web application and break it into manageable steps, allowing you to turn your idea into a real web application in 30 days.

    NOTE: This isn't available yet, but will be shortly.

  •   Students-only Slack

    Get access to the private Web Development with Go slack where you can chat with the author and other students working through the book. If you ever get stuck, this is an incredibly valuable resource for asking for help and debugging.

    This is also a great place to meet others to build an application with, learning how to collaborate and learn from one another. Not only is this an amazing way to learn, it is one of the primary ways that most developers get better - learning from their peers!

Buy the book + bonus content now for $99

Absolutely Zero Risk! All sales include a 100% money back guarantee. If it isn't a good fit simply email me and I'll give you a refund.

The Book

The least expensive option (but still great)!

While the screencasts, video interviews, and everything else are incredibly valuable, the book itself shouldn't be overlooked. It is where I spent the most time and effort and laid the groundwork for everything else. You will be referring to the best practices in this book for years to come.

If your budget is preventing you from purchasing the bonus content and screencasts, I highly recommend this package. You won't regret it.

The Book

$49

  • 700+ page eBook covering 17 Chapters
  • All of the code used in the course
  • Slack
    Access to the exclusive Web Development with Go Slack
BUY NOW FOR $49

Resources

  •   Source Code

    Get access to all of the source code used in the book from start to finish. You can easily jump to the code before/after a specific chapter, making it easy to jump to a specific section of the book or double check your work.

  •   Students-only Slack

    Get access to the private Web Development with Go slack where you can chat with the author and other students working through the book. If you ever get stuck, this is an incredibly valuable resource for asking for help and debugging.

    This is also a great place to meet others to build an application with, learning how to collaborate and learn from one another. Not only is this an amazing way to learn, it is one of the primary ways that most developers get better - learning from their peers!

Buy the book for $49

Absolutely Zero Risk! All sales include a 100% money back guarantee. If it isn't a good fit simply email me and I'll give you a refund.

The Team Package

Have a team you want to purchase copies of the course for? No problem!

I offer a team package for up to 20 team members for $999. Simply send me an email at jon@calhoun.io and I'll send you a link to purchase it.

Why does this cost so much?

Unfortunately this course doesn't cost $10. I know, I know, many courses on Udemy go on sale every month. Why isn't this one of those courses?

For starters, charging more enables me to provide extremely awesome help to my students. Just ask anyone who has taken the course - if they have any issues at all I will jump through hoops to help them out. This simply isn't possible with a $10 course, and I don't believe that you should be left to the wolves if you can't figure something out on your own.

In addition to enabling awesome support, this course is also jam packed with valuable information. The screencasts are over 33 hours long, but I suspect you will spend around 60-80 hours completing the actual course if you are coding along and trying to absorb everything. In that time you will learn what took me and many other "do-it-yourselfers" countless hours and many sleepless nights to learn. You get to take the shortcut while I hold your hand and teach this all to you in an easy to follow format.

And finally, this course is built to last. I want you to reference this for years to come. That means I will need to update the course over time, and a cheap price tag isn't conducive to that. The current pricing is, and as a result you will continue to see this course maintained over the years.

So no, the course isn't cheap, but I promise you it is worth every penny. And just in case, I also offer a 100% money back guarantee.

Note: For context, most online courses are 4-10 hours of screencasts. That means this course covers roughly 3 times more content than most other online courses, and it means you will understand what you are doing that much better when you complete the course. Is saving a few bucks worth being stuck for weeks or months after completing another course?

About the Author

Jon Calhoun is a full stack web developer who happily found Go a few years ago. When he isn't working on courses like this one, he also consults for other companies who have development needs. (If you need some development work done, get in touch!)

Jon is a founder of EasyPost, a shipping API that many fortune 500 companies use to power their shipping infrastructure. Prior to founding EasyPost, he worked at Google.

Jon writes technical articles and tutorials about Go on his blog at Calhoun.io, and also publishes several video tutorials teaching algorithms and other programming topics.

A picture of the author - Jon Calhoun

Photo compliments of Calhoun Photography.

Questions?

  • What formats do you support?

    The book is available in PDF, ePub, Mobi, and HTML.

    The screencasts and video interviews are all mp4s that you can download and watch whenever you want. No DRM or other BS. I trust you 🙂

  • Can I get a sample?

    You betcha! Fill out this form and I will send you a sample with the first three chapters and over 2 hours of screencasts.

  • Which package should I buy?

    That really depends. The complete package is obviously the best, and if you work as a professional developer or plan to I definitely suggest that package. You will be referencing it for years to come, and there are some gems hidden in the screencasts that are just impossible to convey in text.

    If you are concerned about the price, the other two packages provide a ton of value and you won't regret purchasing either of them. And you can always upgrade later if you want.

  • Do you offer a student discount?

    Yep! Just shoot me an email - jon@calhoun.io - requesting more info.

  • What if I hate it?

    Ouch! Well, if you really feel that way I don't want your money. Just send me an email with your receipt and I'll issue you a refund. It is that simple.

  • Will there be followup material?

    YES! I plan to launch several followup videos to the course over time, showing how to do more advanced things and demonstrating how I would change the design over time to accomodate new requirements.

  • When will unfinished content be released?

    The bonus content, Chapters 18-20, will be recorded and released incrementally in October.

    All but one of the video interviews are recorded and released. The remaining interview, which is with Florin covering Gogland, will be edited and released shortly.

  • You didn't answer my question...

    Email me and I'll do my best to answer your questions. Or if you prefer phone, just let me know how and when to reach you and I'll give you a call.

What are you waiting for?

Don't waste another minute struggling to figure everything out. Pick a package that meets your needs and save some money with the launch specials.


The Book + Bonus Content

$99

  • 700+ Page Book
  • 3 Bonus Chapters*
  • Source Code
  • 4 Video Interviews
  • 30-Day Development Plan*
  • Slack
    Student-only Slack
Buy Now

The Complete Package

$249

  • 140+ Screencasts (33+hrs)
  • 700+ Page Book
  • 3 Bonus Chapters*
  • Source Code
  • 10 Video Interviews
  • 30-Day Development Plan*
  • Slack
    Student-only Slack
Buy Now

The Book

$49

  • 700+ Page Book
  • Source Code
  • Slack
    Student-only Slack
Buy Now

Absolutely Zero Risk! All sales include a 100% money back guarantee. If it isn't a good fit simply email me and I'll give you a refund.

Others sometimes mention me on Twitter


pssstt... the page ends here. you need to scroll up if you want to purchase the course and start learning web develoment with go today.