110 lines
3.3 KiB
Markdown
110 lines
3.3 KiB
Markdown
# Overview
|
||
|
||
The following is my overview for what I want this book to cover. This may be
|
||
incomplete and probably will become out of date quickly, but this is basically
|
||
my TODO list.
|
||
|
||
Each top level bullet point is its own chapter/workshop. Slides will be made
|
||
available as soon as they are created.
|
||
|
||
- [x] Basic getting started
|
||
- [x] installing go
|
||
- [x] hello world
|
||
- [x] doing math
|
||
- [ ] Data Types
|
||
- [ ] Variables
|
||
- [ ] Declaring variables
|
||
- [ ] Assigning variables
|
||
- [ ] Integers
|
||
- [ ] byte, int, int32, int64
|
||
- [ ] Implement Subtract/Multiply
|
||
- [ ] Floating-point numbers
|
||
- [ ] Differences between floating point numbers and integers
|
||
- [ ] float32, float64
|
||
- [ ] Strings
|
||
- [ ] examples of strings
|
||
- [ ] immutable
|
||
- [ ] combining strings
|
||
- [ ] Slices and maps
|
||
- [ ] generic types (this doesn’t mean Go has user-defined generic types)
|
||
- [ ] Slices
|
||
- [ ] creating
|
||
- [ ] appending
|
||
- [ ] sorting
|
||
- [ ] common slice types
|
||
- [ ] Maps
|
||
- [ ] make()
|
||
- [ ] add value
|
||
- [ ] delete value
|
||
- [ ] Control structures
|
||
- [ ] conditionals
|
||
- [ ] if
|
||
- [ ] switch
|
||
- [ ] type switch
|
||
- [ ] looping
|
||
- [ ] conditional looping
|
||
- [ ] C-style for loop
|
||
- [ ] iteration
|
||
- [ ] Functions
|
||
- [ ] Writing functions
|
||
- [ ] Documentation
|
||
- [ ] Types of functions
|
||
- [ ] Functions are data
|
||
- [ ] Functions as arguments to functions
|
||
- [ ] Structures
|
||
- [ ] defining structs
|
||
- [ ] documenting structs
|
||
- [ ] instantiating structs
|
||
- [ ] JSON support for structures
|
||
- [ ] What's the deal with pointers?
|
||
- [ ] pointers make values mutable across functions
|
||
- [ ] Interfaces
|
||
- [ ] What is an interface?
|
||
- [ ] Defining them
|
||
- [ ] Using them
|
||
- [ ] Errors
|
||
- [ ] Handling errors
|
||
- [ ] Package errors
|
||
- [ ] Making your own error types
|
||
- [ ] HTTP operations
|
||
- [ ] fetching data from canhazip.com
|
||
- [ ] validating response
|
||
- [ ] parsing response
|
||
- [ ] printing response
|
||
- [ ] Testing
|
||
- [ ] making a fake server for canhazip.com
|
||
- [ ] using it in testing
|
||
- [ ] Command line app writing
|
||
- [ ] Flags
|
||
- [ ] Help
|
||
- [ ] How to test a command line app
|
||
- [ ] Repo hygiene
|
||
- [ ] What should go where
|
||
- [ ] Applying that to previous things
|
||
- [ ] Go Modules
|
||
- [ ] how to depend on people's code
|
||
- [ ] best practices for releasing code
|
||
- [ ] semantic versioning and side effects
|
||
- [ ] add markdown support to the wiki
|
||
- [ ] Putting it all together with a webapp
|
||
- [ ] The Wiki example from the Go documentation
|
||
- [ ] https://golang.org/doc/articles/wiki/
|
||
- [ ] Updated a bit
|
||
- [ ] Tests
|
||
- [ ] Webapp Abstractions
|
||
- [ ] Adding a JSON api to it
|
||
- [ ] Making a client package
|
||
- [ ] Tests
|
||
- [ ] Abstracting its storage layer to a database (ql?)
|
||
- [ ] Migrations
|
||
- [ ] Tests
|
||
- [ ] Dockerizing
|
||
- [ ] Making the Dockerfile
|
||
- [ ] Testing with Docker
|
||
- [ ] Bonus: Introduction to Battlesnake
|
||
- [ ] brief overview of the problem space
|
||
- [ ] the types involved
|
||
- [ ] tutorial on how to make a snake
|
||
- [ ] somewhere to run it?
|
||
|