Go Web Programming Bootcamp
The following videos were put together in July of 2015 for the
Summer Web Bootcamp
at Fresno City College. The videos cover the material in An Introduction
to Programming in Go along with the basics of server-side web
development with Go and Google App Engine.
Thanks to the hard work of Todd McLeod (and others) these
videos are available for free on Youtube. An outline is available at
is.gd/gobootcamp. An additional
outline is available
here.
Source code is available on
Github.
Questions, concerns or comments can be sent to
Caleb Doxsey.
Links
- Week 1
- Day 1: Machine Setup, Hello World, Variables, Types, A Deeper Look, Control Structures
- Day 2: Strings Revisited, Arrays, Slices and Maps, Functions
- Day 3: Review, Pointers, Structs and Interfaces
- Day 4
- Day 5
- Week 2
- Day 1
- Day 2
- Day 3
- Day 4
- Day 5
- Week 3
- Day 1: To-Do List, Twitter Clone, Data Store
- Day 2: Templates, Projection Queries, Email, Polling
- Day 3: Sort, Web, SQL
- Day 4: Long-Polling, App Engine Channels, Chat, Search
- Day 5: Search, Cloud Storage, Cloud API, URL Fetch
- Week 4
- Day 1: Markdown, Self-Destructing Messages, Side-Channel Attacks, Cloud Storage, Stocks, Net HTML
- Day 2: ChartJS, Credit Cards, OAuth, Dropbox OAuth, GitHub OAuth, GitHub, Task Queue
Most of the presented material is basically correct, though sometimes I
wasn't very clear or made broad, general assertions, which are debatable but
merely stated with no tip of the hat to a contrary point of view. These
videos are intended for beginner instruction not technical perfection.
Unfortunately I also made a few outright mistakes. Errata:
- I misinterpreted the meaning of Scanln, expecting it to read an
entire line, when in fact it only reads to the first space.
- Permissions are used as octal, not hexadecimal. I showed one example
using 0x777 when it should've been 0777.
- When discussing hashing I think I said "pairing bit", but meant
"parity bit".
- At some point I said a for range loop on a string is byte by byte.
Strings are stored as bytes, but the for range loop is actually rune
by rune. It will interpret UTF8 for you.